SaaS webhooks / ATS

Ashby webhook events.

21 events emitted by Ashby in the team-ops webhook catalog. Each event below carries the canonical event name, payload schema (field names and types only), auth method, signature header, retry policy, and a link back to Ashby's docs.

Auth mix: 21 hmac-sha256 · Source extraction: 2026-05-13

v1 verification gap

Audit gap: docs URLs returned 404/redirect or were too thin to cross-check on 2026-05-13. Plausible but unconfirmed. Planned re-extraction in v1.1.

All 21 events

Direct anchors. Each event header links to its own URL.

application.archived

An application is archived (typically when a candidate is rejected or withdrawn).

namespace: application / extraction: llm assisted (confidence 0.90)

Auth

Auth method
hmac-sha256
Signature header
X-Ashby-Signature
Signature detail
HMAC-SHA256 of the raw request body using the webhook's secret key.

Delivery

Guarantees
at-least-once
Backoff
Ashby retries failed webhook deliveries.

Payload schema (field names + types only)

eventType string required
Webhook event type: application.archived.
createdAt string required
ISO 8601 timestamp when the event was created.
data object required
Event-specific payload.
id string required
Application ID.
candidateId string
Candidate ID.
jobId string
Job ID.
jobPostingId string | null
status string (enum) required
createdAt string
updatedAt string
currentInterviewStage object | null
Current stage in the interview pipeline.
archiveReason object | null
hiringTeam object | null
source object | null

Vendor docs

application.created

A new application is submitted or created for a job.

namespace: application / extraction: llm assisted (confidence 0.90)

Auth

Auth method
hmac-sha256
Signature header
X-Ashby-Signature
Signature detail
HMAC-SHA256 of the raw request body using the webhook's secret key.

Delivery

Guarantees
at-least-once
Backoff
Ashby retries failed webhook deliveries.

Payload schema (field names + types only)

eventType string required
Webhook event type: application.created.
createdAt string required
ISO 8601 timestamp when the event was created.
data object required
Event-specific payload.
id string required
Application ID.
candidateId string required
Candidate ID.
jobId string required
Job ID.
jobPostingId string | null
status string (enum)
createdAt string
updatedAt string
currentInterviewStage object | null
Current stage in the interview pipeline.
archiveReason object | null
hiringTeam object | null
source object | null

Vendor docs

application.hired

An application's status transitions to hired.

namespace: application / extraction: llm assisted (confidence 0.90)

Auth

Auth method
hmac-sha256
Signature header
X-Ashby-Signature
Signature detail
HMAC-SHA256 of the raw request body using the webhook's secret key.

Delivery

Guarantees
at-least-once
Backoff
Ashby retries failed webhook deliveries.

Payload schema (field names + types only)

eventType string required
Webhook event type: application.hired.
createdAt string required
ISO 8601 timestamp when the event was created.
data object required
Event-specific payload.
id string required
Application ID.
candidateId string
Candidate ID.
jobId string
Job ID.
jobPostingId string | null
status string (enum) required
createdAt string
updatedAt string
currentInterviewStage object | null
Current stage in the interview pipeline.
archiveReason object | null
hiringTeam object | null
source object | null

Vendor docs

application.stage_changed

An application moves to a different interview stage.

namespace: application / extraction: llm assisted (confidence 0.90)

Auth

Auth method
hmac-sha256
Signature header
X-Ashby-Signature
Signature detail
HMAC-SHA256 of the raw request body using the webhook's secret key.

Delivery

Guarantees
at-least-once
Backoff
Ashby retries failed webhook deliveries.

Payload schema (field names + types only)

eventType string required
Webhook event type: application.stage_changed.
createdAt string required
ISO 8601 timestamp when the event was created.
data object required
Event-specific payload.
id string required
Application ID.
candidateId string
Candidate ID.
jobId string
Job ID.
jobPostingId string | null
status string (enum)
createdAt string
updatedAt string
currentInterviewStage object | null required
Current stage in the interview pipeline.
archiveReason object | null
hiringTeam object | null
source object | null
previousInterviewStage object | null

Vendor docs

application.updated

An application's properties are modified.

namespace: application / extraction: llm assisted (confidence 0.85)

Auth

