Developers

Webhooks

Signed events at your own URL when a status changes, an interview is booked, or feedback arrives.

Add an https endpoint under Integrations and choose the events. Use Send a test to check it.

Events

  • candidate.created (a CV was uploaded, added from the CV inbox)
  • candidate.status_changed
  • candidate.hired (a candidate was marked hired; carries the full hire package: profile, offer, scores, interview feedback, notes, and status history)
  • offer.accepted (a candidate signed their offer)
  • offer.declined (a candidate declined their offer)
  • form.submitted (a candidate answered a form you sent)
  • interview.scheduled
  • interview.feedback_submitted
  • ranking.ready (an AI ranking of a job's candidates finished)
  • job.filled

The request

POST https://your-url
webhook-id: <delivery id>
webhook-timestamp: <unix seconds>
webhook-signature: v1,<base64 HMAC-SHA256>

{ "id": "...", "type": "candidate.status_changed", "created": "2026-10-08T09:30:00Z",
  "data": { "candidate_id": "...", "job_id": "...", "name": "...", "status": "shortlisted", "source": "app" } }

Verify every request

Signatures follow the open Standard Webhooks scheme, so its libraries work with your signing secret (shown under Integrations). Reject a timestamp more than five minutes old, and use webhook-id to ignore repeats.

import { Webhook } from "standardwebhooks";
const wh = new Webhook(process.env.REZUMZ_WEBHOOK_SECRET);
const event = wh.verify(rawBody, headers); // throws if invalid

Delivery

  • Answer with any 2xx within 8 seconds. We don't follow redirects.
  • A failed delivery is retried once a day, up to three more times. After 10 failures in a row the endpoint is paused; resume it under Integrations.
  • You can replay any delivery from the recent-deliveries list.

See it on a real hire

Open a private demo with fictional candidates and walk a hire from job description to offer. No sign-up needed.

Try the live demo →