Skip to Content
GuidesCandidate Search

Candidate Search

The sourcing hub uses AI to find professionals matching your requirements. Results stream in real-time via SSE.

Search candidates

POST /v1/searches/candidates/search Authorization: Bearer <token> Content-Type: application/json { "prompt": "senior backend engineer with Node.js and PostgreSQL in New York" }

The response streams via text/event-stream with candidate results as they are found.

Search with intent classification

Before running a search, classify the prompt to extract structured filters:

POST /v1/searches/candidates/classify-intent Authorization: Bearer <token> Content-Type: application/json { "prompt": "senior backend engineer with Node.js in New York" }

Search from Sales Navigator URL

Import search criteria directly from a LinkedIn Sales Navigator URL:

POST /v1/searches/candidates/start-with-sales-navigator-url Authorization: Bearer <token> Content-Type: application/json { "url": "https://www.linkedin.com/sales/search/people?..." }

View search history

GET /v1/searches/candidates/history Authorization: Bearer <token>

Returns a list of previous searches with metadata.

Get search results

GET /v1/searches/candidates/:candidateSearchId Authorization: Bearer <token>

Expand search results

When initial results are too narrow, expand to find more candidates:

POST /v1/searches/candidates/:candidateSearchId/expand Authorization: Bearer <token>

Update search prompt

Refine a search by updating its prompt:

PATCH /v1/searches/candidates/:candidateSearchId Authorization: Bearer <token> Content-Type: application/json { "prompt": "senior backend engineer with Node.js, 5+ years, remote OK" }

Helper endpoints

Get job title synonyms and skill suggestions to refine searches:

POST /v1/searches/candidates/job-title-synonyms Content-Type: application/json { "title": "backend engineer" }
POST /v1/searches/candidates/skills-suggestions Content-Type: application/json { "skills": ["Node.js"] }

Candidate lists

Save search results to a named list for ongoing management:

POST /v1/pools/candidates Authorization: Bearer <token> Content-Type: application/json { "name": "NYC Backend Engineers Q2", "candidateSearchId": "search_01abc..." }

List, update, and delete saved lists:

GET /v1/pools/candidates/user/:userId GET /v1/pools/candidates/:listId PUT /v1/pools/candidates/:listId DELETE /v1/pools/candidates/:listId

Full spec

See the API Reference for the complete request/response schema.

Last updated on