Events

Event delivered to your webhook endpoint

Verify X-RecruitMCP-Signature before trusting the body. Answer 2xx within 5 seconds; failed deliveries are retried with backoff.

postWebhookevent

Headers

X-RecruitMCP-Signaturestring required

t=<unix seconds>,v1=<hex HMAC-SHA256 of t.body>

Payload

idstring required
object'event' required
type'job.completed' | 'job.failed' | 'contacts.completed' | 'enrollment.created' | 'enrollment.completed' | 'enrollment.failed' | 'action.sent' | 'action.failed' | 'action.awaiting_approval' | 'reply.received' | 'invite.accepted' | 'account.connected' | 'account.paused' | 'account.disconnected' | 'outreach.cap_reached' | 'credits.low' | 'credits.expiring' | 'credits.purchased' | 'credits.granted' | 'credits.used' | 'credits.payg_alert' required
created_atstring date-time required
customer_idstring nullable
dataobject required

The object the event is about. Fields depend on type.

Example payload

{
  "id": "evt_job_job_3c4d_20261013093000",
  "object": "event",
  "type": "job.completed",
  "created_at": "2026-10-13T09:30:00Z",
  "customer_id": null,
  "data": {
    "job_id": "job_3c4d5e6f7a8b9c0d1e",
    "status": "completed"
  }
}

Response

Received.

Changes

Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.