Developers & API

Plug your app into the hiring graph.

One REST API for live hiring signals, cheapest-source-first contact enrichment, and webhooks. Get a key, point your application at it, and integrate in minutes. Your data providers stay yours, RecruitersOS just orchestrates them.

API keys

Bearer tokens scoped per workspace. The secret is shown once at creation, then only its hash is stored, so a leaked database cannot call your account.

Data providers (the enrichment waterfall)

Cheapest sources run first; premium ones only fire on a miss. Bring your own keys, drag the order, RecruitersOS calls them in sequence and verifies before trusting.

Webhooks

Get a signed POST when a signal triggers or an enrichment finishes. Deliveries are HMAC-SHA256 signed with a per-hook secret.

Signal catalog

Every hiring signal the engine detects, with its strength weight and decay half-life. This is a live read of GET /v1/signals/catalog.

Test console

Fire a request against the sandbox and see the shape of the response your app will receive.

Quickstart

Enrich a hiring manager, cheapest-source-first, in one call.

# 1. Enrich a contact (cost-optimized waterfall, cheapest source first, verified) curl https://api.recruitersos.co/v1/enrich \ -H "Authorization: Bearer rk_live_โ€ฆ" \ -H "Content-Type: application/json" \ -d '{"subject":{"firstName":"Jamie","lastName":"Rao","companyName":"Verla Health"}}' # โ†’ { resolved: { email: { value, confidence, providerId, cost } }, totalCost, trace }
// 2. Push your own hiring signal in await fetch("https://api.recruitersos.co/v1/signals/ingest", { method: "POST", headers: { Authorization: `Bearer ${KEY}`, "Content-Type": "application/json" }, body: JSON.stringify({ type: "funding_round", anchor: "verla.health", title: "Verla Health raised a $40M Series B", detail: "Plans to triple engineering this year.", evidence: { amountUsd: 40000000, stage: "series_b" } }) });
// 3. Subscribe to triggers, get a signed POST when a signal fires await fetch("https://api.recruitersos.co/v1/config/webhooks", { method: "POST", headers: { Authorization: `Bearer ${KEY}` }, body: JSON.stringify({ url: "https://yourapp.com/hooks", events: ["signal.triggered"] }) });

Your application, on the hiring graph.

Get a key and ship your first integration today.

Get your API key โ†’