Auth method
hmac-sha256
Signature header
X-Ashby-Signature
Signature detail
HMAC-SHA256 of the raw request body using the webhook's secret key.

Delivery

Guarantees
at-least-once
Backoff
Ashby retries failed webhook deliveries.

Payload schema (field names + types only)

eventType string required
Webhook event type: application.updated.
createdAt string required
ISO 8601 timestamp when the event was created.
data object required
Event-specific payload.
id string required
Application ID.
candidateId string
Candidate ID.
jobId string
Job ID.
jobPostingId string | null
status string (enum)
createdAt string
updatedAt string
currentInterviewStage object | null
Current stage in the interview pipeline.
archiveReason object | null
hiringTeam object | null
source object | null

Vendor docs

candidate.created

A new candidate record is created.

namespace: candidate / extraction: llm assisted (confidence 0.90)

Auth

Auth method
hmac-sha256
Signature header
X-Ashby-Signature
Signature detail
HMAC-SHA256 of the raw request body using the webhook's secret key.

Delivery

Guarantees
at-least-once
Backoff
Ashby retries failed webhook deliveries.

Payload schema (field names + types only)

eventType string required
Webhook event type: candidate.created.
createdAt string required
ISO 8601 timestamp when the event was created.
data object required
Event-specific payload.
id string required
Candidate ID.
name string required
primaryEmailAddress object | null
Primary email address object.
phoneNumbers array
Candidate phone numbers.
socialLinks array
tags array
createdAt string
updatedAt string
isDoNotContact boolean

Vendor docs

candidate.deleted

A candidate record is deleted.

namespace: candidate / extraction: llm assisted (confidence 0.80)

Auth

Auth method
hmac-sha256
Signature header
X-Ashby-Signature
Signature detail
HMAC-SHA256 of the raw request body using the webhook's secret key.

Delivery

Guarantees
at-least-once
Backoff
Ashby retries failed webhook deliveries.

Payload schema (field names + types only)

eventType string required
Webhook event type: candidate.deleted.
createdAt string required
ISO 8601 timestamp when the event was created.
data object required
Event-specific payload.
id string required

Vendor docs

candidate.merged

Two candidate records are merged.

namespace: candidate / extraction: llm assisted (confidence 0.80)

Auth

Auth method
hmac-sha256
Signature header
X-Ashby-Signature
Signature detail
HMAC-SHA256 of the raw request body using the webhook's secret key.

Delivery

Guarantees
at-least-once
Backoff
Ashby retries failed webhook deliveries.

Payload schema (field names + types only)

eventType string required
Webhook event type: candidate.merged.
createdAt string required
ISO 8601 timestamp when the event was created.
data object required
Event-specific payload.
winnerId string required
ID of the remaining candidate after merge.
loserId string required
ID of the merged-away candidate.

Vendor docs

candidate.updated

A candidate's profile information is updated.

namespace: candidate / extraction: llm assisted (confidence 0.85)

Auth

Auth method
hmac-sha256
Signature header
X-Ashby-Signature
Signature detail
HMAC-SHA256 of the raw request body using the webhook's secret key.

Delivery

Guarantees
at-least-once
Backoff
Ashby retries failed webhook deliveries.

Payload schema (field names + types only)

eventType string required
Webhook event type: candidate.updated.
createdAt string required
ISO 8601 timestamp when the event was created.
data object required
Event-specific payload.
id string required
Candidate ID.
name string
primaryEmailAddress object | null
Primary email address object.
phoneNumbers array
Candidate phone numbers.
socialLinks array
tags array
createdAt string
updatedAt string
isDoNotContact boolean

Vendor docs

interview.created

An interview event is scheduled for an application.

namespace: interview / extraction: llm assisted (confidence 0.90)

Auth

Auth method
hmac-sha256
Signature header
X-Ashby-Signature
Signature detail
HMAC-SHA256 of the raw request body using the webhook's secret key.

Delivery

Guarantees
at-least-once
Backoff
Ashby retries failed webhook deliveries.

Payload schema (field names + types only)

eventType string required
Webhook event type: interview.created.
createdAt string required
ISO 8601 timestamp when the event was created.
data object required
Event-specific payload.
id string required
Interview event ID.
applicationId string required
candidateId string
interviewType object
Interview type details.
status string (enum)
startTime string | null
endTime string | null
interviewers array
Array of interviewer objects.
location string | null
videoConferencingUrl string | null
createdAt string
updatedAt string

