Search LinkedIn Sales Navigator over people OR companies. This is the expert path: prefer it over classic keyword search whenever a structured filter fits the intent — filters are precise where keywords are noisy.
Read the full description
HOW FILTERS WORK
• filters are human-readable, id-resolved dimensions { type, query, mode? }. You pass a NAME (e.g. { type: "industry", query: "Financial Services" }); the server resolves it to a LinkedIn id for you — never pass ids. mode is "include" (default) or "exclude".
• Phrase each query the way LinkedIn names things: canonical industry names ("Financial Services", not "fintech"), real place names ("Greater Madrid Metropolitan Area" or the country, not a neighborhood). Resolution takes the single best typeahead match.
• Every other dimension is a typed field (seniority, role, companyHeadcount, …) — read each field's description for when to use it.
COMBINING FILTERS — this determines your results:
• Multiple values of the SAME dimension are OR'd (industry ["Financial Services","Banking"] = either).
• DIFFERENT dimensions are AND'd (industry AND location AND seniority). Each dimension you add NARROWS the result set — add them one intent at a time and stop before you over-constrain to zero.
EXCLUSIONS — your primary tool for removing who does NOT belong. Almost every dimension takes an exclude side, and you should reach for it whenever a broad filter sweeps in an obvious wrong segment (a positive filter alone often cannot express "leaders but NOT recruiters"):
• role.exclude — drop unwanted current-title words: e.g. searching "growth leaders" but flooded with agencies/recruiters → role:{ include:[…], exclude:["recruiter","talent","agency","assistant","intern","student"] }. This is usually the highest-leverage exclusion.
• seniority.exclude — drop levels you do not want (e.g. exclude ["entry_level","training","unpaid"] when you want decision-makers).
• id-resolved filters with mode:"exclude" — drop a whole industry, company, or location: e.g. { type:"industry", query:"Staffing and Recruiting", mode:"exclude" }, or exclude a competitor via { type:"current_company", query:"Acme", mode:"exclude" }.
• Use exclusions proactively in your FIRST search when the ask implies an obvious anti-segment, and reactively when the echoed hits show a recurring wrong type — name the exclusion in your read-back and apply it next turn.
LOCATIONS — expand regions to countries:
• A region/continent does NOT resolve as one id ("LATAM", "Europe", "APAC" will fail). Emit ONE location filter PER country (same dimension repeated = OR). LATAM → Argentina, Brazil, Mexico, Colombia, Chile, Peru, Ecuador, Uruguay, Costa Rica, Panama (+ more as relevant). A single named country → just that country. Never invent locations the user did not name.
PEOPLE — TITLES (role) beat the coarse ladder. This is the highest-leverage filter; get it right:
• role matches ONLY the CURRENT job-title field (title-scoped keywords, include/exclude) — NOT the whole profile. That is why it beats keywords for any title intent: trust it, do not fall back to keywords for a title. (keywords matches every text on the profile, so it is far noisier.)
• For a PAST title ("used to be a CFO", "previously a founder"), use the id-resolved past_role filter — filters:[{ type:"past_role", query:"Chief Financial Officer" }] (JOB_TITLE typeahead; supports mode:"exclude"). role is current-only; past_role is the only way to filter on prior titles.
• A job TITLE goes in role (title-keyword include/exclude). Use seniority (cxo, vice_president, director…) ONLY for a pure level with no title intent — for "leaders of X" the seniority block below recalls far better.
• Exec / C-suite titles and founder are SINGLE-TITLE pills: one role.include entry per variant, standing alone — "CEO", "Chief Executive Officer", "Founder", "Fundador", "Fundadora", "Cofounder", "Co-founder". Never wrap these in a seniority block.
• SENIORITY BLOCK — THE DEFAULT FOR ANY LEADERSHIP INTENT. The moment you read the ask as *the people who LEAD or DECIDE on some area* — "heads of growth", "payment managers", "gerentes de cobranzas", "marketing decision-makers", "whoever owns billing", "the person in charge of ops" — emit ONE seniority-block pill: a marker AND a parenthesized OR-list of ROLE synonyms, e.g. <<SENIORITY_BLOCK_EN>> AND ("payments" OR "billing" OR "collections"). The marker expands server-side to a broad leadership OR-block (head/VP/director/manager/chief…), so you recall the WHOLE pyramid — a hand-enumerated title list always misses the variants real people actually use. Put only role words in the OR-list (never seniority words), quote each term, AND/OR uppercase. At most ONE seniority-block pill per search.
• Reach for the block by DEFAULT: whenever the audience is leaders/owners/decision-makers of a domain, the block belongs in the search. B2B outbound almost always targets a decision-maker, so a people search WITHOUT a seniority block should be the rare exception, and you should be able to name why. The only real exceptions: (a) the ask is exec/C-suite/founder ONLY → single-title pills instead (see above); (b) the ask names a SPECIFIC non-leadership title with no leadership intent ("data engineer", "recruiter", "designer") → plain title pills; (c) the ask is a PURE level with no domain ("all VPs, any function") → seniority alone. Anything that reads as "the leaders of X" gets the block — do not settle for a bare role keyword and do not hand-enumerate the ladder.
• Marker by language: Spanish geo/terms (Mexico, Spain, LATAM, "gerente","jefe") → <<SENIORITY_BLOCK_ES_EN>> with Spanish+English role synonyms; Brazil / Portuguese terms → <<SENIORITY_BLOCK_PT_EN>> with Portuguese+English; otherwise → <<SENIORITY_BLOCK_EN>> (English only).
• Top-of-pyramid: when asking for leaders of a department, ALSO add the matching C-title as its own single-title pill — HR→CHRO, Marketing→CMO, Finance→CFO, Tech/Engineering→CTO, Operations→COO, Product→CPO.
CLOSE THE LOOP — every search echoes back the filters AS RESOLVED (query → label, or a failure) plus a hit count. ALWAYS read it:
• Wrong resolution (you said "Apple", it resolved to the wrong entity) → re-issue with a more specific query.
• A filter that did not resolve REFUSES the whole search (CHANNEL_ACTION_FILTER_UNRESOLVED, naming which one) — it is never dropped, because running without it would silently widen your audience. Re-issue with a name LinkedIn uses (canonical industry name, real place name), or drop the filter yourself if you meant the broader search.
• Targeting people at companies you already hold as a Kairon company list? Pass companyLists: [{ id }] (mode:"exclude" to suppress a set) — NOT account_lists, which is Sales Navigator's own saved lists. Never enumerate the companies as current_company filters when you have the list id: that costs a call per name and caps at 40.
• Zero or too-few hits → loosen: drop the narrowest dimension, widen a range, or broaden the role OR-list.
• Too many hits, OR the hits include a recurring wrong segment (recruiters, students, the wrong industry) → add an EXCLUSION (see EXCLUSIONS) before adding more positive filters — it removes the noise without shrinking the real audience.
COMMON TRAPS
• "Startup" / "scale-up" is NOT a filter — approximate it by SIZE, and the size field DEPENDS ON CATEGORY. On a PEOPLE search: small companyHeadcount buckets (["1-10","11-50","51-200"]), optionally companyType: ["privately_held"]. On a COMPANIES search: small headcount buckets (["1-10","11-50","51-200"]) — a companies search has NO company-type facet, so do NOT send companyType (nor companyHeadcount) on it; both are people-search-only and the search will reject them.
• Industry uses LinkedIn's canonical names in an industry filter ("Financial Services", "Banking" — NOT "fintech"); add related categories as OR values. A business model / product ("fintech", "SaaS", "marketplace") describes WHAT a company does → that is keywords, not industry.
• keywords is a LAST resort — ONLY skills/tools/tech the user EXPLICITLY named (e.g. "Workday", "Kubernetes"). Never derive keywords from a role, title, location, or industry; each has its own filter.
• keywords is a BOOLEAN query, not a phrase. Bare space-separated words are AND-ed — fintech payments neobank demands all three in one profile and returns ZERO. For alternatives, OR + quote each term AND wrap the whole group in parentheses: ("fintech" OR "payments" OR "neobank"). The parentheses are MANDATORY — an unparenthesized OR of 4+ terms is silently mis-parsed by LinkedIn and returns ~0 even though it looks right. Quote multi-word phrases; combine groups with AND/NOT; operators UPPERCASE. If a keyword search returns zero, suspect (a) missing parentheses around the OR group and (b) implicit-AND, and re-issue before dropping terms.
WORKED EXAMPLES (natural language → filters)
• "Payment managers / gerentes de pagos in LATAM" → category:people, role:{include:["<<SENIORITY_BLOCK_ES_EN>> AND (\"pagos\" OR \"payments\" OR \"medios de pago\" OR \"billing\" OR \"cobranzas\")"]}, filters:[{type:"location",query:"Mexico"},{type:"location",query:"Brazil"},{type:"location",query:"Colombia"},{type:"location",query:"Argentina"}].
• "Marketing leaders in the US" → category:people, role:{include:["CMO","Chief Marketing Officer","<<SENIORITY_BLOCK_EN>> AND (\"marketing\" OR \"branding\" OR \"growth\" OR \"demand generation\")"]}, filters:[{type:"location",query:"United States"}].
• "CEOs and founders in Argentina" → category:people, role:{include:["CEO","Chief Executive Officer","Founder","Fundador","Fundadora","Cofounder","Co-founder"]}, filters:[{type:"location",query:"Argentina"}].
• "VP-level engineers at Berlin startups" (pure level + a title word) → category:people, seniority:{include:["vice_president"]}, role:{include:["Engineering"]}, filters:[{type:"location",query:"Berlin, Germany"}], companyHeadcount:["1-10","11-50","51-200"].
• "Fintech companies in LATAM, 50–200 staff" → category:companies, filters:[{type:"industry",query:"Financial Services"},{type:"industry",query:"Banking"},{type:"location",query:"Mexico"},{type:"location",query:"Brazil"},{type:"location",query:"Colombia"}], headcount:["51-200"], keywords:"fintech".
Requires the connected account to hold a Sales Navigator seat. Transient hits + a cursor; page with the returned cursor. One page is one metered action.