# search_linkedin_recruiter_people: Search candidates in my Recruiter, every filter typed

Search candidates in Recruiter on your own seat, with each Recruiter 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_recruiter_people
Authorization: Bearer YOUR_KEY
content-type: application/json

{
  "keywords": "software engineer"
}
```

## What you give it

- `keywords` (optional): text. Words to search for. AND, OR and NOT may be used, e.g. developers AND product owners NOT managers.
- `locale` (optional): one of: arabic, bangla, czech, danish, german, greek, english, spanish, persian, finnish, french, hindi, hungarian, indonesian, italian, hebrew, japanese, korean, marathi, malay, dutch, norwegian, punjabi, polish, portuguese, romanian, russian, swedish, telugu, thai, tagalog, turkish, ukrainian, vietnamese, chinese_simplified, chinese_traditional. The language your Recruiter is set to, when results look inconsistent.
- `savedSearch` (optional): a search filter id. Run one of your saved searches; it replaces every other filter. Where to get it: `id`: run `lookup_search_ids` with type `SAVED_SEARCHES` and use `matches[].id`. `projectId`: run `lookup_search_ids` with type `SAVED_SEARCHES` and use `matches[].id`.
  - `id` (needed): text. An id from lookup_search_ids type SAVED_SEARCHES, service RECRUITER.
  - `projectId` (needed): text. The project that saved search belongs to, from lookup_search_ids type SAVED_SEARCHES, service RECRUITER.
  - `newestResultsOnly` (optional): true or false. 
- `savedFilter` (optional): a search filter id. One of your saved filters: an id from lookup_search_ids type SAVED_FILTERS, service RECRUITER. Where to get it: run `lookup_search_ids` with type `SAVED_FILTERS` and use `matches[].id`.
- `location` (optional): a search filter id. Places. DOESNT_HAVE cannot be combined with locationWithinArea. Where to get it: `id`: run `lookup_search_ids` with type `LOCATION` and use `matches[].id`.
  - `id` (needed): text. An id from lookup_search_ids type LOCATION, service RECRUITER.
  - `priority` (optional): one of: CAN_HAVE, MUST_HAVE, DOESNT_HAVE. 
  - `scope` (optional): one of: CURRENT, OPEN_TO_RELOCATE_ONLY, CURRENT_OR_OPEN_TO_RELOCATE. 
  - `title` (optional): text. The title that came with the id in lookup_search_ids.
- `locationWithinArea` (optional): a number. Miles around the location.
- `industry` (optional): a search filter id. Industries to include and to leave out. Where to get it: `include`: run `lookup_search_ids` with type `INDUSTRY` and use `matches[].id`. `exclude`: run `lookup_search_ids` with type `INDUSTRY` and use `matches[].id`.
  - `include` (optional): a list (text). Ids from lookup_search_ids type INDUSTRY, service RECRUITER.
  - `exclude` (optional): a list (text). Ids from lookup_search_ids type INDUSTRY, service RECRUITER.
- `role` (optional): a search filter id. Job titles: each one by id or by keywords. Where to get it: `id`: run `lookup_search_ids` with type `JOB_TITLE` and use `matches[].id`.
  - `id` (needed): text. An id from lookup_search_ids type JOB_TITLE, service RECRUITER.
  - `isSelection` (needed): true or false. true: only people with exactly this title. false: also similar titles.
  - `priority` (optional): one of: CAN_HAVE, MUST_HAVE, DOESNT_HAVE. 
  - `scope` (optional): one of: CURRENT_OR_PAST, CURRENT, PAST, PAST_NOT_CURRENT, OPEN_TO_WORK. 
  - `keywords` (needed): text. 
- `skills` (optional): a search filter id. Skills: each one by id or by keywords. Where to get it: `id`: run `lookup_search_ids` with type `SKILL` and use `matches[].id`.
  - `id` (needed): text. An id from lookup_search_ids type SKILL, service RECRUITER.
  - `title` (optional): text. 
  - `priority` (optional): one of: CAN_HAVE, MUST_HAVE, DOESNT_HAVE. 
  - `keywords` (needed): text. 
- `company` (optional): a search filter id. Companies: each one by id or by keywords. Where to get it: `id`: run `lookup_search_ids` with type `COMPANY` and use `matches[].id`.
  - `id` (needed): text. An id from lookup_search_ids type COMPANY, service RECRUITER.
  - `name` (optional): text. 
  - `priority` (optional): one of: CAN_HAVE, MUST_HAVE, DOESNT_HAVE. 
  - `scope` (optional): one of: CURRENT_OR_PAST, CURRENT, PAST, PAST_NOT_CURRENT. 
  - `keywords` (needed): text. 
- `companyHeadcount` (optional): a list (a group of fields). Company sizes, as LinkedIn's own bands, e.g. { min: 51, max: 200 }.
  - `min` (optional): one of: 1, 11, 51, 201, 501, 1001, 5001, 10001. 
  - `max` (optional): one of: 1, 10, 50, 200, 500, 1000, 5000, 10000. 
- `currentCompany` (optional): a search filter id. Current companies. Where to get it: `id`: run `lookup_search_ids` with type `COMPANY` and use `matches[].id`.
  - `id` (needed): text. An id from lookup_search_ids type COMPANY, service RECRUITER.
  - `priority` (optional): one of: CAN_HAVE, MUST_HAVE, DOESNT_HAVE. 
- `pastCompany` (optional): a search filter id. Past companies. Where to get it: `id`: run `lookup_search_ids` with type `COMPANY` and use `matches[].id`.
  - `id` (needed): text. An id from lookup_search_ids type COMPANY, service RECRUITER.
  - `priority` (optional): one of: CAN_HAVE, MUST_HAVE, DOESNT_HAVE. 
- `school` (optional): a search filter id. Schools. Where to get it: `id`: run `lookup_search_ids` with type `SCHOOL` and use `matches[].id`.
  - `id` (needed): text. An id from lookup_search_ids type SCHOOL, service RECRUITER.
  - `priority` (optional): one of: CAN_HAVE, MUST_HAVE, DOESNT_HAVE. 
- `degree` (optional): a search filter id. Degrees to include and to leave out. Where to get it: `include`: run `lookup_search_ids` with type `DEGREE` and use `matches[].id`. `exclude`: run `lookup_search_ids` with type `DEGREE` and use `matches[].id`.
  - `include` (optional): a list (text). Ids from lookup_search_ids type DEGREE, service RECRUITER.
  - `exclude` (optional): a list (text). Ids from lookup_search_ids type DEGREE, service RECRUITER.
- `employmentType` (optional): a list (one of: FULL_TIME, PART_TIME, CONTRACT, INTERNSHIP). Employment types. Recruiter PRO contracts only.
- `groups` (optional): a search filter id. LinkedIn groups: ids from lookup_search_ids type GROUPS, service RECRUITER. Where to get it: run `lookup_search_ids` with type `GROUPS` and use `matches[].id`.
- `graduationYear` (optional): a group of fields. Graduation years, from and to.
  - `min` (optional): a number, 1000 to 9999. 
  - `max` (optional): a number, 1000 to 9999. 
- `tenure` (optional): a group of fields. Years of experience, from and to.
  - `min` (optional): a number. 
  - `max` (optional): a number. 
- `tenureInCompany` (optional): a group of fields. Years in the current company, from and to.
  - `min` (optional): a number. 
  - `max` (optional): a number. 
- `tenureInPosition` (optional): a group of fields. Years in the current position, from and to.
  - `min` (optional): a number. 
  - `max` (optional): a number. 
- `seniority` (optional): a group of fields. Seniority levels to include and to leave out.
  - `include` (optional): a list (one of: owner, partner, cxo, vp, director, manager, senior, entry, training, unpaid). 
  - `exclude` (optional): a list (one of: owner, partner, cxo, vp, director, manager, senior, entry, training, unpaid). 
- `function` (optional): a search filter id. Job functions: ids from lookup_search_ids type DEPARTMENT, service RECRUITER. Where to get it: run `lookup_search_ids` with type `DEPARTMENT` and use `matches[].id`.
- `networkDistance` (optional): a list (one of: 1, 2, 3, or exactly: GROUP). Connection degrees from you (1, 2, 3) or "GROUP" for people in your groups.
- `spokenLanguages` (optional): a list (a group of fields). Spoken languages and how well. Recruiter PRO contracts only.
  - `language` (needed): text. 
  - `priority` (optional): one of: CAN_HAVE, MUST_HAVE, DOESNT_HAVE. 
  - `scope` (optional): one of: ELEMENTARY, LIMITED_WORKING, PROFESSIONAL_WORKING, FULL_PROFESSIONAL, NATIVE_OR_BILINGUAL. 
- `hidePreviouslyViewed` (optional): a group of fields. Leave out people you viewed within this many days.
  - `timespan` (needed): a number. Days back.
- `profileLanguage` (optional): a list (text, up to 2 characters). Profile languages, as two-letter codes such as "en".
- `recentlyJoined` (optional): a list (a group of fields). Joined LinkedIn this many days ago, as LinkedIn's own bands.
  - `min` (optional): one of: 2, 8, 15, 31. 
  - `max` (optional): one of: 1, 7, 14, 30, 90. 
- `spotlights` (optional): a list (one of: OPEN_TO_WORK, ACTIVE_TALENT, REDISCOVERED_CANDIDATES, INTERNAL_CANDIDATES, INTERESTED_IN_YOUR_COMPANY, HAVE_COMPANY_CONNECTIONS). Spotlights. Advanced Recruiter subscriptions only.
- `firstName` (optional): a list (text). First names.
- `lastName` (optional): a list (text). Last names.
- `hasMilitaryBackground` (optional): true or false. Only people with a US military background.
- `pastApplicants` (optional): true or false. Only past applicants.
- `hiringProjects` (optional): a search filter id. Your hiring projects to include and to leave out. Where to get it: `include`: run `lookup_search_ids` with type `HIRING_PROJECTS` and use `matches[].id`. `exclude`: run `lookup_search_ids` with type `HIRING_PROJECTS` and use `matches[].id`.
  - `include` (optional): a list (text). Ids from lookup_search_ids type HIRING_PROJECTS, service RECRUITER.
  - `exclude` (optional): a list (text). Ids from lookup_search_ids type HIRING_PROJECTS, service RECRUITER.
- `recruitingActivity` (optional): a list (a group of fields). People with, or without, this kind of activity from your team.
  - `id` (needed): one of: messages, tags, notes, projects, resumes, reviews. 
  - `priority` (optional): one of: CAN_HAVE, MUST_HAVE, DOESNT_HAVE. 
  - `timespan` (optional): a number. Days back.
- `notes` (optional): a list (text). Words in your team's notes on the person.
- `limit` (optional): a number, 1 to 100. How many to return (1–100, 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_recruiter_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 Recruiter id
- `results[].publicIdentifier`: string or null
- `results[].publicProfileUrl`: string or null
- `results[].profileUrl`: string or null
- `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 100 rows per call: LinkedIn's page size for this search.
- LinkedIn returns at most 2,500 rows for one search; narrow the filters to reach the rest.
- Needs a Recruiter seat on your own LinkedIn account.
- Look filter ids up with lookup_search_ids service RECRUITER: that input selects which product's list is searched.
- 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.
- A Recruiter row often has no publicIdentifier and no profile link: its id is the only handle, and only Recruiter actions take it.

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