Supported events
| Event | Description |
|---|---|
candidate.applied | A candidate submits a self-serve application |
candidate.stage_changed | A candidate moves from one pipeline stage to another |
Setting up a webhook
Open webhook settings
Navigate to Settings > Webhooks in the Outhire app, or go directly to
/settings/webhooks.Webhook management is available to admin users only.Add an endpoint
Click Add webhook and enter the URL that should receive events. Your endpoint must:
- Accept
POSTrequests - Return a
2xxstatus code within 10 seconds - Be reachable over HTTPS (recommended)
Select event types
Choose which events your endpoint should receive. At least one event type is required.
Save and copy your signing secret
After saving, Outhire generates a signing secret (prefixed with
whsec_). Copy this secret — you’ll need it to verify webhook signatures.Custom headers
You can add custom HTTP headers that Outhire will include on every delivery to your endpoint. This is useful for authentication tokens or routing metadata.Rules
Rules
- Maximum 10 custom headers per webhook
- Header names: up to 100 characters, must be valid HTTP token names
- Header values: up to 2000 characters
- Duplicate header names are rejected (case-insensitive)
Reserved headers
Reserved headers
The following headers are managed by Outhire and cannot be overridden:
content-typewebhook-idwebhook-timestampwebhook-signature
Managing webhooks
From the webhooks settings page, admins can:- Enable / disable a webhook without deleting it
- Delete a webhook permanently
- View the signing secret for signature verification
- Edit custom headers sent with each delivery
- Send a test ping to verify connectivity
- Inspect delivery logs with full request and response details
Each URL can only be registered once per company. To change event subscriptions, edit the existing webhook rather than creating a duplicate.
Test ping
Use the Send test ping button to verify your endpoint is reachable. The test ping sends awebhook.ping event:
webhook.ping is not a subscribable production event — it exists solely for testing.
Delivery logs
Every webhook delivery attempt is logged and visible in the admin UI. For each delivery you can inspect:- HTTP status code
- Request headers and payload
- Response headers and body (truncated to 4000 characters)
- Delivery status:
sending,success, orfailed - Timestamp and attempt count
Delivery behavior
Outhire uses a unique event key per delivery to prevent duplicate sends:| Event | Key format |
|---|---|
candidate.applied | candidate.applied:{webhookId}:{candidateId} |
candidate.stage_changed | candidate.stage_changed:{webhookId}:{candidateId}:{occurredAtMillis} |
webhook.ping | webhook.ping:{webhookId}:{uuid} |