Webhooks
When a candidate applies for a job, Jooble immediately sends the candidate data
to your endpoint via a webhook. To enable webhooks, provide Jooble with your
endpoint URL and the HTTP method to use (GET, POST, or PUT).
Request Format
Each webhook request includes the following headers:
| Header | Value |
|---|---|
Content-Type | application/json |
X-Webhook-Signature | HMAC-SHA256 signature: t={timestamp},v1={signature} |
Payload
The request body is a JSON object with three top-level fields: candidate,
application, and attachments.
candidate
Candidate personal information.
| Field | Type | Required | Description |
|---|---|---|---|
first_name | string | required | First name |
last_name | string | required | Last name |
email_address | string? | optional | Email address. Defaults to user_without_email@noemail.com if unavailable |
phone_number | string? | optional | Phone number. Empty string "" if unavailable |
gender | string? | optional | Gender in uppercase (e.g. "MALE", "FEMALE") |
location.city | string? | optional | City or region |
location.country | string | required | ISO country code in uppercase (e.g. "UA", "PL") |
desiredSentinels | string[]? | optional | Professions the candidate is looking for, as canonical names in the language of the candidate’s profile. |
application
Information about the job application.
| Field | Type | Required | Description |
|---|---|---|---|
job_id | string | required | Job identifier |
ats_job_id | string? | optional | The job identifier from your ATS. Included only when the job has an ats_job_id; omitted from JSON otherwise |
source | string? | optional | Application source. Omitted from JSON when null |
attachments
A list of attached files (typically the candidate’s CV).
| Field | Type | Required | Description |
|---|---|---|---|
name | string | required | File name (e.g. "resume.pdf") |
data | string | required | Base64-encoded file content |
type | string | required | Attachment type. Currently always "CV" |
content_type | string | required | MIME type (e.g. "application/pdf", "application/msword") |
Example Payload
{
"candidate": {
"first_name": "John",
"last_name": "Doe",
"email_address": "john.doe@example.com",
"phone_number": "+380501234567",
"gender": "MALE",
"location": {
"city": "Kyiv",
"country": "UA"
},
"desiredSentinels": ["Accountant", "Cashier"]
},
"application": {
"job_id": "12345",
"ats_job_id": "ats-67890",
"source": "jooble"
},
"attachments": [
{
"name": "resume.pdf",
"data": "JVBERi0xLjQKMSAwIG9iago8P...",
"type": "CV",
"content_type": "application/pdf"
}
]
}