Vendor docs

interview.deleted

A scheduled interview is cancelled and deleted.

namespace: interview / extraction: llm assisted (confidence 0.85)

Auth

Auth method
hmac-sha256
Signature header
X-Ashby-Signature
Signature detail
HMAC-SHA256 of the raw request body using the webhook's secret key.

Delivery

Guarantees
at-least-once
Backoff
Ashby retries failed webhook deliveries.

Payload schema (field names + types only)

eventType string required
Webhook event type: interview.deleted.
createdAt string required
ISO 8601 timestamp when the event was created.
data object required
Event-specific payload.
id string required
applicationId string

Vendor docs

interview.updated

An interview's details are changed.

namespace: interview / extraction: llm assisted (confidence 0.85)

Auth

Auth method
hmac-sha256
Signature header
X-Ashby-Signature
Signature detail
HMAC-SHA256 of the raw request body using the webhook's secret key.

Delivery

Guarantees
at-least-once
Backoff
Ashby retries failed webhook deliveries.

Payload schema (field names + types only)

eventType string required
Webhook event type: interview.updated.
createdAt string required
ISO 8601 timestamp when the event was created.
data object required
Event-specific payload.
id string required
Interview event ID.
applicationId string
candidateId string
interviewType object
Interview type details.
status string (enum)
startTime string | null
endTime string | null
interviewers array
Array of interviewer objects.
location string | null
videoConferencingUrl string | null
createdAt string
updatedAt string

Vendor docs

job.created

A new job requisition is created.

namespace: job / extraction: llm assisted (confidence 0.90)

Auth

Auth method
hmac-sha256
Signature header
X-Ashby-Signature
Signature detail
HMAC-SHA256 of the raw request body using the webhook's secret key.

Delivery

Guarantees
at-least-once
Backoff
Ashby retries failed webhook deliveries.

Payload schema (field names + types only)

eventType string required
Webhook event type: job.created.
createdAt string required
ISO 8601 timestamp when the event was created.
data object required
Event-specific payload.
id string required
title string required
status string (enum)
department object | null
location object | null
hiringTeam object
openings array
Array of job opening objects.
customFields array
createdAt string
updatedAt string

Vendor docs

job.deleted

A job is deleted.

namespace: job / extraction: llm assisted (confidence 0.80)

Auth

Auth method
hmac-sha256
Signature header
X-Ashby-Signature
Signature detail
HMAC-SHA256 of the raw request body using the webhook's secret key.

Delivery

Guarantees
at-least-once
Backoff
Ashby retries failed webhook deliveries.

Payload schema (field names + types only)

eventType string required
Webhook event type: job.deleted.
createdAt string required
ISO 8601 timestamp when the event was created.
data object required
Event-specific payload.
id string required

Vendor docs

job.updated

A job's details or status are changed.

namespace: job / extraction: llm assisted (confidence 0.85)

Auth

Auth method
hmac-sha256
Signature header
X-Ashby-Signature
Signature detail
HMAC-SHA256 of the raw request body using the webhook's secret key.

Delivery

Guarantees
at-least-once
Backoff
Ashby retries failed webhook deliveries.

Payload schema (field names + types only)

eventType string required
Webhook event type: job.updated.
createdAt string required
ISO 8601 timestamp when the event was created.
data object required
Event-specific payload.
id string required
title string
status string (enum)
department object | null
location object | null
hiringTeam object
openings array
Array of job opening objects.
customFields array
createdAt string
updatedAt string

Vendor docs

jobPosting.created

A new job posting is created (may be in draft or published).

namespace: jobPosting / extraction: llm assisted (confidence 0.85)

Auth

Auth method
hmac-sha256
Signature header
X-Ashby-Signature
Signature detail
HMAC-SHA256 of the raw request body using the webhook's secret key.

Delivery

Guarantees
at-least-once
Backoff
Ashby retries failed webhook deliveries.

Payload schema (field names + types only)

eventType string required
Webhook event type: jobPosting.created.
createdAt string required
ISO 8601 timestamp when the event was created.
data object required
Event-specific payload.
id string required
jobId string required
title string
status string (enum)
locationIds array
applyUrl string | null
publishedDate string | null
createdAt string
updatedAt string

