A documented, versioned REST API and HMAC-signed webhooks. Build integrations with Zapier, Slack, your HRMS — or anything else that speaks HTTP.
Every request is authenticated with a tenant API key. Create one inside the app at Organization → API & Webhooks, then verify it with a single curl:
curl -H "Authorization: Bearer rk_live_..." \
https://recruitizr.ai/api/v1/me{
"tenant_id": "f8c669c6-...",
"tenant_slug": "your-tenant",
"api_key_name": "Production",
"scopes": ["read", "write"]
}Authorization: Bearer rk_live_... — or X-API-Key header./api/v1/*. Breaking changes ship in v2.A focused, intentional surface for the most common integration jobs. More endpoints ship behind feature flags as customers ask for them.
| Method | Path |
|---|---|
GET | /api/v1/me |
GET | /api/v1/positions |
POST | /api/v1/positions |
GET | /api/v1/candidates |
GET | /api/v1/candidates/{id} |
POST | /api/v1/candidates |
GET | /api/v1/interviews |
GET | /api/v1/companies |
curl -X POST https://recruitizr.ai/api/v1/candidates \
-H "Authorization: Bearer rk_live_..." \
-H "Content-Type: application/json" \
-d '{
"candidate_name": "Jane Doe",
"position_id": "POSITION_UUID",
"email": "jane@example.com",
"phone": "+91-9000000000",
"source": "linkedin"
}'Creating a candidate via the API fires the candidate.created webhook to every active subscription registered for your tenant.
Recruitizr POSTs signed JSON payloads to your endpoint when interesting things happen in your tenant. Every request carries an HMAC-SHA256 signature in X-Recruitizr-Signature so you can verify authenticity without trusting the network. Retries are spaced 2s / 10s / 60s.
candidate.createdcandidate.updatedinterview.scheduledinterview.completedclosure.createdresignation.approvedcv.uploaded// Node.js — verify the HMAC signature on incoming webhooks
import crypto from "node:crypto";
export function verifyRecruitizrSignature(req, secret) {
const header = req.headers["x-recruitizr-signature"] || "";
const [, sig] = header.split("=");
const expected = crypto
.createHmac("sha256", secret)
.update(req.rawBody) // Buffer of the raw JSON body
.digest("hex");
return crypto.timingSafeEqual(
Buffer.from(sig, "hex"),
Buffer.from(expected, "hex")
);
}# Python — verify the HMAC signature on incoming webhooks
import hmac, hashlib
def verify_recruitizr_signature(raw_body: bytes, header: str, secret: str) -> bool:
expected = hmac.new(
secret.encode(), raw_body, hashlib.sha256
).hexdigest()
_, _, sig = header.partition("=")
return hmac.compare_digest(sig, expected)Start a free trial, generate your first API key, and ship your first integration this afternoon.