Last updated: 19. July 2023 14:46

Introduction

Thanks for your interest in our Rest API. If you have any problem or questions please contact our support.

Authentication

To authenticate, add an Authorization header to your API request that contains an API Key.
If you don't have an API Key yet, please contact us.
The API-Key must be kept secret.
The Request Header has to look as follows:

Authentication HTTP Header
Header:

Authorization: Bearer 320b40f7-7965-4f0e-b4eb-42b387e91184

Formats

JSON

All json fields must be surrounded with double quotes.

API endpoints

Apply
Description:

Send Application data. All binary data (files, pictures) must be uploaded over the file upload api.


Method:
POST

URL:
https://api.dualoo.com/v1/apply

Header:
Accept: application/json
Content-Type: application/json
Authorization: Bearer 320b40f7-7965-4f0e-b4eb-42b387e91184

Body:
Body parameter description
Name Type Possible Value Required
job_id String Job Reference required
firstname String All Characters, Length 1-255 required
lastname String All Characters, Length 1-255 required
gender String Following Values are possible:
  • MALE
  • FEMALE
  • DIVERS
required
street String All Characters, Length 1-255 required
zip String All Characters, Length 1-255 required
city String All Characters, Length 1-255 required
country String ISO Country Code, 2 Letters (CH, DE, AT) required
email String valid email format required
birthdate String YYYY-MM-DD optional
phone_mobile String Phone Format optional
phone_home String Phone Format optional
level_of_education String All Characters, Length 1-255 optional
comments[] String All Characters optional
profile_picture String file_reference optional
attachments[] File Object File Object optional
attachments[].categories[] String Following Types are possible:
  • CV (Curriculum Vitae)
  • COVER_LETTER (Cover letter, motivation letter)
  • CERTIFICATE (Certificate, School report, Job reference)
  • OTHER
required
attachments[].file_ref String (reference) file_reference required

Response:
HTTP/1.1 200
As a result you receive the job application id. Save this id for future interactions for this application.
File
Description:

To upload a file you must send it as a multipart request.
You can send any file format.
The filename must have a extenstion. (example: pdf, png, docx)


Method:
POST

URL:

https://api.dualoo.com/v1/file


Header:
Content-Type: multipart/form-data; boundary=---------------------------7e22032a10708
Accept: application/json
Authorization: Bearer 677a1598d208d6c303fa5ca1c774709250e21749

Body:
---------------------------7e22032a10708
Content-Disposition: form-data; name="file"; filename="CV Daniel Huber.pdf"
Content-Type: application/pdf
XKDAFJ....KSKALSS
---------------------------7e22032a10708

Response:
HTTP/1.1 200
IdentyFi
Description:

Send status of task finished info


Method:
POST

URL:

https://api.dualoo.com/v1/integration/identyfi/status


Header:
Content-Type: application/json
Authorization: Bearer 320b40f7-7965-4f0e-b4eb-42b387e91184

Body:

Response:
HTTP/1.1 200
Ping
Description:

Check if a token is valid


Method:
GET

URL:

https://api.dualoo.com/v1/ping


Header:
Content-Type: application/json
Accept: application/json

Request Parameters:
Name Type Possible Value Required
token String Api Token Reference required

Response:
HTTP/1.1 200
getJobPublications
Description:

Returns all job publication of the requested job portal. Use the job portal id to gather the data. You can find the id in the url https://jobs.dualoo.com/portal/{job portal id}

This endpoint does only process job publications with text and no PDF's.

Please bear in mind that new languages will be introduced without an API version change. So make sure you implement all language fields dynamically.

We recommend to query the data every hour and cache it, but if needed you can also call this endpoint when your job portal page is accessed


Method:
GET

URL:
https://api.dualoo.com/v1/getJobPublications/{job portal id}

Header:
Accept: application/json
Content-Type: application/json
Authorization: Bearer 320b40f7-7965-4f0e-b4eb-42b387e91184

Request Parameters:

no request parameter


Response:
HTTP/1.1 200
As a result you receive all published job publication on that job portal.
Response Schema
Name Type Possible value
id String, length 36 Job publication ID for apply endpoint
status String Following values are possible:
  • ACTIVE
  • EXPIRED
