Sourcing · from your code · Sourcer with own tooling
Run sourcing from n8n or your own scripts
Call the same plan, estimate, and run steps over REST. A signed webhook tells your workflow when the run is done.
Who it is for
Sourcers and recruiting ops people who already run n8n, Make, or their own scripts and want sourcing as one step in that pipeline.
The problem
Sourcing tools live behind a UI, so every new role means copy and paste. Raw people APIs bill per query and leave dedup, budgets, and retries to you.
Workflow
- 01
Key
POST /v1/api-keys issues a key for this workflow with the sourcing:spend scope and a daily_cap_credits ceiling. The secret is shown once.
- 02
Plan
POST /v1/runs?dry_run=true with the job text returns the plan and the estimate. Free.
- 03
Run
POST /v1/runs with budget.max_credits and an Idempotency-Key. A retried call with the same key is not charged again.
- 04
Collect
A webhook endpoint receives the signed run.completed event. Fetch the candidates as JSON or CSV with your key.
Sample transcript
- You: New role in the ATS: data engineer, Antwerp, target 40.
- Tool call: POST /v1/runs?dry_run=true { job_description: "Data engineer, Antwerp…", target: 40 }
- Result: ← 200 · credits_max 120 · requires_confirm true
- Tool call: POST /v1/runs Idempotency-Key: role-118 { plan_id: "pln_A1", budget: { max_credits: 120 } }
- Result: ← 202 accepted · run_7Hq
- Check: ✓ run.completed · signature valid · 40 candidates · 120 credits
- Tool call: GET /v1/runs/run_7Hq/candidates
- Result: ← 40 raw profiles, ready for your ATS
Outcome
- Sourcing as one step in a workflow you already run, with no UI in the loop.
- A spend ceiling per key and per run, so a loop bug cannot drain the balance.
- Safe retries: the same Idempotency-Key never charges twice.
Prompts for your coding agent
n8n workflow
“Write an n8n workflow: when a role opens in our ATS, dry-run a RecruitMCP search from the job text, stop if credits_max is above 15, otherwise run it and wait for run.completed on a webhook.”
Verify the webhook
“Write a Node handler that checks X-RecruitMCP-Signature on run.completed and rejects anything older than five minutes.”
Export
“Export the RecruitMCP list "Antwerp data" as CSV and append the rows to our hiring sheet.”
Tools and endpoints
| tool | endpoint |
|---|---|
| plan_search | POST /v1/search-plans |
| start_search | POST /v1/runs |
| get_search_results | GET /v1/runs/{run_id}/candidates |
| list_events | GET /v1/events |
Credit cost
example data| Key, intent, and plan | 0 |
|---|---|
| 40 leads × 1 | 40 |
| 40 live profiles × 2 | 80 |
| Webhook and retries | 0 |
| Total | 120 |
Example data. budget.max_credits caps the run whatever the market turns out to be.