Vendor docs

jobPosting.deleted

A job posting is deleted.

namespace: jobPosting / extraction: llm assisted (confidence 0.80)

Auth

Auth method
hmac-sha256
Signature header
X-Ashby-Signature
Signature detail
HMAC-SHA256 of the raw request body using the webhook's secret key.

Delivery

Guarantees
at-least-once
Backoff
Ashby retries failed webhook deliveries.

Payload schema (field names + types only)

eventType string required
Webhook event type: jobPosting.deleted.
createdAt string required
ISO 8601 timestamp when the event was created.
data object required
Event-specific payload.
id string required
jobId string

Vendor docs

jobPosting.updated

A job posting's content or status is updated.

namespace: jobPosting / extraction: llm assisted (confidence 0.80)

Auth

Auth method
hmac-sha256
Signature header
X-Ashby-Signature
Signature detail
HMAC-SHA256 of the raw request body using the webhook's secret key.

Delivery

Guarantees
at-least-once
Backoff
Ashby retries failed webhook deliveries.

Payload schema (field names + types only)

eventType string required
Webhook event type: jobPosting.updated.
createdAt string required
ISO 8601 timestamp when the event was created.
data object required
Event-specific payload.
id string required
jobId string
title string
status string (enum)
locationIds array
applyUrl string | null
publishedDate string | null
createdAt string
updatedAt string

Vendor docs

offer.created

A new offer is created for an application.

namespace: offer / extraction: llm assisted (confidence 0.90)

Auth

Auth method
hmac-sha256
Signature header
X-Ashby-Signature
Signature detail
HMAC-SHA256 of the raw request body using the webhook's secret key.

Delivery

Guarantees
at-least-once
Backoff
Ashby retries failed webhook deliveries.

Payload schema (field names + types only)

eventType string required
Webhook event type: offer.created.
createdAt string required
ISO 8601 timestamp when the event was created.
data object required
Event-specific payload.
id string required
applicationId string required
version integer
Offer version number.
status string (enum)
createdAt string
updatedAt string
offerLetterUrl string | null
offerFields array
Array of offer field values.

Vendor docs

offer.updated

An offer's details or status are changed.

namespace: offer / extraction: llm assisted (confidence 0.85)

Auth

Auth method
hmac-sha256
Signature header
X-Ashby-Signature
Signature detail
HMAC-SHA256 of the raw request body using the webhook's secret key.

Delivery

Guarantees
at-least-once
Backoff
Ashby retries failed webhook deliveries.

Payload schema (field names + types only)

eventType string required
Webhook event type: offer.updated.
createdAt string required
ISO 8601 timestamp when the event was created.
data object required
Event-specific payload.
id string required
applicationId string
version integer
Offer version number.
status string (enum)
createdAt string
updatedAt string
offerLetterUrl string | null
offerFields array
Array of offer field values.

Vendor docs

survey.submitted

A candidate survey is submitted.

namespace: survey / extraction: llm assisted (confidence 0.80)

Auth

Auth method
hmac-sha256
Signature header
X-Ashby-Signature
Signature detail
HMAC-SHA256 of the raw request body using the webhook's secret key.

Delivery

Guarantees
at-least-once
Backoff
Ashby retries failed webhook deliveries.

Payload schema (field names + types only)

eventType string required
Webhook event type: survey.submitted.
createdAt string required
ISO 8601 timestamp when the event was created.
data object required
Event-specific payload.
id string required
applicationId string required
candidateId string
surveyType string
Type of survey (e.g. candidate experience, offer, exit).
submittedAt string
responses array
Array of survey response objects.

Vendor docs

Use this data programmatically

The full catalog ships as a HuggingFace dataset under CC-BY-4.0. Load it with the datasets library, filter by vendor, and you have every Ashby event in a Parquet table ready for code-generation, schema validation, or routing.

from datasets import load_dataset
ds = load_dataset("automatelab/saas-webhook-catalog")
events = ds["train"].filter(lambda r: r["vendor"] == "ashby")

Open the dataset on HuggingFace Source on GitHub

Other vendors in the catalog

Back to the index for all 30 vendors.