Webhooks notify your systems when something happens in Spott: the inverse of the
API, where you ask Spott for data. Spott’s webhook delivery is powered by Svix,
which handles retries, signing, and idempotency for reliable delivery.
- Go to Settings → Webhooks (admin permissions required).
- Add your endpoint URL and select the events to subscribe to.
- Save. Spott starts delivering events to your endpoint as they occur.
Available events
Every event has its own page in the sidebar, grouped by record type, with the
full payload schema and an example. The live, current catalog is also shown in
Settings → Webhooks when you add an endpoint, where you pick exactly which events
to subscribe to. The events cover the lifecycle of the core records:
- Applications:
application.created, application.updated,
application.deleted, application.stage.moved, application.rejection.created
- Candidates:
candidate.created, candidate.updated, candidate.deleted,
candidate.merged, candidate.education.updated,
candidate.certifications.updated, candidate.workExperiences.updated,
candidate.contactInformation.updated
- Companies:
client.created, client.updated, client.deleted,
client.merged, client.hierarchy.updated
- Jobs:
vacancy.created, vacancy.updated, vacancy.deleted,
vacancy.merged, vacancy.stage.moved
- Job board postings:
jobBoardPosting.created, jobBoardPosting.updated,
jobBoardPosting.deleted
- Placements:
placement.created, placement.updated, placement.deleted
- Notes:
note.created, note.updated, note.deleted
- Users:
user.created, user.updated, user.invited, user.deactivated
- eSignatures:
signingRequest.created, signingRequest.completed
Job descriptions now fire their own events when one is created or updated, so a
careers site or a job board feed can pick up rewritten copy without re-polling every
vacancy.
The eSignature events cover envelopes sent through
DocuSign and Nitro, so you
can track a contract from the moment it goes out to the moment it is fully signed.
client.updated also fires when a Creditsafe report
is approved or declined, so a credit decision reaches your systems without polling.
The report itself is available through the /clients/{clientId}/credit-reports
endpoints in the API.
Handle the .merged events (candidate.merged, client.merged,
vacancy.merged) from the start. When two records are merged in Spott, one ID stops
being the live record. An integration that ignores these keeps both copies on its
side, and the duplicates are awkward to unpick later.
Common integration patterns
- Invoicing automation: subscribe to
placement.created, then fetch the
placement details (candidate, job, fee) via the
API and push them to your finance system.
- CRM sync: subscribe to candidate and contact lifecycle events and mirror
updates to an external CRM.
- Custom analytics: log events of interest into your data warehouse for
downstream analysis.
Webhooks vs the API
- Webhooks: Spott pushes a notification when an event occurs.
- API: you ask Spott for data on demand.
Most integrations use both: the webhook tells you that something happened; the API
tells you what exactly.