jobPrefix String, length 1-255 Is populate when the same job has more than 1 job publication, no translation
jobName String, length 1-255 Name of the job in German
jobNameXy String, length 1-255 Name of the job in foreign language, Xy is always language code according to ISO 639-1
jobPercentageMin Integer Between 0 - 100
jobPercentageMax Integer Between 0 - 100
jobCategory String, length 1-255 Following values are possible:
  • INTERNSHIP
  • EMPLOYEE
  • APPRENTICESHIP
branchName String, length 1-255 Name of the branch
branchCountry String, length 2 Country of the branch displayed as a 2 character long code
branchStreet String, length 1-255 Street of the company
branchZip String, length 1-255 Postal code of the company
branchCity String, length 1-255 City of the company
jobStartDate String, length 1-255 Following values are possible:
  • IMMEDIATELY
  • AGREEMENT
  • YYYY-MM (e.g. 2023-04)
workPeriod String, length 1-255 Following values are possible:
  • UNLIMITED
  • LIMITED
workPeriodDuration String, length 1-255 Duration, see workPeriodUnit what the unit is.
Null in the case of workPeriod = UNLIMITED
workPeriodUnit String, length 1-255 Following values are possible:
  • year
  • month
  • day

Null in the case of workPeriod = UNLIMITED

numberOfJobs Integer Number of open positions
advertismentType String, length 1-255 Following values are possible:
  • TEXT
advertismentText.text0 String, length 1-65'535 Content of text0
advertismentText.text0Show boolean Show content of text0
advertismentText.text0Xy String, length 1-65'535 Content of text0 in foreign language, Xy is always language code according to ISO 639-1
advertismentText.text0ShowXy boolean Show content of text0 in foreign language, Xy is always language code according to ISO 639-1
advertismentText.text1 String, length 1-65'535 Content of text1
advertismentText.text1Title String, length 1-255 Title of text1
advertismentText.text1Xy String, length 1-65'535 Content of text1 in foreign language, Xy is always language code according to ISO 639-1
advertismentText.text1TitleXy String, length 1-255 Title of text1 in foreign language, Xy is always language code according to ISO 639-1
advertismentText.text2 String, length 1-65'535 Content of text2
advertismentText.text2Title String, length 1-255 Title of text2
advertismentText.text2Xy String, length 1-65'535 Content of text2 in foreign language, Xy is always language code according to ISO 639-1
advertismentText.text2TitleXy String, length 1-255 Title of text2 in foreign language, Xy is always language code according to ISO 639-1
advertismentText.text3 String, length 1-65'535 Content of text3
advertismentText.text3Title String, length 1-255 Title of text3
advertismentText.text3Show boolean Show content of text3, Xy is always language code according to ISO 639-1
advertismentText.text3Xy String, length 1-65'535 Content of text3 in foreign language, Xy is always language code according to ISO 639-1
advertismentText.text3TitleXy String, length 1-255 Title of text3 in foreign language, Xy is always language code according to ISO 639-1
advertismentText.text3ShowXy boolean Show content of text3 in foreign language, Xy is always language code according to ISO 639
socialMediaImageUrl String, length 1-255 URL to social media image
contact.firstname String, length 1-255 Firstname of recruiter
contact.lastname String, length 1-255 Lastname of recruiter
contact.phone String, length 1-255 Phone of recruiter
contact.role String, length 1-255 Role of recruiter
contact.company String, length 1-255 Company branch of recruiter
contact.email String, length 1-255 Email address of recruiter
branchLogoUrl String, length 1-255 URL to tenant branch logo
jobPortalMediaFileUrl String, length 1-255 URL to job publication image, if one is chosen
jobLanguages Array of strings of length 2 Shows the languages for which the job publication has data
showFacebookLink boolean Is social media link for facebook active?
facebookLink String, length 1-255 Direct link for sharing on facebook URL, only active when showFacebookLink is true
showTwitterLink boolean Is social media link for twitter active?
twitterLink String, length 1-255 Direct link for sharing on twitter URL, only active when showTwitterLink is true
showXingLink boolean Is social media link for xing active?
xingLink String, length 1-255 Direct link for sharing on xing URL, only active when showXingLink is true
showLinkedinLink boolean Is social media link for linkedin active?
linkedinLink String, length 1-255 Direct link for sharing on linkedin URL, only active when showLinkedinLink is true
createdAt Date and Time Date and time when the publication was created
updatedAt Date and Time Date and time when the publication was last updated
internalNote String, length 1-65'535 Internal notes that are individual per jobpublication