# search_linkedin_people: Search people, every filter typed

Search people on ordinary LinkedIn, with each LinkedIn filter as its own typed input. This action only reads; it changes nothing. Plan: Free and Connect.

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

{
  "keywords": "head of sales"
}
```

## What you give it

- `keywords` (optional): text. Name, title, company or any words.
- `industry` (optional): a search filter id. Industries: ids from lookup_search_ids type INDUSTRY. Where to get it: run `lookup_search_ids` with type `INDUSTRY` and use `matches[].id`.
- `location` (optional): a search filter id. Places: ids from lookup_search_ids type LOCATION. Where to get it: run `lookup_search_ids` with type `LOCATION` and use `matches[].id`.
- `profileLanguage` (optional): a list (text, up to 2 characters). Profile languages, as two-letter codes such as "en".
- `networkDistance` (optional): a list (one of: 1, 2, 3). Connection degrees from you: 1, 2, 3.
- `company` (optional): a search filter id. Current companies: ids from lookup_search_ids type COMPANY. Where to get it: run `lookup_search_ids` with type `COMPANY` and use `matches[].id`.
- `pastCompany` (optional): a search filter id. Past companies: ids from lookup_search_ids type COMPANY. Where to get it: run `lookup_search_ids` with type `COMPANY` and use `matches[].id`.
- `school` (optional): a search filter id. Schools: ids from lookup_search_ids type SCHOOL. Where to get it: run `lookup_search_ids` with type `SCHOOL` and use `matches[].id`.
- `service` (optional): a search filter id. Service categories they offer: ids from lookup_search_ids type SERVICE. Where to get it: run `lookup_search_ids` with type `SERVICE` and use `matches[].id`.
- `connectionsOf` (optional): a search filter id. People whose connections to search: ids from lookup_search_ids type CONNECTIONS. Where to get it: run `lookup_search_ids` with type `CONNECTIONS` and use `matches[].id`.
- `followersOf` (optional): a search filter id. People whose followers to search: ids from lookup_search_ids type PEOPLE. Where to get it: run `lookup_search_ids` with type `PEOPLE` and use `matches[].id`.
- `openTo` (optional): a list (one of: proBono, boardMember). Open to pro bono work or to a board seat.
- `advancedKeywords` (optional): a group of fields. Words that must appear in one part of the profile: first name, last name, title, company or school.
  - `firstName` (optional): text. 
  - `lastName` (optional): text. 
  - `title` (optional): text. 
  - `company` (optional): text. 
  - `school` (optional): text. 
- `limit` (optional): a number, 1 to 10. How many to return (1–10, default 10).
- `cursor` (optional): a cursor. nextCursor from the previous call, to get the next page. Keep the other arguments the same. Where to get it: The `nextCursor` from the last answer of `search_linkedin_people`.
- `connectionId` (optional): a connection id. Which of your LinkedIn accounts to act from (its id from list_linkedin_accounts). Omit to use your first live one. Where to get it: Run `list_linkedin_accounts` and use `accounts[].id`.

## What you get back

- `returned`: number
- `nextCursor`: a cursor
- `results[].type`: PEOPLE
- `results[].id`: a member id
- `results[].publicIdentifier`: a public identifier
- `results[].publicProfileUrl`: a profile link
- `results[].profileUrl`: a profile link
- `results[].profilePictureUrl`: string or null
- `results[].profilePictureUrlLarge`: string or null
- `results[].memberUrn`: string or null
- `results[].name`: string or null
- `results[].firstName`: string
- `results[].lastName`: string
- `results[].networkDistance`: SELF | DISTANCE_1 | DISTANCE_2 | DISTANCE_3 | OUT_OF_NETWORK
- `results[].location`: string or null
- `results[].industry`: string or null
- `results[].keywordsMatch`: string
- `results[].headline`: string
- `results[].connectionsCount`: number
- `results[].followersCount`: number
- `results[].pendingInvitation`: boolean
- `results[].canSendInmail`: boolean
- `results[].hiddenCandidate`: boolean
- `results[].interestLikelihood`: string
- `results[].recruiterCandidateId`: string
- `results[].recruiterPipelineCategory`: string
- `results[].premium`: boolean
- `results[].verified`: boolean
- `results[].sharedConnectionsCount`: number
- `results[].recentPostsCount`: number
- `results[].recentlyHired`: boolean
- `results[].mentionedInTheNews`: boolean
- `results[].interests`: string

## Good to know

- At most 10 rows per call: LinkedIn's page size for this search.
- LinkedIn returns at most 1,000 rows for one search; narrow the filters to reach the rest.
- networkDistance in a row is defined as DISTANCE_1 / DISTANCE_2 / DISTANCE_3 (a published sample row also shows OUT_OF_NETWORK), while a profile reports FIRST_DEGREE / SECOND_DEGREE / THIRD_DEGREE for the same thing: do not compare the two as text.

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