Changelog
Changes to the Jooble ATS Integration API, newest first.
5 October 2026
Effective Monday, 5 October 2026. The Get Candidates response format changes. Check your integration against the updated response before this date.
Summary
| Endpoint | What changes | Action required |
|---|---|---|
| Get Candidates | Adds education and work experience. CV is now returned for every account. Updated response format | Yes, check your integration against the updated response |
| Create Job | Salary currency can be set with currencyId | No |
| Update Job | Salary currency can be set with currencyId | Yes, if your salaries are not in the default currency |
| Get Job, Get All Jobs | Include a link to the job on Jooble | No |
Get Candidates
GET /AtsJob/appliesByJob/{jobId}
Added
-
applicant.education: array of the candidate’s education entries.Field Type Description institutionstring? Institution name levelstring? Education level, as shown to the candidate majorstring? Field of study yearOfGraduationint? Graduation year -
applicant.workExperience: array of the candidate’s work experience entries.Field Type Description titlestring? Position employerstring? Company name responsibilitiesstring? Responsibilities, free text startDatestring? Start date, as entered by the candidate (e.g. "2025-01-01")endDatestring? End date. nullmeans the candidate still works there -
jobTitle: title of the job the candidate applied to.
Both arrays are always present and are empty ([]) when the candidate has no
entries. Every field inside an entry can be null.
Changed
cvFileis returned for every account. A separate ATS integration setting is no longer required.cvFileis omitted when the candidate has no CV. It was previously returned asnull. Treat a missingcvFileand anullone the same way.
Updated response
A candidate object after this release:
[
{
"id": "649241",
"isNew": true,
"isViewed": false,
"fileName": null,
"date": "2026-09-24T11:35:38Z",
"dateStatusChanged": "2026-09-24T11:35:38Z",
"applicant": {
"gender": "MALE",
"name": "John Smith",
"age": "30",
"salary": "120000",
"region": "Kyiv",
"currency": "UAH",
"isReadyForRelocate": false,
"contacts": {
"phone": "+380631234567",
"email": "john.smith@example.com",
"openDate": null,
"isOpened": true
},
"education": [
{
"institution": "Imperial College London",
"level": "Bachelor",
"major": "Computer Science",
"yearOfGraduation": 2020
}
],
"workExperience": [
{
"title": "QA Automation Engineer",
"employer": "Acme",
"responsibilities": "Test automation",
"startDate": "2025-01-01",
"endDate": null
}
]
},
"jobId": 41927,
"jobTitle": "QA Engineer",
"cvFile": {
"name": "resume.pdf",
"data": "JVBERi0xLjQKMSAwIG9iago8P...",
"type": "CV",
"contentType": "application/pdf"
}
}
]Create Job and Update Job
POST /AtsJob/create, PUT /AtsJob/update
Added
currencyId(int, optional): salary currency. Allowed values are0,1and2; any other value returns400 Bad Request.
The currency behind each currencyId depends on the country. For example,
0 is UAH in Ukraine but EUR in Romania. Always use the row for the country
the job is published in.
| Country | 0 | 1 | 2 |
|---|---|---|---|
Ukraine (ua) | UAH | USD | EUR |
Romania (ro) | EUR | RON | USD |
Hungary (hu) | HUF | EUR | USD |
If currencyId is omitted, 0 is used: UAH in Ukraine, EUR in Romania and HUF
in Hungary. This also applies to Update Job: an update without
currencyId sets the currency back to 0, so send currencyId on every
update if the job uses another currency.
Get Job and Get All Jobs
GET /AtsJob/{id}, GET /AtsJob/allJobs
Added
url: link to the job on the Jooble website, returned for every account on both endpoints. The field is omitted until the job has been published.
What to do before 5 October
Check the new response format
Compare how your integration reads Get Candidates with the updated response and rely only on the fields shown there.
Handle a missing cvFile
Treat a missing cvFile as “no CV attached”.
Send currencyId if you publish salaries
If your jobs show salaries in a currency other than the default for their
country (UAH in Ukraine, EUR in Romania, HUF in Hungary), send currencyId on
both create and update. For example, a salary in RON in Romania needs
"currencyId": 1.
Questions about this release? Contact your Jooble account manager.