# search_people_sales_navigator: Search people (Sales Navigator)

Search people in Sales Navigator through a shared seat, by names of titles, places, industries and companies. This action can change or spend something, and it happens right away. Plan: Agent.

```
POST https://api.heyreagent.com/v1/actions/search_people_sales_navigator
Authorization: Bearer YOUR_KEY
content-type: application/json

{
  "titles": [
    "Head of Sales"
  ]
}
```

## What you give it

- `keywords` (optional): text. Free-text keywords searched across all profile fields (title, headline, about, company).
- `titles` (optional): a list (text). Job titles, e.g. ["Chief Technology Officer","VP of Engineering"]. Matched as OR'd keywords — pass variants to go broad.
- `locations` (optional): a list (text). Person locations in plain English, e.g. ["United States","London"]. Resolved to LinkedIn regions automatically.
- `industries` (optional): a list (text). Company industries in plain English, e.g. ["Software","Financial Services"].
- `companies` (optional): a list (text). 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 (search_companies / list_funding_signals return companyId), pass companyIds instead.
- `companyIds` (optional): a company id. Current companies by LinkedIn company id — the companyId values search_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. Where to get it: Run `search_linkedin_companies` and use `results[].id`.
- `functions` (optional): a list (text). Job functions/departments, e.g. ["Engineering","Sales","Marketing"].
- `seniorities` (optional): a list (text). 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).
- `companyHeadcounts` (optional): a list (text). Company size bands. Valid: self-employed, 1-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000, 5001-10000, 10001+.
- `changedJobs` (optional): true or false. Only people who recently changed jobs (buying signal).
- `postedOnLinkedIn` (optional): true or false. Only people who recently posted on LinkedIn (active/reachable signal).
- `companyMinRevenueMillions` (optional): a number. 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.
- `companyMaxRevenueMillions` (optional): a number. Only people at companies with at most this annual revenue, in millions (e.g. 100 = up to $100M). Same brackets as companyMinRevenueMillions.
- `revenueCurrency` (optional): text. ISO currency of the revenue band, e.g. "USD" (default), "EUR", "GBP".
- `limit` (optional): a number, 1 to 100. Max people to return THIS call (1–100, default 25). To exceed 100 total, page with cursor.
- `cursor` (optional): a cursor. Pagination cursor from a previous search_people_sales_navigator 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. Where to get it: The `nextCursor` from the last answer of `search_people_sales_navigator`.
- `format` (optional): one of: table, csv. 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.
- `confirm` (optional): true or false. 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.

## What you get back

- `action`
- `matchCount`
- `estimatedCredits`
- `creditsCharged`
- `yourBalance`
- `returned`
- `hasMore`
- `nextCursor`: a cursor
- `leads`

## Good to know

- confirm false (the default) only previews: how many match and what it costs, no people. confirm true returns them and charges 0.02 credits a person.
- action is "preview", "blocked" or "results". leads, returned, creditsCharged and nextCursor are present only on "results"; estimatedCredits only on "preview".
- leads[].providerId is a Sales Navigator id (ACw…), not a member id. leads[].linkedinUrl is what the actions asking for a profile link take.
- A cursor lasts 24 hours and works only with the filters it was made with, or with none.
- Filters are names; companyIds is the one that takes ids.

Page: https://heyreagent.com/docs/actions/search_people_sales_navigator