Skip to main content
All webhook deliveries are sent as POST requests with Content-Type: application/json. Your endpoint must return a 2xx response within 10 seconds for the delivery to be considered successful. Every payload includes:

candidate.applied

Sent when a candidate submits a self-serve application.
This event only fires for candidates who apply directly (via your careers page or application form). Candidates created through the API or other intake methods do not trigger this event.Specifically, it requires application_source = self_apply and lead_type = applied.

Payload

Fields

integer
Unique candidate identifier.
string
Full name of the candidate.
string
Email address.
string
Phone number in E.164 format.
integer | null
AI-generated fit score (0–100). May be null if scoring has not completed.
string
ISO 8601 timestamp of when the candidate applied.
string | null
Signed URL to the candidate’s resume file, if one was uploaded. Expires after 24 hours.
object | null
Parsed resume data, if available.
string
Direct link to the candidate’s profile in the Outhire app.
integer
ID of the job the candidate applied to.
string
Title of the job.
integer
ID of the company that owns the job.

candidate.stage_changed

Sent when a candidate moves from one pipeline stage to another. The event is not fired if the previous and new stage are the same.

Trigger sources

Stage changes can originate from:
  • A user moving a candidate in the UI (single or bulk)
  • Joel (Outhire’s AI agent) updating a candidate’s stage
  • The public API (PATCH /api/v1/candidates/:id)

Payload

Fields

integer
Unique candidate identifier.
string
Public-facing candidate ID (prefixed with cand_).
string
Full name of the candidate.
string
Email address.
string
Direct link to the candidate’s profile in the Outhire app.
integer
ID of the job the candidate is associated with.
string
Title of the job.
integer
ID of the company.
string
The stage the candidate was in before the change.
string
The stage the candidate moved to.
string
Who initiated the change. One of: user, joel, or api.
string | null
UUID of the user who made the change, when applicable. null for non-user actors.