Initiate Sourcing Preview Run
Starts an asynchronous candidate sourcing preview run. Returns immediately with a requestId and status ‘processing’. Results are delivered via webhook (SOURCING_COMPLETED / SOURCING_FAILED) or by polling GET /sourcing/preview//results.
requestId and status: "processing".
Overview
The preview endpoint allows you to rapidly run candidate searches and obtain preview results. Under the hood, it queries the underlying provider’s search preview API.Key Differences from Standard Sourcing
- No Deep Enrichment: Preview results do not include deep profile enrichment (like contact details, emails, work history, fit points, or red flags).
- Fast Execution: Responses are prepared quickly (usually in a few milliseconds to seconds).
- Stripped-down Candidate DTO: Candidates in the results only contain 9 basic fields (listed below).
- Credit Cost: Candidate previews charge 1 credit (or 0.4 minutes) per preview page successfully queried (where each page contains up to 20 candidates).
Candidate Limits and Internal Pagination
The preview API automatically handles pagination internally based on the number of candidates you request:- Use the optional
limitparameter to specify the desired candidate count (between1and100, default:20). - The system automatically polls the underlying provider’s preview pages sequentially (up to 5 pages of 20 results each) to satisfy your requested limit.
- Previews are charged per page queried (1 credit / 0.4 minutes per page). For example, requesting a limit of 40 candidates queries up to 2 pages, costing up to 2 credits.
Billing and Pre-Flight
Candidate previews charge 1 credit (or 0.4 minutes) per preview page successfully queried. At initialization, a pre-flight balance check is performed for the maximum possible cost based on the requestedlimit (computed as Math.ceil(limit / 20) * 1 credit). If the company does not have sufficient credits or minutes, the request is rejected with a 402 Payment Required status.
During execution, if the provider returns fewer pages than requested (e.g. because results are exhausted), only the pages successfully queried are charged, and any unused credits from the initial hold are automatically released.
Webhook Delivery
To receive results without polling, pass awebhookId referencing a pre-registered WebhookConfig that subscribes to at least one of SOURCING_COMPLETED or SOURCING_FAILED. The webhook config must belong to the same company as the authenticating API key.
When the preview run completes, a SOURCING_COMPLETED webhook event is dispatched. The candidates array in the webhook payload will contain preview-formatted candidates containing only the 9 basic fields.
Examples
Minimal Request
Full Request with Candidate Limit
Response (202 Accepted)
Preview Candidate Fields
Thecandidates array returned for preview requests (both from the polling endpoint and webhook) is stripped down to exactly the following 9 fields:
profileId(Opaque identifier, MD5 hash of LinkedIn profile URL)fullNameprofileUrltitleheadlinelocationcountrycompanyNamecompanyUrl
Authorizations
API key for authentication using Bearer scheme
Body
Human-readable title for this sourcing run.
200"Senior Backend Engineers – FinTech"
Full job description used to build the candidate-search query.
10000"We are looking for a Senior Backend Engineer with 5+ years of Node.js experience…"
Target location for the search (e.g. 'San Francisco, CA' or 'Remote').
200"San Francisco, CA"
Override for the free-text search query sent to the sourcing agent. When omitted the agent derives it from jobDescription.
500"Senior Node.js engineer fintech"
Maximum number of candidates to return (default: 20, max: 100).
1 <= x <= 10020
UUID of a WebhookConfig to notify when the run completes or fails. The webhook must belong to the same company and subscribe to at least one sourcing event.
"123e4567-e89b-12d3-a456-426614174000"
Response
Sourcing preview run accepted and queued for processing
Whether the request was accepted for processing.
true
Unique external identifier for this sourcing run.
"req_550e8400-e29b-41d4-a716-446655440000"
Current status of the run.
processing, completed, failed "processing"
Human-readable message.
"Sourcing run accepted and queued for processing."
UUID of the webhook configuration that will receive completion events.
"123e4567-e89b-12d3-a456-426614174000"
ISO 8601 timestamp when the run was created (POST only).
"2025-01-01T00:00:00.000Z"
ISO 8601 timestamp when the run was last updated (PATCH only).
"2025-01-01T00:01:00.000Z"