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

  1. 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.

  2. 02

    Plan

    POST /v1/runs?dry_run=true with the job text returns the plan and the estimate. Free.

  3. 03

    Run

    POST /v1/runs with budget.max_credits and an Idempotency-Key. A retried call with the same key is not charged again.

  4. 04

    Collect

    A webhook endpoint receives the signed run.completed event. Fetch the candidates as JSON or CSV with your key.

Sample transcript

your code · sourcing-pipeline-from-codeexample data
  1. You: New role in the ATS: data engineer, Antwerp, target 40.
  2. Tool call: POST /v1/runs?dry_run=true { job_description: "Data engineer, Antwerp…", target: 40 }
  3. Result: ← 200 · credits_max 120 · requires_confirm true
  4. Tool call: POST /v1/runs Idempotency-Key: role-118 { plan_id: "pln_A1", budget: { max_credits: 120 } }
  5. Result: ← 202 accepted · run_7Hq
  6. Check: ✓ run.completed · signature valid · 40 candidates · 120 credits
  7. Tool call: GET /v1/runs/run_7Hq/candidates
  8. 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

MCP tool and the matching REST endpoint
toolendpoint
plan_searchPOST /v1/search-plans
start_searchPOST /v1/runs
get_search_resultsGET /v1/runs/{run_id}/candidates
list_eventsGET /v1/events
Read the docs →

Credit cost

example data
Example cost breakdown
Key, intent, and plan0
40 leads × 140
40 live profiles × 280
Webhook and retries0
Total120

Example data. budget.max_credits caps the run whatever the market turns out to be.

Build this with an API key.