Job posting API information

Many member organizations that post jobs regularly on the Devex job board or tend to post jobs on a number of different websites use a job posting API to do so quicker.

Our developers have drafted the below instructions regarding the XML code and overall API functionality. Those members that decide to implement jobs via an API involve developers from their team or from a third party organization (e.g. Broadbean, Taleo etc). 

Devex Job Posting API

The devex job posting API is a post/patch restful http endpoint accessible at https://www.devex.com/api/public_secure/job_uploads/job_upload.xml (live/production site) using a key/password.

Jobs are posted via the API through xml files that follow a certain format or template. One XML file submission is one job posting.

The username and password fields in the XML would be that of the devex.com recruiter account - jobs would appear posted by this user on the devex.com job board.

The <production key> to be used on the curl command should always be wSpKBJm3wCNNYjX. It has no password. This works on both staging and production environments. We will let you know if the production key changes.

Examples:

Create/Post a Job curl -u <production key> -v -H "Content-Type: application/xml; charset=utf-8" - data-ascii @/file directory path of the job xml to be uploaded/sample.xml https://www.devex.com/api/public_secure/job_uploads/job_upload.xml - X POST

Example (from the folder where test xml is located) : curl -u wSpKBJm3wCNNYjX -v -H "Content-Type: application/xml; charset=utf-8" -data-ascii @samplejob.xml https://www.devex.com/api/public_secure/job_uploads/job_upload.xml

Update curl -u <production key> -v -H "Content-Type: application/xml; charset=utf-8" - data-ascii @/file directory path of the job xml to be uploaded/sample.xml https://www.devex.com/api/public_secure/job_uploads/job_upload.xml -- request PATCH

- for updates you can omit the nodes that will not be updated and just keep the node of the data that will be updated. Most importantly the XML must contain the ID of the job to be updated

Delete curl -u <production key> -v -H "Content-Type: application/xml; charset=utf-8" - data-ascii @/file directory path of the job xml to be uploaded/sample.xml https://www.devex.com/api/public_secure/job_uploads/job_upload.xml -- request DELETE - fairly simple, the XML must contain the ID of the job to be deleted.
As for response codes, please note the ff:

For job creation/uploads
HTTP response status should be 201 if it succeeds HTTP response status is 500 if it fails (which also shows the error) For delete/update
HTTP response status should be 200 if it succeeds and still 500 if it fails

Required Fields in the XML input file: command - add, update, delete username - job poster username of account in devex.com password - job poster password of account in devex.com days to advertise - number of days job opening is active application email or url - email address to which job applications will be sent - this may also be a website url to redirect users to job title description location job_level position_type employer_company – this shows the name of the organization you want to appear as the employer/hiring organization on the job detail page.

Values for job_level and position_type in the XML input file

Possible Job Levels: Scholarships / Fellowships Entry-level Mid-level Senior-level Executive-level Volunteer Internship

Possible Position Types (Contract Lengths): All Full-time staff position Part-time staff position Volunteer opportunity Field assignment None Short-term contract assignment Long-term consulting assignment

Sample input xml

Other notes: Since the job feed xml uses tags to form commands, please make sure that <> symbols are not used on your job descriptions or apply emails to avoid getting errors on your upload. If you will be using ampersands (&) or any HTML codes on your XML, please refer to these guidelines:

1. The "&" can be replaced by "&amp;"
2. HTML codes can be inserted but they have to be introduced using the <![CDATA[]]> tag, you can refer to this example using CDATA: