Search people
search_peoplePull LinkedIn people matching a filter set — each person returns name, current title & company, headline, location, industry, the LinkedIn profile URL, providerId (feed to get_recent_posts to personalize), salesNavLeadUrl (the InMail-ready URL — pass it, or {profileUrl, providerId}, to add_message_targets on an InMail campaign), openProfile (true = accepts InMail for free), connectionDegree, sharedConnectionsCount (warm-intro signal), tenureInRole/tenureInCompany (a SHORT tenure means newly in seat — a timing signal for outreach), and pendingInvitation (true = already invited, skip it). Feed the URLs to enrich_linkedin_urls / enrich_profiles for verified emails, or create_leads_bulk to add them to a campaign. COSTS LinkedNav credits per person returned (0.02 each; counting is free). ALWAYS size first with count_people, then call this with confirm:false to see the exact credit cost, get the user's yes, THEN confirm:true. Never pull more than the balance covers. Same filters as count_people (including the company revenue band — check revenueScope.complete), plus limit (default 25, max 100). BUILD A BIG LIST: to go past 100, pass the returned nextCursor back in as cursor (same filters, confirm:true) to pull the next batch — repeat until hasMore is false. For a large list, set format:"csv" to get an export-ready CSV block. Present results as a compact table (name / title / company / location) and, when the set is large, offer to (a) keep paging, (b) export to CSV, or (c) pull direct dials + emails via enrich_linkedin_urls.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max people to return THIS call (1–100, default 25). To exceed 100 total, page with cursor. | |
| cursor | No | Pagination cursor from a previous search_people call's nextCursor — pass it back exactly as returned (it lasts 24 hours). Pass it with confirm:true to pull the NEXT batch — this is how you build a list larger than the 100/call cap. The cursor carries its search's filters, so pass the SAME filters or none. Omit for the first page. | |
| format | No | table (default) = structured rows to render as a table. csv = also return an export-ready CSV string (columns: Name, Title, Company, Location, Industry, Shared Connections, Tenure in Role, LinkedIn URL) — use for large lists the user wants to save/hand off. | table |
| titles | No | Job titles, e.g. ["Chief Technology Officer","VP of Engineering"]. Matched as OR'd keywords — pass variants to go broad. | |
| confirm | No | false (default) = return the credit-cost estimate only (nothing charged). true = pull the people and charge credits after the user agreed. Continuation pages (with cursor) should pass confirm:true. | |
| keywords | No | Free-text keywords searched across all profile fields (title, headline, about, company). | |
| companies | No | Current companies by name, e.g. ["Google","Stripe"]. Each name is looked up and the top match used — when you already have LinkedIn company ids (find_companies / list_funding_signals return companyId), pass companyIds instead. | |
| functions | No | Job functions/departments, e.g. ["Engineering","Sales","Marketing"]. | |
| locations | No | Person locations in plain English, e.g. ["United States","London"]. Resolved to LinkedIn regions automatically. | |
| companyIds | No | Current companies by LinkedIn company id — the companyId values find_companies / list_funding_signals return (up to 100). Exact: no name lookup, so no same-name mix-ups. Combine with seniorities and changedJobs / postedOnLinkedIn to get the decision-makers at signal companies who just moved / are posting. | |
| industries | No | Company industries in plain English, e.g. ["Software","Financial Services"]. | |
| changedJobs | No | Only people who recently changed jobs (buying signal). | |
| seniorities | No | Seniority levels, e.g. ["CXO","VP","Director","Manager"] (owner/partner, cxo, vice_president, director, experienced_manager, entry_level_manager, strategic, senior, entry_level, in_training). | |
| revenueCurrency | No | ISO currency of the revenue band, e.g. "USD" (default), "EUR", "GBP". | |
| postedOnLinkedIn | No | Only people who recently posted on LinkedIn (active/reachable signal). | |
| companyHeadcounts | No | Company size bands. Valid: self-employed, 1-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000, 5001-10000, 10001+. | |
| companyMaxRevenueMillions | No | Only people at companies with at most this annual revenue, in millions (e.g. 100 = up to $100M). Same brackets as companyMinRevenueMillions. | |
| companyMinRevenueMillions | No | Only people at companies with at least this annual revenue, in millions (e.g. 10 = $10M+) — use it to target companies that can afford the user's price. LinkedIn uses fixed brackets (0, 0.2, 1, 2.5, 5, 10, 20, 50, 100, 500, 1000); other values widen to the nearest one. The companies are matched on the same industries / companyHeadcounts / locations (as HQ location). Revenue is LinkedIn's estimate — companies without one are left out. |