How to receive job applications from us via HTTP POST

We are able to send job applications directly to your server by HTTP POST.

All you need to do is implement an endpoint on your web or API server that can take an HTTP POST using multipart/form-data encoding with the following parameters:

Param Description
job_id Reference of the job the candidate is applying for
We use the reference that is supplied to us in the XML feed
firstname Firstname of the candidate
lastname Lastname of the candidate
email Email of the candidate
phone_number Phone number of the candidate
This might be empty
cv File containing the candidate's CV/resume
cover_letter Text accompanying the CV/resume
This might be empty
uuid Unique identifier of job application
candidate_ip IP address of candidate
This is useful if you need to geolocate the candidate
candidate_user_agent User agent of candidate
This is useful for analytics or debugging purposes
source_signature Signature that allows to verify if the job application has really been pushed by us

On your side you will need to read the parameter values, process them, and return a status message with an associated HTTP code. The status message should be returned as JSON.

Example:

{ "status": "application appected"}

Depending on the result one of the following status codes with associated status message should be returned:

Status Code Message Description
200 application accepted This is to return if the application has been processed without problems
403 invalid source This is to return if you have checked the source_signature field and you are sure the job application has not been send by us
409 application period closed This is to return if the recruiter or company has decided to no longer accept applications
410 job not found This is to return if the job has been deleted or taken off-line
451 region not accepted This is to return if the candidate is located in a region or country that doesn't fulfill the location requirements of the company or recruiter
418 unexpected error This is to use if you have encountered an unexpected error

Securing your endpoint

Even though not strictly necessary, we strongly recommend that you make use of source_signature to protect your server from requests that have not been sent by us.

The way to use is to compare this signature with the MD5 of the uuid concatentated by the API secret that has been communicated to you, so essentially MD5(uuid + api_secret).

If the MD5 fails to match source_signature, or if source_signature is not present at all, please return a 403 with the status message "invalid source".

Testing your endpoint

The best way to test your endpoint is to use curl. Here is an example:

curl -X POST -H "Content-Type: multipart/form-data" \
     -F "uuid=12345678-aaaa-bbbb-cccc-123456789abc" \
     -F "job_id=20240107-123456-7890" \
     -F "candidate_ip=9.9.9.9" \
     -F "candidate_user_agent=Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Firefox/102.0" \
     -F "firstname=Joe" \
     -F "lastname=Smith" \
     -F "email=joe.smith@example.com" \
     -F "phone_number=(212) 555-1234" \
     -F "cv=@test_cv.pdf" \
     -F "cover_letter=Please find attached my CV." \
     http://example.com/apply/careerjet

Please note that test_cv.pdf needs to be a file in your current directory.

Also please note that if you want to test the source signature, you will need to include the line:

     -F "source_signature=XXXXXX" \

where XXXXXX should be replaced by the MD5 of UUID (in this case 12345678-aaaa-bbbb-cccc-123456789abc) concatenated by the API secret that has been supplied to you.