Introduction
Scope: This XML integration guide applies to both Totaljobs and Caterer. The XML format, posting behaviour and integration rules are the same for both platforms. Only the test URLs and test credentials in Appendix II are platform-specific.
The purpose of this document is to explain how to produce an XML job feed for posting large numbers of jobs to the totaljobs.com web site. XML feeds allow job posters to add, delete and update jobs.
The document will explain the data structure of an XML feed together with definitions of the data types required to process jobs.
Once an XML job feed is created by the job poster it can be submitted to totaljobs.com in several ways. The method of submission of an XML job feed will depend upon the technology available to the job poster and their preference for file transmission across the internet. This document will describe how an XML job feed can be submitted to totaljobs.com.
Data Structure
Data must be sent in Extensible Markup Language (XML) and in a format that is recognised by the Bulk Job Loading system. The latter is the application that processes job feeds and maintains large volumes of jobs on the totaljobs.com web site.
The following example is an XML job feed containing a single job advert:
<FILE>
<ADVERT>
<ROOT LOADTYPE= "A">
<JOB FEEDID="TEST"
LIVEDAYS="28"
UNIQUEJOBNO="20050202TEST01"
DESCRIPTION="Senior Auditor required for City practice."
TITLE="Senior Auditor"
REGION="North West"
TOWN="Manchester"
POSTCODE="M1 3BN"
RATEUNIT="a"
SALARYMIN="25000"
SALARYMAX="30000"
SALARYDESC="30k plus benefits"
INTERNALJOBREF="REF20050202TEST01"
RESPONSEURL="http://www.totaljobs.com/"
HIDEFULLPOSTCODE="False"
JOBTEMPLATENAME="Standard Job" />
<POSTINGCOMPANY USERNAME="totaljobstestsite"
PASSWORD="FUM7aYT8" />
<CONTACT PHONE="0333 0145 111"
EMAIL="ben@test.com"
FIRSTNAME="Recruitment Team" />
<ADDITIONALJOBTYPE GROUP="Permanent" />
</ROOT>
</ADVERT>
</FILE>
Please note the following important points about an XML job feed:
- An XML job feed consists of nodes (e.g. JOB), attributes(e.g. FEEDID) and values(e.g. TEST)
- Nodes must be closed. For example
<FILE>…</FILE>or <JOB FEEDID=”TEST“…/> - XML is case sensitive. For example the
<FILE>node cannot be closed with </file>. - A feed must contain only one
<FILE>node. - A
<FILE>node must contain one or more<ADVERT>nodes. - Each
<ADVERT>node must contain a single<ROOT>node. - The
<ROOT>node must be assigned a correct loadtype value. - The
<ROOT>node must contain a<JOB>,<POSTINGCOMPANY>and<CONTACT>node. The<ADDITIONALJOBTYPE>node is optional but should be included to allow jobseekers to refine their job searches. The<SCREENINGQUESTIONS>node is optional, if added additional questions will be displayed to the candidate and it will be obligatory for them to answer. - Where a node contains an attribute, the attribute must be assigned a correct value.
- The structure of an XML job feed must conform to the format detailed in the following section titled XML Format.
XML Format
The following table contains a detailed description all the nodes and attributes that are used in the totaljobs.com XML format.
| XML | Data Field Name | Example Value | Required | Size | Description |
|---|---|---|---|---|---|
<FILE> | Y | Opens a job feed. | |||
<ADVERT> | Y | Opens an advert. | |||
<ROOT | Y | Set the action to be performed on the job: | |||
LOADTYPE | "A" | Y | 1 | A to load a job, D to delete, U to update. | |
> | |||||
<JOB | Y | ||||
FEEDID | "TEST" | Y | 10 | The Data Feed Identifier is unique and will be assigned to you by feed support. | |
LIVEDAYS | "28" | Y Ignored on the new platform (see Appendix III) | Set the number of days that the job will appear on the site. The maximum duration for an advert is specified in your contract. | ||
UNIQUEJOBNO | "20050202TEST01" | Y | 40 | The UNIQUEJOBNO must be unique and is your reference to identify a job. Avoid formulations that other users may use (e.g. tj1, tj2, 1234, johnsmith etc.). | |
DESCRIPTION | "Senior Auditor required for City practice" | Y | N/A | The job description can be as long as necessary. HTML tags can be used to format the description – see Appendix V. | |
TITLE | "Senior Auditor" | Y | 255 | The job will be advertised under this heading. | |
RATEUNIT | "a" | Y | Salary rate unit – See Appendix III for valid rate units | ||
SALARYMIN | "10000" | Y | See Appendix III for valid min salary values. | ||
SALARYMAX | "11999" | Y | See Appendix III for valid max salary values. | ||
SALARYDESC | "30K plus benefits" | Y | 70 | A description of the salary, which can include both text and figures. If no value is provided, this field will default to “Competitive”. | |
INTERNALJOBREF | "REF20050202TEST01" | Y | 70 | We recommend that you always assign internal job references. They allow you to track your job on the site and help to identify it should you need to delete it. | |
RESPONSEURL | " https://www.totaljobs.com/" | N | Redirects users to an external URL to complete their application. | ||
REGION | "North West" | Y | See Appendix III for values. All valid REGION and TOWN values can be found in the accompanying Location List. | ||
TOWN | "Manchester" | N | If you are unable to specify a postcode, you can use the free text town field instead; the town will be assigned to the job as its location. If you are using the town field a region or county location MUST be specified in the region field. This will be used to resolve any ambiguous town locations. | ||
POSTCODE | "M1 3BN" | N | In addition to the Region and Town, you can also specify a full UK postcode, and the postal district of that postcode will be assigned to the job as its location. For example, specifying the postcode “M1 3BN” will advertise the job as in “City Centre, Manchester (M1), M1 3BN”. | ||
HIDEFULLPOSTCODE | "False" | N Ignored on the new platform (see Appendix III) | In addition to the specifying the postcode, which makes the job more likely to be found on our site, you can choose to Hide the full postcode. For example, specifying the HideFullPostcode as “True” will advertise the job as in “City Centre, Manchester (M1)”, “False” will advertise the job to the full postcode “City Centre, Manchester (M1), M1 3BN”. | ||
JOBTEMPLATENAME | "ProPlus; Standard Job" | Y | 100 | Specifies the name of a job template. The template determines branding, and for clients migrated to our new platform it also determines the product. See Appendix III for details. | |
EUONLY | "True" | N | 10 | Specifies whether the job can be viewed by candidates outside the EU. | |
/> | |||||
<POSTINGCOMPANY | |||||
USERNAME | "totaljobstestsite" | Y | This is will be assigned to you by our feed support team. | ||
PASSWORD | "FUM7aYT8" | Y | This is will be assigned to you by our feed support team. | ||
/> | |||||
<CONTACT | |||||
FAX | "020 5678 9999" | N | 20 | The fax number for the job contact | |
PHONE | "020 1234 9999" | N | 20 | The telephone number for the job contact | |
EMAIL | "ben@test.com" | Y | 60 | Candidate applications will be delivered here | |
FIRSTNAME | "Recruitment Team" | Y | 30 | The name of the job contact. | |
NOTIFICATIONEMAIL | "andy@test.com" | N | 60 | The email address used for job related notifications, include if it needs to be different from the Applications e-mail address specified in “EMAIL” field above | |
/> | |||||
<ADDITIONALJOBTYPE | N | Set this node if you want the job to be searchable under a particular search category. Please see the next section for more information on setting additional job types. | |||
GROUP | "Permanent" | Y | See Appendix III for valid job types. | ||
/> | |||||
<SCREENINGQUESTIONS> | N | 1 | Set this node if you want the job to have a set of screening questions that the candidate will answer. Please see the Screening Questions section for more information. | ||
<QUESTION | |||||
LABEL | "Do you have a driver’s license?" | Y | 140 | ||
ID | "1" | N | 140 | This ID is optional and should be defined if applications will be processed in an external applicant tracking system. QUESTION ID from the ATS should be provided here to benefit from this functionality. | |
TYPE | "YES_NO" | Y | 1 | Defines type of question from the 4 available types. Please see the Screening Questions section for more information. | |
> | |||||
<ANSWERS | N | 1 | For TEXT question type ANSWERS node must not be defined. | ||
ID | "1" | N | 140 | This ID is optional and should be defined if applications will be processed in an external applicant tracking system. ANSWERS ID from the ATS should be provided here to benefit from this functionality. | |
> | |||||
<ANSWER | N | ||||
LABEL | "YES" | Y | 140 | ||
DESIRED | "DESIRED" | Y / N | “DESIRED” | Indicates a desired answer. It has to be defined for SINGLE_SELECT and YES_NO types of questions, impossible to define for CONFIRMATION and TEXT types. | |
ID | "1" | N | 140 | This ID is optional and should be defined if applications will be processed in an external applicant tracking system. ANSWER ID from the ATS should be provided here to benefit from this functionality. | |
/> | |||||
</ANSWERS> | |||||
</QUESTION> | |||||
</SCREENINGQUESTIONS> | |||||
</ROOT> | Marks the end of the advert details | ||||
</ADVERT> | Marks the end of the advert | ||||
</FILE> | Marks the end of the file |
Job Posting Actions
Adding a job
To add a job to an XML job feed set the LOADTYPE attribute to “A” and assign values to all mandatory fields specified in the XML Format table detailed above. See the example in ‘Data Structure’ section at the beginning of this document.
Deleting a job
To delete a job set the LOADTYPE attribute to “D” and assign a job identifier to the UNIQUEJOBNO field. The following example will delete the ‘Senior Auditor’ job:
<FILE>
<ADVERT>
<ROOT LOADTYPE="D">
<JOB UNIQUEJOBNO="20050202TEST01" />
<POSTINGCOMPANY USERNAME="totaljobstestsite" PASSWORD="FUM7aYT8" />
</ROOT>
</ADVERT>
</FILE>
Note the following points:
- To successfully delete a job currently advertised on totaljobs.com the job must exist on the site.
- The account used to delete a job must be the same as the account used to load the job.
- You can also delete a job using an internal job id. The internal job id is created when a new job is loaded into our site and can be found in the response report detailed later in this document. To delete a job using an internal job id, replace <JOB UNIQUEJOBNO= with <JOB JOBID= and assign JOBID with an internal job id.
- If attribute values other than the above are included in a delete action then these values will be ignored. For example, including <CONTACT FIRSTNAME=”Recruitment Team” /> in the above delete action will not remove the contact.
- For clients migrated to our new platform, a delete takes the job offline instead of removing it permanently. See Appendix III for details.
Refreshing a job
On the legacy platform
To refresh an existing job set a delete action followed by an add action in the same XML job feed. Both records should have the same UNIQUEJOBNO. This effectively removes the current job and adds in a new version. To ensure that these two records are processed in the correct order, both actions must be in the same XML job feed. The following example will refresh the ‘Senior Auditor’ test job and change the posting days and salary details:
<FILE>
<ADVERT>
<ROOT LOADTYPE="D">
<JOB FEEDID="TEST" LIVEDAYS="28"
UNIQUEJOBNO="20050202TEST01"
DESCRIPTION="Senior Auditor required for City practice."
TITLE="Senior Auditor"
REGION="North West"
TOWN="Manchester"
POSTCODE="M1 3BN"
RATEUNIT="a"
SALARYMIN="25000"
SALARYMAX="30000"
SALARYDESC="30k plus benefits"
INTERNALJOBREF="REF20050202TEST01"
RESPONSEURL="https://www.totaljobs.com/"" />
<POSTINGCOMPANY USERNAME="totaljobstestsite" PASSWORD="FUM7aYT8" />
<CONTACT PHONE="0333 0145 111"
EMAIL="ben@test.com"
FIRSTNAME="Recruitment Team" />
<ADDITIONALJOBTYPE GROUP="Permanent" />
</ROOT>
</ADVERT>
<ADVERT>
<ROOT LOADTYPE="A">
<JOB FEEDID="TEST" LIVEDAYS="14"
UNIQUEJOBNO="20050202TEST01"
DESCRIPTION="Senior Auditor required for City practice."
TITLE="Senior Auditor"
REGION="North West"
TOWN="Manchester"
POSTCODE="M1 3BN"
RATEUNIT="a"
SALARYMIN="35000"
SALARYMAX="40000"
SALARYDESC="40k plus benefits"
INTERNALJOBREF="REF20050202TEST01"
RESPONSEURL="https://www.totaljobs.com/" />
<POSTINGCOMPANY USERNAME="totaljobstestsite" PASSWORD="FUM7aYT8" />
<CONTACT PHONE="0333 0145 111"
EMAIL="ben@test.com"
FIRSTNAME="Recruitment Team" />
<ADDITIONALJOBTYPE GROUP="Permanent" />
</ROOT>
</ADVERT>
</FILE>
Note the following point:
- Jobs that have expired will still need to be refreshed. If a job poster attempts to add a new job using a UNIQUEJOBNO that is assigned to an expired job then the new job will error.
On the new platform
Refreshing a job is no longer available on the new platform. This functionality has been replaced with Online/Offline job adverts.
Clients can take a job advert offline, which removes it from the site without expiring the advert. This means the same listing can be republished during its original live period (30 or 60 days) without consuming additional budget.
To take a job advert offline, use:
<ROOT LOADTYPE="D">
When you are ready to put the job advert back online, keep the job details unchanged and use:
<ROOT LOADTYPE="A">
Updating a job
To update a job set the LOADTYPE attribute to “U” and assign a job identifier to the UNIQUEJOBID field. The following fields can be updated: DESCRIPTION, TITLE, REGION, TOWN, POSTCODE, SALARYDESC, INTERNALJOBREF, SALARYMIN, SALARYMAX, ADDITIONALJOBTYPE and RESPONSEURL. The following example will update the ‘Senior Auditor’ job to ‘Auditor’ and a update the location data:
<FILE>
<ADVERT>
<ROOT LOADTYPE="U">
<JOB UNIQUEJOBNO="20050202TEST01"
DESCRIPTION="Auditor required for City practice."
TITLE="Auditor"
REGION="London"
TOWN="Southwark"
POSTCODE="SE1 0TA"
RATEUNIT="a"
SALARYMIN="15000"
SALARYMAX="20000"
SALARYDESC="30k plus benefits and company car" INTERNALJOBREF="REF20050202TEST01"
RESPONSEURL="https://www.totaljobs.com/"
HIDEFULLPOSTCODE="False" />
<POSTINGCOMPANY USERNAME="totaljobstestsite"
PASSWORD="FUM7aYT8" />
<CONTACT PHONE="0333 0145 111"
EMAIL="ben@test.com"
FIRSTNAME="Recruitment Team" />
<ADDITIONALJOBTYPE GROUP="Contract" />
</ROOT>
</ADVERT>
</FILE>
Note the following points:
- To successfully update a job currently advertised on totaljobs.com the job must exist on the site.
- The account used to update a job must be the same as the account used to add the job.
- You can also update a job using an internal job id. The internal job id is created when a new job is loaded into our site and can be found in the response report detailed later in this document.
- The FEEDID value cannot be updated.
- The LIVEDAYS cannot be updated.
- To change the last four attributes you must refresh the job. See ‘Refreshing a job’ for more details.
- For clients migrated to our new platform, the JOBTEMPLATENAME value cannot be updated. To change it you must refresh the job.
- Any updates to a job advert must be made through the customer’s source system (i.e. updated on your end), as changes cannot be made manually.
Setting an External Apply Online Link
Use the RESPONSEURL attribute to set a link to redirect job seekers to a third party apply online system or corporate website external to totaljobs.com. Full URL paths must be used with this attribute e.g. rather than .
RESPONSEURL="https://www.totaljobs.com/"
Setting the ADDITIONALJOBTYPE node
A job can be categorized by using job types. Job types allow job seekers to refine their job searches and return jobs that match a specific type. For example, a job seeker may wish to only search for permanent jobs. The <ADDITIONALJOBTYPE> node allow job posters to set a job with a specific job type. See Appendix III for a full list of valid job types.
The following example will categorize a job under the Permanent job type:
<ADDITIONALJOBTYPE GROUP="Permanent" />
Setting the SCREENINGQUESTIONS node
Using the <SCREENINGQUESTIONS> node allows job posters to post a job with a set of screening questions which will then be displayed to the candidate at apply. Screening questions are optional but can help recruiters to refine their search by gaining extra information apart from the candidates’ CV and profile.
Where possible (details below) screening questions need to have a desired answer defined by recruiter, which will then ensure that candidates are automatically assigned a ‘suitable’ or ‘unsuitable’ status based on their answers.
Important points:
- If screening questions are attached to the job the candidate will have to answer them when submitting the application (all questions are obligatory)
- Desired answer has to be defined for SINGLE_SELECT and YES_NO types of questions
- Candidate suitability status based on desired answer is visible in the application confirmation e-mail or in totaljobs’ Applicant Manager application
- One job can have a set of maximum 10 screening questions
- Screening Questions cannot be displayed on jobs with an external apply URL
Available types of screening questions
The following table shows availability of question types and desired answers.
| Question type | Definition | Desired answer? |
|---|---|---|
| TEXT | Provide the candidate with a question and a space to write multiple lines of text as answer to the question. | NO |
| SINGLE_SELECT | Provide the candidate with a question and ability to select only one answer from many (more than 1) options. | YES |
| YES_NO | Provide the candidate with a question and ability to select “yes” or “no” as their answer. | YES |
| CONFIRMATION | Provide the candidate with a question / statement and ability to acknowledge that they agree with a statement. (like Ts & Cs). | NO |
Adding a new job with screening questions
To add a job with screening questions to an XML job feed assign values to all mandatory fields specified in the XML Format table detailed above in ‘Data Structure’ section at the beginning of this document. You can see an example of screening questions below:
<?xml version="1.0"?>
<FILE>
<ADVERT>
<ROOT>
<ROOT LOADTYPE="A">
<JOB UNIQUEJOBNO="20050202TEST01"
DESCRIPTION="Auditor required for City practice."
TITLE="Auditor"
REGION="London"
TOWN="Southwark"
POSTCODE="SE1 0TA"
RATEUNIT="a"
SALARYMIN="15000"
SALARYMAX="20000"
SALARYDESC="30k plus benefits and company car" INTERNALJOBREF="REF20050202TEST01"
HIDEFULLPOSTCODE="False" />
<POSTINGCOMPANY USERNAME="loadtesttj"
PASSWORD="testonly" />
<CONTACT PHONE="0333 0145 111"
EMAIL="ben@test.com"
FIRSTNAME="Recruitment Team" />
<ADDITIONALJOBTYPE GROUP="Contract" />
<SCREENINGQUESTIONS>
<QUESTION LABEL="What is your country of residence?" ID="d04c8b8f-67e8-4e9f-99c0-1799908604d9" TYPE="SINGLE_SELECT">
<ANSWERS ID="singleSAnswerId">
<ANSWER LABEL="UK" ID="297b9335-c6b1-487e-95d5-803934b5b5ef"/>
<ANSWER LABEL="POLAND" ID="09106423-c5fc-4a86-8f07-58332c36f999" DESIRED="DESIRED"/>
< ANSWER LABEL="USA" ID="4719ab8f-d2c5-465a-a486-4fb315a21c29"/>
</ANSWERS>
</QUESTION>
<QUESTION LABEL="Do you have a driver’s licence?" ID="daaaebd1-a6ce-4d47-b331-71bdaf208de1" TYPE="YES_NO">
<ANSWERS ID="yesnoAnswerId">
<ANSWER ID="1" LABEL="YES"/>
<ANSWER ID="2" LABEL="NO" DESIRED="DESIRED"/>
</ANSWERS>
</QUESTION>
<QUESTION LABEL="Do you agree with Ts&Cs?" ID="e94673cc-42ad-4625-be08-72603c18b8d1" TYPE="CONFIRMATION">
<ANSWERS ID="confAnswerId">
<ANSWER ID="2ed9d621-cf22-4f22-a6b2-26b57f5d6db1" LABEL="I agree"/>
</ANSWERS>
</QUESTION>
<QUESTION LABEL="Describe your experience in sales" ID="a935e1aa-8c76-4e48-b11a-00032f9b42b7" TYPE="TEXT">
<ANSWERS ID="textAnswerId"/>
</QUESTION>
</SCREENINGQUESTIONS>
</ROOT>
</ADVERT>
</FILE>
Editing existing screening questions
To edit the existing screening questions set the LOADTYPE attribute to “U” and UNIQUEJOBID field to identify the job with screening questions that should be modified. Specify new screening questions in the SCREENINGQUESTIONS node part of the XML. The job’s existing screening questions will be removed and replaced with the new set. See the following example for reference:
<?xml version="1.0"?>
<FILE>
<ADVERT>
<ROOT>
<ROOT LOADTYPE="U">
<JOB UNIQUEJOBNO="20050202TEST01"
DESCRIPTION="Auditor required for City practice."
TITLE="Auditor"
REGION="London"
TOWN="Southwark"
POSTCODE="SE1 0TA"
RATEUNIT="a"
SALARYMIN="15000"
SALARYMAX="20000"
SALARYDESC="30k plus benefits and company car" INTERNALJOBREF="REF20050202TEST01"
HIDEFULLPOSTCODE="False" />
<POSTINGCOMPANY USERNAME="loadtesttj"
PASSWORD="testonly" />
<CONTACT PHONE="0333 0145 111"
EMAIL="ben@test.com"
FIRSTNAME="Recruitment Team" />
<ADDITIONALJOBTYPE GROUP="Contract" />
<SCREENINGQUESTIONS>
<QUESTION LABEL="What is your competency level in English?" ID="d04c8b8f-67e8" TYPE="SINGLE_SELECT">
<ANSWERS ID="singleSAnswerId">
<ANSWER LABEL="Basic" ID="297b9335-c6b1-487e"/>
<ANSWER LABEL="Fluent" ID="09106423-c5fc-4a86" DESIRED="DESIRED"/>
< ANSWER LABEL="Intermediate" ID="4719ab8f-d2c5-465a"/>
</ANSWERS>
</QUESTION>
<QUESTION LABEL="Do you have a driver’s licence?" ID="daaaebd1-a6ce-4d47" TYPE="YES_NO">
<ANSWERS ID="yesnoAnswerId">
<ANSWER ID="1" LABEL="YES"/>
<ANSWER ID="2" LABEL="NO" DESIRED="DESIRED"/>
</ANSWERS>
</QUESTION>
<QUESTION LABEL="Do you agree with Ts&Cs?" ID="e94673cc-42ad-4625" TYPE="CONFIRMATION">
<ANSWERS ID="confAnswerId">
<ANSWER ID="2ed9d621-cf22-4f22-a6b2" LABEL="I agree"/>
</ANSWERS>
</QUESTION>
<QUESTION LABEL="Describe your experience in sales" ID="a935e1aa-8c76-4e48" TYPE="TEXT">
<ANSWERS ID="textAnswerId"/>
</QUESTION>
</SCREENINGQUESTIONS>
</ROOT>
</ADVERT>
</FILE>
Editing a job without modifying its screening questions
To edit the job without modifying its screening questions, set the LOADTYPE attribute to “U” and proceed to modify the fields in the JOB node – e.g. use the standard way of updating the job as described in “Updating a job” section. Important – the SCREENINGQUESTIONS node should not be included in the file at all in this case.
Removing screening questions from the job
To remove screening questions from the job, set the LOADTYPE attribute to “U” and, without modifying the fields in the JOB node, provide an empty SCREENINGQUESTIONS node. Below is an example of an XML which will delete the screening questions from the job:
<?xml version="1.0"?>
<FILE>
<ADVERT>
<ROOT>
<ROOT LOADTYPE="U">
<JOB UNIQUEJOBNO="20050202TEST01"
DESCRIPTION="Auditor required for City practice."
TITLE="Auditor"
REGION="London"
TOWN="Southwark"
POSTCODE="SE1 0TA"
RATEUNIT="a"
SALARYMIN="15000"
SALARYMAX="20000"
SALARYDESC="30k plus benefits and company car" INTERNALJOBREF="REF20050202TEST01"
HIDEFULLPOSTCODE="False" />
<POSTINGCOMPANY USERNAME="loadtesttj"
PASSWORD="testonly" />
<CONTACT PHONE="0333 0145 111"
EMAIL="ben@test.com"
FIRSTNAME="Recruitment Team" />
<ADDITIONALJOBTYPE GROUP="Contract" />
<SCREENINGQUESTIONS>
</SCREENINGQUESTIONS>
</ROOT>
</ADVERT>
</FILE>
Submitting XML Job Feeds
Before submitting an XML job feed please ensure that the XML is valid and free of errors.
XML job feeds are submitted to the Bulk Job Loading system which is an automated application designed to process high volumes of jobs in real time.
There are two recommended methods in which an XML job feed can be submitted to totaljobs.com. The XML can either be sent within an HTML FORM tag as part of a form post or as a stream of text. Using either of these two methods will allow jobs to be instantly posted onto totaljobs.com.
Form Post Method
The Form Post Method is developed to allow a job poster to quickly post jobs in XML format using a simple HTML web file that can be opened in most internet browsers. You can quickly post a job to our test site using this method by following the instructions in Appendix IV.
Note this method requires the XML to be embedded within an HTML TEXTAREA tag and a FORM tag (See Appendix IV for an example). This arrangement limits the number of characters that can be set and consequently restricts the number of job adverts that can be posted in a single submission.
Text Stream Method
The Text Stream Method involves sending jobs in XML format as a stream of data. The process by which the XML is streamed to our web site will depend on the technology that the job poster has adopted. For an example of how XML jobs can be sent using the Text Stream Method, please see Appendix VII.
Note, unlike the Form Post Method, there is no limit to the number of job adverts that can be streamed to our web site. However, this method is not as straight forward as form posting therefore the client will require technical resources to implement it.
Posting URLs
The posting URL for sending jobs in XML format will depend on the platform and posting method used. Please see the relevant Appendix II section for Totaljobs or Caterer for the applicable posting URLs.
Permitted Posting Values
When posting jobs in XML format please check the following:
- You have entered a unique UNIQUEJOBNO
- You have entered valid values in the USERNAME and PASSWORD fields. While testing, please use the test account detailed in the relevant Appendix II section for Totaljobs or Caterer.
- Attributes requiring specific data are assigned correct values that are detailed in Appendix III.
Receiving Response Reports for Job Postings
Job posters will receive a response report if an XML job feed is submitted successfully. If the feed is submitted by either the Form Post Method or the Text Stream Method then the response report will be in XML format and will look similar to the example below:
<FileLine>
<JobsSubmitted>1</JobsSubmitted>
<Errors />
<BulkJobLoader>
<Root xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<Job JobID="20050202TEST01">
<JobDetail type="Information">
<Detail>Job Load Started Feb 3 2005 12:27PM</Detail>
</JobDetail>
<JobDetail type="JobId">
<Detail>JobID=688722</Detail>
</JobDetail>
<JobDetail type="Information">
<Detail>Job Loaded Successfully</Detail>
</JobDetail>
</Job>
<Job JobID="688722">
<JobDetail type="Information">
<Detail>JobType Permanent has been added for JobID 688722</Detail>
</JobDetail>
</Job>
</Root>
</BulkJobLoader>
<PostingSuccess>True</PostingSuccess>
</FileLine>
Points to note about the above response report are as follows:
- The total number of jobs processed is detailed in the <JobsSubmitted> node.
- The response report will display information for each job submitted.
- If a new job is successfully added then the job will be assigned an internal job id. In the above example the internal job id is 688722.
- Then internal job id is mapped to the job poster’s UNIQUEJOBNO. In the above example 20050202TEST01 is associated with the internal job id 688722. You can use either identifier to delete or update the posted job.
- The status of the job action together with a time stamp is displayed in <Detail> nodes.
- If a job action is not successful then the response report will display an error message. For a list of common error messages please see Appendix I.
Appendix I – Common Error Messages
If an error message does not appear in the list below then contact our feed support team for further assistance.
XML document not found error message
- <FileLine>
<Error>The posted XML document was either not found or was not correctly formed.</Error>
<PostingSuccess>False</PostingSuccess>
</FileLine>
Cause: This suggest that the XML data is not formatted correctly, or may indicate a temporary server problem.
Resolution: Check the syntax of the XML according to this document. If the XML is correct, wait for ten minutes and try posting again.
Authentication failed error message
- <JobDetail type="Fatal error">
<Detail> Authentication failed for user 'login245'.</Detail>
</JobDetail>
- <JobDetail type="Information">
<Detail>Job Failed to Load</Detail>
</JobDetail>
Cause: This means that the account is either invalid or not currently activated.
Resolution: Contact our feed support team.
Unique job number already exist error message
- <JobDetail type="Fatal error">
<Detail>JOB\@UNIQUEJOBNO nrnmtw90tjtestanothe already exists so cannot be added.</Detail>
</JobDetail>
- <JobDetail type="Information">
<Detail>Job Failed to Load< /Detail>
Cause: This means that the UniqueJobNo already exists
Resolution: The job may already be live on totaljobs – try deleting and reposting it. Remember that the UNIQUEJOBNO MUST be unique. Try to avoid formulations that other users are likely to use (e.g. tj1, tj2 etc.).
Job does not exist error message
- <JobDetail type="FATAL ERROR">
<Detail>Job does not exist</Detail>
</JobDetail>
- <JobDetail type="INFORMATION">
<Detail>Job has not been deleted successfully</Detail>
Cause: The job cannot be deleted as it does not exist or it may have expired.
Resolution: Ensure that the UNIQUEJOBNO you are using is the same as the one used to load the job initially.
Screening Questions error messages
Job questionnaire contains more than 10 questions
<JobDetail type="Fatal error">
<Detail>Screening Questions failed to load</Detail>
</JobDetail>
<ScreeningQuestions>
<Question ErrorDescription="Questionnaire validation failed" Label="">
<ValidationError>The maximum number of questions per job is 10</ValidationError>
</Question>
</ScreeningQuestions>
Question ID is not unique within the set of questions
<JobDetail type="Fatal error">
<Detail>Screening Questions failed to load</Detail>
</JobDetail>
<ScreeningQuestions>
<Question ErrorDescription="Questionnaire validation failed" Label="">
<ValidationError>Question ID must be unique for a particular job</ValidationError>
</Question>
</ScreeningQuestions>
Question ID is too long
<JobDetail type="Fatal error">
<Detail>Screening Questions failed to load</Detail>
</JobDetail>
<ScreeningQuestions>
<Question ErrorDescription="Question 1 validation failed" Label="What is your country of residence?">
<ValidationError>Question Id must be between 1 and 140 characters</ValidationError>
</Question>
</ScreeningQuestions>
Question Label not there / too long
<JobDetail type="Fatal error">
<Detail>Screening Questions failed to load</Detail>
</JobDetail>
<ScreeningQuestions>
<Question ErrorDescription="Question 1 validation failed" Label="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et.">
<ValidationError>Question Label must be between 1 and 140 characters</ValidationError>
</Question>
</ScreeningQuestions>
Answers ID too long
<JobDetail type="Fatal error">
<Detail>Screening Questions failed to load</Detail>
</JobDetail>
<ScreeningQuestions>
<Question ErrorDescription="Question 1 validation failed" Label="What is your country of residence?">
<ValidationError>Answers Id must be between 1 and 140 characters</ValidationError>
</Question>
</ScreeningQuestions>
Answer node not provided
<JobDetail type="Fatal error">
<Detail>Screening Questions failed to load</Detail>
</JobDetail>
<ScreeningQuestions>
<Question ErrorDescription="Question 1 validation failed" Label="What is your country of residence?">
<ValidationError>At least one answer must be specified</ValidationError>
</Question>
</ScreeningQuestions>
Answer ID too long
<JobDetail type="Fatal error">
<Detail>Screening Questions failed to load</Detail>
</JobDetail>
<ScreeningQuestions>
<Question ErrorDescription="Question 1 validation failed" Label="What is your country of residence?">
<ValidationError>Answer Id must be between 1 and 140 characters</ValidationError>
</Question>
</ScreeningQuestions>
Answer ID not unique
<JobDetail type="Fatal error">
<Detail>Screening Questions failed to load</Detail>
</JobDetail>
<ScreeningQuestions>
<Question ErrorDescription="Question 1 validation failed" Label="What is your country of residence?">
<ValidationError>Answer Id must be unique for a particular question</ValidationError>
</Question>
</ScreeningQuestions>
Answer Label missing / too long
<JobDetail type="Fatal error">
<Detail>Screening Questions failed to load</Detail>
</JobDetail>
<ScreeningQuestions>
<Question ErrorDescription="Question 1 validation failed" Label="What is your country of residence?">
<ValidationError>Answer Label must be between 1 and 140 characters</ValidationError>
</Question>
</ScreeningQuestions>
Answer nodes less than 2 / more than 2 answers specified for YES_NO questions
<JobDetail type="Fatal error">
<Detail>Screening Questions failed to load</Detail>
</JobDetail>
<ScreeningQuestions>
<Question ErrorDescription="Question 1 validation failed" Label="Are you currently a UK resident?">
<ValidationError>YES_NO question type requires two answers, one Labelled Yes, one Labelled No</ValidationError>
</Question>
</ScreeningQuestions>
Answer Label wrong / missing for YES_NO type
<JobDetail type="Fatal error">
<Detail>Screening Questions failed to load</Detail>
</JobDetail>
<ScreeningQuestions>
<Question ErrorDescription="Question 1 validation failed" Label=" Are you currently a UK resident?">
<ValidationError>YES_NO question type requires two answers, one Labelled Yes, one Labelled No</ValidationError>
</Question>
</ScreeningQuestions>
DESIRED not provided / wrong value for YES_NO type
<JobDetail type="Fatal error">
<Detail>Screening Questions failed to load</Detail>
</JobDetail>
<ScreeningQuestions>
<Question ErrorDescription="Question 1 validation failed" Label="Are you currently a UK resident?">
<ValidationError>For YES_NO question type one answer must be marked as "desired"</ValidationError>
</Question>
</ScreeningQuestions>
Answer node less than 2 / more than 10 answers specified
<JobDetail type="Fatal error">
<Detail>Screening Questions failed to load</Detail>
</JobDetail>
<ScreeningQuestions>
<Question ErrorDescription="Question 1 validation failed" Label="What is your country of residence?">
<ValidationError>SINGLE_SELECT question type requires between 2 and 10 answers to be specified</ValidationError>
</Question>
</ScreeningQuestions>
DESIRED not provided / wrong value for SINGLE_SELECT type
<JobDetail type="Fatal error">
<Detail>Screening Questions failed to load</Detail>
</JobDetail>
<ScreeningQuestions>
<Question ErrorDescription="Question 1 validation failed" Label="What is your country of residence?">
<ValidationError>For SINGLE_SELECT question type one answer must be marked as "desired"</ValidationError>
</Question>
</ScreeningQuestions>
More than one answer specified for CONFIRMATION type
<JobDetail type="Fatal error">
<Detail>Screening Questions failed to load</Detail>
</JobDetail>
<ScreeningQuestions>
<Question ErrorDescription="Question 1 validation failed" Label="Do you agree with Terms & Conditions?">
<ValidationError>CONFIRMATION question type requires one answer to be specified</ValidationError>
</Question>
</ScreeningQuestions>
Answers node provided for TEXT type
<JobDetail type="Fatal error">
<Detail>Screening Questions failed to load</Detail>
</JobDetail>
<ScreeningQuestions>
<Question ErrorDescription="Question 1 validation failed" Label="Describe your experience in sales">
<ValidationError>TEXT question type can't have defined answers</ValidationError>
</Question>
</ScreeningQuestions>
Appendix II – Totaljobs Test URLs
To access the test endpoints listed below, please contact Feed Support.
When posting jobs to our test site, please use the appropriate test account and feed identifier below.
Testing integrations for clients on the legacy platform:
Username="totaljobstestsite"
Password="FUM7aYT8"
FEEDID="TEST"
To post jobs in XML format, use the following URL:
The previous endpoints listed below are still available, but we strongly recommend using the new endpoint above.
Legacy API:
Form post:
Stream jobs:
Use the following URL to view jobs posted to our Jobseeker test site:
Jobs can also be viewed on our Ad Manager test site using the following URL (only for clients on the legacy platform):
Email address: loadtesttj
Password: testonly
Once you have successfully posted jobs to the test environment, please contact Feed Support for production URLs together with a live user account and feed ID.
Testing integrations for clients on the new platform
To ensure a more efficient and streamlined testing process, please request test credentials from Feed Support Team. The team will provide you with test credentials that allow you to post to the live site without the posting being displayed on the front end.
Appendix II – Caterer Test URLs
To access the test endpoints listed below, please contact Feed Support.
When posting jobs to our test site, please use the appropriate test account and feed identifier below.
Testing integrations for clients on the legacy platform:
Username="caterertestsite"
Password="SVG2xmI5"
FEEDID="TEST"
To post jobs in XML format, use the following URL:
The previous endpoints listed below are still available, but we strongly recommend using the new endpoint above.
Legacy API:
Form post:
Stream jobs:
Use the following URL to view jobs posted to our Jobseeker test site:
Jobs can also be viewed on our Ad Manager test site using the following URL (only for clients on the legacy platform):
Email address: loadtestct
Password: testonly
Once you have successfully posted jobs to the test environment, please contact Feed Support for production URLs together with a live user account and feed ID.
Testing integrations for clients on the new platform
To ensure a more efficient and streamlined testing process, please request test credentials from Feed Support Team. The team will provide you with test credentials that allow you to post to the live site without the posting being displayed on the front end.
Appendix III – Permitted Data Values
Job Types
- Permanent
- Contract
- Temporary
- Part Time
Locations
The following is a list of permitted REGION locations that a job can be posted under. For a comprehensive list of accepted locations, please see the accompanying Location List Detailing all accepted TOWN and REGION values.
JOBTEMPLATENAME
Branding can be applied to a job on the job details page by specifying the name of an existing job template for the company.
If the company has a default template set up and this field is not specified, the company default template will be used.
If the company does not have a default template set up and this field is not specified then the “Standard Job” branding will be used.
If the company has a default template set up and “Standard Job” branding is required, the string “Standard Job” can be specified.
EUOnly Indicator
Setting the EUONLY attribute to “True” will prevent jobseekers outside of the EU from viewing the job details page and will remove the job from any relevant searches performed by jobseekers outside the EU.
If the attribute is set to “False” all jobseekers will be able to view the job details and the job will be included in all relevant searches performed.
This is not a required attribute, and if left blank will default to true.
Salary Rates
The RATEUNIT node must be set to one of the following values depending upon the type of salary range specified for a job.
| Salary Range Type | Value |
|---|---|
| Annual Salary | a |
| Daily Rate | d |
| Hourly Rate | h |
Salary Ranges
Annual Salary Ranges
To set an annual salary range for a job, assign the SALARYMIN and SALARYMAX nodes with a pair of values from the list below. Also note that the RATEUNIT node must be set to ‘a’
| Salary Range | SALARYMIN | SALARYMAX |
|---|---|---|
| nil to 10k | 0 | 9999 |
| 10k to 11K | 10000 | 11999 |
| 12k to 13k | 12000 | 13999 |
| 14k to 15k | 14000 | 15999 |
| 16k to 17k | 16000 | 17999 |
| 18k to 19k | 18000 | 19999 |
| 20k to 21k | 20000 | 21999 |
| 22k to 23k | 22000 | 23999 |
| 24k to 25k | 24000 | 25999 |
| 26k to 27k | 26000 | 27999 |
| 28k to 29k | 28000 | 29999 |
| 30k to 34k | 30000 | 34999 |
| 35k to 39k | 35000 | 39999 |
| 40k to 44k | 40000 | 44999 |
| 45k to 49k | 45000 | 49999 |
| 50k to 54k | 50000 | 54999 |
| 55k to 59k | 55000 | 59999 |
| 60k to 64k | 60000 | 64999 |
| 65k to 69k | 65000 | 69999 |
| 70k to 74k | 70000 | 74999 |
| 75k to 79k | 75000 | 79999 |
| 80k to 84k | 80000 | 84999 |
| 85k to 89k | 85000 | 89999 |
| 90k to 94k | 90000 | 94999 |
| 95k to 99k | 95000 | 99999 |
| 100k and above | 100000 | 999999 |
| Unspecified | 0 | 0 |
The example below will set a job with a salary range of £10,000-£11,999 per year:
SALARYMIN = "10000"
SALARYMAX = "11999"
RATEUNIT = "a"
Daily Salary Ranges
To set a daily salary range for a job, assign the SALARYMIN and SALARYMAX nodes with a pair of values from the list below. Also note that the RATEUNIT node must be set to ‘d’.
| Salary Range | SALARYMIN | SALARYMAX |
|---|---|---|
| nil to 40 | 0 | 39 |
| 40 to 47 | 40 | 47 |
| 48 to 55 | 48 | 55 |
| 56 to 63 | 56 | 63 |
| 64 to 71 | 64 | 71 |
| 72 to 79 | 72 | 79 |
| 80 to 87 | 80 | 87 |
| 88 to 95 | 88 | 95 |
| 96 to 103 | 96 | 103 |
| 104 to 111 | 104 | 111 |
| 112 to 119 | 112 | 119 |
| 120 to 139 | 120 | 139 |
| 140 to 159 | 140 | 159 |
| 160 to 179 | 160 | 179 |
| 180 to 199 | 180 | 199 |
| 200 to 219 | 200 | 219 |
| 220 to 239 | 220 | 239 |
| 240 to 259 | 240 | 259 |
| 260 to 279 | 260 | 279 |
| 280 to 299 | 280 | 299 |
| 300 to 319 | 300 | 319 |
| 320 to 339 | 320 | 339 |
| 340 to 359 | 340 | 359 |
| 360 to 379 | 360 | 379 |
| 380 to 399 | 380 | 399 |
| 400 to 419 | 400 | 419 |
| 420 to 439 | 420 | 439 |
| 440 to 459 | 440 | 459 |
| 460 to 479 | 460 | 479 |
| 480 to 499 | 480 | 499 |
| Above 500 | 500 | 999999 |
| Unspecified | 0 | 0 |
The example below will set a job with a salary range of £40 to £47 per day:
SALARYMIN = "40"
SALARYMAX = "47"
RATEUNIT = "d"
Hourly Salary Ranges
To set a hourly salary range for a job, assign the SALARYMIN and SALARYMAX nodes with a pair of values from the list below. Also note that the RATEUNIT node must be set to ‘h’.
| Salary Range | SALARYMIN | SALARYMAX |
|---|---|---|
| nil to 5.00 | 0 | 5 |
| 5.00 to 5.99 | 5 | 6 |
| 6.00 to 6.99 | 6 | 7 |
| 7.00 to 7.99 | 7 | 8 |
| 8.00 to 8.99 | 8 | 9 |
| 9.00 to 9.99 | 9 | 10 |
| 10.00 to 10.99 | 10 | 11 |
| 11.00 to 11.99 | 11 | 12 |
| 12.00 to 12.99 | 12 | 13 |
| 13.00 to 13.99 | 13 | 14 |
| 14.00 to 14.99 | 14 | 15 |
| 15.00 to 17.49 | 15 | 17 |
| 17.50 to 19.99 | 18 | 20 |
| 20.00 to 22.49 | 20 | 22 |
| 22.50 to 24.99 | 23 | 25 |
| 25.00 to 27.49 | 25 | 27 |
| 27.50 to 29.99 | 28 | 30 |
| 30.00 to 32.49 | 30 | 32 |
| 32.50 to 34.99 | 33 | 35 |
| 35.00 to 37.49 | 35 | 37 |
| 37.50 to 39.99 | 38 | 40 |
| 40.00 to 42.49 | 40 | 42 |
| 42.50 to 44.99 | 43 | 45 |
| 45.00 to 47.49 | 45 | 47 |
| 47.50 to 49.99 | 48 | 50 |
| 50.00 to 52.49 | 50 | 52 |
| 52.50 to 54.99 | 53 | 55 |
| 55.00 to 57.49 | 55 | 57 |
| 57.50 to 59.99 | 58 | 60 |
| 60.00 to 62.49 | 60 | 62 |
| 62.50 to 64.99 | 63 | 65 |
| Above 65 | 65 | 999999 |
| Unspecified | 0 | 0 |
The example below will set a job with a salary range of £5.00 to £5.99 per hour:
SALARYMIN = "5.00"
SALARYMAX = "5.99"
RATEUNIT = "h"
Appendix IV – Sample HTML XML Form Post
The following HTML code demonstrates how to post a single job to our test site using the Form Post method.
To post the sample job to our test site do the following:
- Copy the HTML code into Notepad and save as an html file (e.g JobPost.htm)
- Open the file in a web browser.
- In the text box give the UNIQUEJOBNO field a unique value.
- Click ‘Submit Query’ to post the job.
- The test site will return a response report detailing the load status of the job.
<HTML>
<TITLE>POST XML to TEST</TITLE>
<H1>POST XML to TEST</H1>
<FORM METHOD="POST" ACTION="https://recruiter.totaljobs.tjgtest.com/XMLDataPosting/XmlFormPostAuth.asp">
<TEXTAREA NAME="XmlData" ROWS="20" COLS="100">
<FILE>
<ADVERT>
<ROOT LOADTYPE="A">
<JOB FEEDID="TEST"
LIVEDAYS="28"
UNIQUEJOBNO="20050202TEST01"
DESCRIPTION="Senior Auditor required for City practice."
TITLE="Senior Auditor"
REGION="North West"
TOWN="Manchester"
POSTCODE="M1 3BN"
RATEUNIT="a"
SALARYMIN="25000"
SALARYMAX="30000"
SALARYDESC="30k plus benefits"
INTERNALJOBREF="REF20050202TEST01"
RESPONSEURL="https://www.totaljobs.com/"
HIDEFULLPOSTCODE="False" />
<POSTINGCOMPANY USERNAME="loadtesttj"
PASSWORD="testonly" />
<CONTACT PHONE="0333 0145 111"
EMAIL="ben@test.com"
FIRSTNAME="Recruitment Team" />
<ADDITIONALJOBTYPE GROUP="Permanent" />
</ROOT>
</ADVERT>
</FILE>
</TEXTAREA>
<INPUT TYPE="submit">
</FORM>
Appendix V – Formatting Job Descriptions in XML
Ordinary HTML tags can be used in XML files. However, there are special characters that will cause the Bulk Job Loading system to error. If these special characters are used then they must be escaped using the escape sequence detailed in the following table:
| Special character | Description | Escape sequence |
|---|---|---|
| < | less than | < |
| > | greater than | > |
| & | ampersand | & |
| ‘ | apostrophe | ' |
| “ | quotation mark | " |
For example, use the character references < and > to represent left and right arrow brackets respectively.
HTML:
DESCRIPTION="Formatting can <strong> improve </strong> <ul> <li> the <li> appearance <li> of <li> a </ul> job description."
XML:
DESCRIPTION="Formatting can <strong> improve </strong> <ul> <li> the <li> appearance <li> of <li> a </ul> job description."
APPEARANCE:
Formatting can improve
- the
- appearance
- of
- a
job description.
Please note that live email and web links in job descriptions are not permitted. Internet links are allowed in the RESPONSEURL field, and email links in the EMAIL contact field.
Other characters that may cause XML job files to error are listed below. Use the corresponding escape sequence to resolve XML errors.
| Character | Description | Escape sequence |
|---|---|---|
| £ | Pound sign | £ |
The following HTML tags are accepted by our job posting API:
strong, strike, span, div, em, ul, ol, li, br, p, b, i, u, font
We recommend removing font, div and span tags, as the function of these tags is not visible on the job advert.
Appendix VI – Changes in API behaviour for the clients on the new platform
JOBTEMPLATENAME
Every job branding template is available with every product. For example, a template named “Chef” is available in the following variants:
- Pro; Chef
- ProPlus; Chef
- ProUltimate; Chef
- ProCampus; Chef
- Alljobs; Chef
Clients that do not use branding templates should send:
- Pro; Default
- ProPlus; Default
- ProUltimate; Default
- ProCampus; Default
- Alljobs; Default
If the JOBTEMPLATENAME value is missing, blank, or does not contain a semicolon (;), the client’s default product and default branding template will be used.
Each client must specify the product they wish to use and the template name they wish to use. This is the only client-specific configuration that may need to be updated in your integration.
To avoid posting failures, the following format must be used:
- Enter the product name in capital letters.
- Follow the product name with a semicolon (;).
- Add a single space after the semicolon.
- Enter the template name exactly as it was created.
For example, if the template name is Chef:
- Pro; Chef
- ProPlus; Chef
- ProUltimate; Chef
If your integration does not currently support JOBTEMPLATENAME, please add support for this field, as it is now mandatory. Without JOBTEMPLATENAME, clients can only use their default product and will not be able to select other products from the new portfolio.
If the value sent does not exist for the client, the job is published using the client’s default branding template and default product.
Because product-specific values are longer than the template names they are based on, the maximum length of JOBTEMPLATENAME has been increased from 50 to 100 characters.
IMPORTANT: JOBTEMPLATENAME cannot be changed during the job’s current posting period, either using LOADTYPE=”U” or by using LOADTYPE=”D” followed by LOADTYPE=”A”. The job must expire before a different branding template or product can be used.
IMPORTANT: Using LOADTYPE=”D” followed by LOADTYPE=”A”, either in the same request or in separate requests, within the original posting period for a given UNIQUEJOBNO takes the job offline and puts it back online without triggering a new consumption.
Attributes ignored for clients on the new platform
The attributes and nodes below are accepted for clients on the new platform but have no effect on the published job. Sending them is harmless and requires no changes on your side. None of them causes the job to be rejected or produces an error in the response report.
They are listed here so that you know not to rely on them.
| Attribute or node | Effect for a migrated client |
|---|---|
| JOB / LIVEDAYS | The length of time a job stays live is set by the product: 30 days for Pro, ProPlus and ProCampus, and 45 days for ProUltimate. For Alljobs it’s determined by the contract. Any value sent is accepted and discarded. |
| CONTACT / FIRSTNAME | The new platform stores an application email address against a job rather than a contact name. |
| CONTACT / PHONE | Ignored. The new platform does not store a telephone number against the job. |
| CONTACT / FAX | Ignored. The new platform does not store a fax number against the job. |
| CONTACT / NOTIFICATIONEMAIL | The new platform does not have a separate notification address. Notifications are sent to the address provided in EMAIL. This also changes validation behaviour: an invalid value in this attribute currently causes the advert to be rejected, but for clients on the new platform it is accepted and ignored. |
| JOB / INDUSTRYLONGNAME, JOB / INDUSTRY | No practical change. Neither attribute is part of this specification, and neither has had any effect since industry sectors were removed in 2018. |
| JOB / HIDEFULLPOSTCODE | Ignored. The advert displays only the outward postcode, for example “City Centre, Manchester (M1)”. The full postcode you send is still used for search, so the job remains searchable by the full postcode. |
Everything else in this specification continues to operate as before, including EUONLY, SALARYDESC and screening questions.
Appendix VII – Contact Us
If you have any queries regarding XML job feeds or the Bulk Job Posting system, please contact our Feed Support team:
Helpdesk: +44(0) 333 0145 111
Address: Totaljobs.com Ltd.
Totaljobs Group
Blue Fin
110 Southwark Street
London SE1 0TA