XML Help

You can post XML representations of jobs to graduate-jobs.com by using this DTD and HTTP Posting the XML to this URL - http://www.graduate-jobs.com/xml/job.jsp. You get instant feedback on success or failure.

You must have a valid recruiters' accountname and password if you want to post jobs. Call 020 7609 5400 or email info@graduate-jobs.com to sign up.

You can update an existing posting by supplying a new XML file using the same yourRef tag value.

We don't have any way of deleting postings. However, you can stop them from displaying by using displayStartDate and displayEndDate.

Although you get instant feedback when you POST the XML it may take several minutes before your posting appears on the site.

Notes on the DTD

Where a maximum length is specified, anything longer will be truncated and you won't get a warning.

How do the screening questions work?

To improve the quality of your response pre-screening questions are available for candidates to complete before they make their application.

  • The questions that you ask MUST be answerable YES or NO.
  • There is a maximum of 120 characters per question.
  • You can pose up to 5 questions or just have one.

Regardless of the questions you ask and how they are answered you will still receive ALL applications for your job. You will however now see a summary of how the candidate has responded to the filtering questions at the top of each application sent to you via e-mail. This will allow you to prioritise applicants based on the responses to the questions you have asked.

If your application will be directed to a website (rather than an email Inbox) you can visit the statistics page for your role on the relevant site to see how applicants have responded to your pre-filtering questions.

Your reference

If you use the same posting reference as an existing one then we assume you are updating the existing one and we won't create a new posting.

Testing

If you supply this tag -
<status>test</status> then the job will be posted (assuming everything else is OK) but it will not be displayed to applicants. The HTTP response will include a link to the posting so that you can see it.

If you remove the <status> tag, or supply 'live' as the value for it, the job will be posted and be visible to applicants.

Dates

startDate is purely for the information of the applicant and is when the actual job starts, so it might be quite some time in the future.

displayStartDate and displayEndDate control when the posting is visible on the site.

If you don't supply a displayStartDate it defaults to today.

If you don't supply a displayEndDate it defaults to 21 days later than the display start date. We recommend that you omit this element.

All dates must be in the format YYYY-MM-DD. Some dates allow ASAP, Ongoing, or Various.

Keywords

Any text in this tag will be split into words (punctuation will be ignored) and will be searchable.

Industry Sector codes

Please use at least one but not more than five values from the 'code' column for the industrySector tag.

Sectors must be supplied. Your posting will be accepted but the job will not display on the site if there are no sectors.

Sector name code
Accounting1
Advertising & PR2
Architecture & Construction3
Arts & Design4
Banking5
Buying & Merchandising38
Charities37
Computing & IT13
Consultancy6
Customer Service7
Distribution & Logistics8
Education & Teaching9
Energy & Utilities39
Engineering10
Environmental29
Finance36
Food & Drink & Catering33
Health11
Human Resources12
Insurance14
Internet & Digital Media15
Languages16
Legal & Law17
Management18
Manufacturing and Production19
Marketing20
Media30
Military & Defence31
Property34
Public Sector21
Recruitment32
Research & Analysis41
Retail22
Sales23
Science & Technology24
Secretarial & Business Admin25
Sports and Recreation26
Telecommunications27
Training35
Travel & Hospitality28

Location codes

Postings must have between one and five locations. You can specify a mix of location codes and postcodes.

Please use values from the 'code' column below for the location tag.

Multiple postcodes can be supplied in the same postcodes tag.

E.g. <location>13</location> <location>11</location> <postcodes>WC2 1AA, M30 7LL</postcodes> specifies four locations - Yorkshire (location 13), Scotland (location 11), Manchester (postcode M30 7LL) and London (postcode WC2 1AA).

Location code
Central4
East Midlands6
London3
Nationwide15
North East10
North West9
Northern Ireland12
Republic of Ireland16
Scotland11
South East1
South West2
The East5
Wales8
West Midlands7
Yorkshire13
International14
International (Europe)17
Brighton54
Croydon63
Dorking2605
Guildford85
Hastings3061
High Wycombe1489
Luton108
Maidstone2028
Milton Keynes111
Portsmouth126
Royal Tunbridge Wells3034
Southampton2842
Watford34
Bath49
Bournemouth52
Bristol56
Exeter80
Plymouth125
Swindon138
Basingstoke2570
Cheltenham1401
Gloucester84
Oxford121
Reading128
Slough136
Cambridge58
Ipswich95
Lincoln106
Norwich118
Peterborough123
Derby69
Leicester104
Northampton116
Nottingham115
Birmingham48
Coventry65
Stoke-on-Trent19
Wolverhampton39
Cardiff59
Swansea132
Wrexham1854
Carlisle57
Chester60
Liverpool101
Manchester109
Warrington32
Durham71
Middlesbrough3116
Newcastle upon Tyne114
Sunderland141
Aberdeen46
Dundee68
Edinburgh78
Glasgow83
Inverness96
Hull92
Leeds107
Sheffield131
York40
Afghanistan209
Aland Islands210
Albania211
Algeria212
American Samoa213
Andorra214
Angola215
Anguilla216
Antigua and Barbuda217
Argentina218
Armenia219
Aruba220
Australia221
Azerbaijan223
Bahamas224
Bahrain225
Bangladesh226
Barbados227
Belarus228
Belize230
Benin231
Bermuda232
Bhutan233
Bolivia, Plurinational state of234
Bonaire, Saint Eustatius and Saba235
Bosnia and Herzegovina236
Botswana237
Bouvet Island238
Brazil239
British Indian Ocean Territory240
Brunei Darussalam241
Burkina Faso243
Burundi244
Cambodia245
Cameroon246
Canada247
Cape Verde248
Cayman Islands249
Central African Republic250
Chad251
Chile252
China253
Christmas Island254
Cocos (Keeling) Islands255
Colombia256
Comoros257
Congo258
Congo, The Democratic Republic of the259
Cook Islands260
Costa Rica261
Cote D'ivoire262
Cuba264
Curacao265
Djibouti269
Dominica270
Dominican Republic271
Ecuador272
Egypt273
El Salvador274
Equatorial Guinea275
Eritrea276
Ethiopia278
Falkland Islands (Malvinas)279
Faroe Islands280
Fiji281
French Guiana284
French Polynesia285
French Southern Territories286
Gabon287
Gambia288
Georgia289
Ghana291
Gibraltar292
Greece293
Greenland294
Grenada295
Guadeloupe296
Guam297
Guatemala298
Guernsey299
Guinea300
Guinea-Bissau301
Guyana302
Haiti303
Heard Island and McDonald Islands304
Holy See (Vatican City State)305
Honduras306
Hong Kong307
Iceland309
India310
Indonesia311
Iran, Islamic Republic of312
Iraq313
Isle of Man315
Israel316
Jamaica318
Japan319
Jersey320
Jordan321
Kazakhstan322
Kenya323
Kiribati324
Korea, Democratic People's Republic of325
Korea, Republic of326
Kuwait327
Kyrgyzstan328
Lao People's Democratic Republic329
Lebanon331
Lesotho332
Liberia333
Libyan Arab Jamahiriya334
Liechtenstein335
Macao338
Macedonia, The Former Yugoslav Republic of339
Madagascar340
Malawi341
Malaysia342
Maldives343
Mali344
Marshall Islands346
Martinique347
Mauritania348
Mauritius349
Mayotte350
Mexico351
Micronesia, Federated States of352
Moldova, Republic of353
Monaco354
Mongolia355
Montenegro356
Montserrat357
Morocco358
Mozambique359
Myanmar360
Namibia361
Nauru362
Nepal363
New Caledonia365
New Zealand366
Nicaragua367
Niger368
Nigeria369
Niue370
Norfolk Island371
Northern Mariana Islands372
Norway373
Oman374
Pakistan375
Palau376
Palestinian Territory, Occupied377
Panama378
Papua New Guinea379
Paraguay380
Peru381
Philippines382
Pitcairn383
Puerto Rico386
Qatar387
Reunion388
Russian Federation390
Rwanda391
Saint Barthelemy392
Saint Helena, Ascension and Tristan Da Cunha393
Saint Kitts and Nevis394
Saint Lucia395
Saint Martin (French Part)396
Saint Pierre and Miquelon397
Saint Vincent and the Grenadines398
Samoa399
San Marino400
Sao Tome and Principe401
Saudi Arabia402
Senegal403
Serbia404
Seychelles405
Sierra Leone406
Singapore407
Sint Maarten (Dutch Part)408
Solomon Islands411
Somalia412
South Africa413
South Georgia and the South Sandwich Islands414
Sri Lanka416
Sudan417
Suriname418
Svalbard and Jan Mayen419
Swaziland420
Switzerland422
Syrian Arab Republic423
Taiwan, Province of China424
Tajikistan425
Tanzania, United Republic of426
Thailand427
Timor-Leste428
Togo429
Tokelau430
Tonga431
Trinidad and Tobago432
Tunisia433
Turkey434
Turkmenistan435
Turks and Caicos Islands436
Tuvalu437
Uganda438
Ukraine439
United Arab Emirates440
United States442
Uruguay443
Uzbekistan444
Vanuatu445
Venezuela, Bolivarian Republic of446
Viet Nam447
Virgin Islands, British448
Virgin Islands, U.S.449
Wallis and Futuna450
Western Sahara451
Yemen452
Zambia453
Zimbabwe454
Austria222
Belgium229
Bulgaria242
Croatia263
Cyprus266
Czech Republic267
Denmark268
Estonia277
Finland282
France283
Germany290
Hungary308
Italy317
Latvia330
Lithuania336
Luxembourg337
Malta345
Netherlands364
Poland384
Portugal385
Romania389
Slovakia409
Slovenia410
Spain415
Sweden421

Site codes

When you sign up as a recruiter you can specify which sites you want your jobs to appear on. When you post a job, please use one or more values from the 'code' column for the site tag. If you use a site code on the job or scheme that you did not sign up for, it will be ignored.

Web site code
graduate-jobs.comgj
second-jobber.comsj
graduate-women.comgw
future-talent.comft

Grades required

Please use one value from the 'code' column for the gradeRequired tag (future-talent.com only).

Minumum grade required code
GCSEs or Equivalent1
A levels or Equivalent2
Foundation Degree or Equivalent3
Refer to Description4

Sample XML

Here is a sample XML posting.

<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE job PUBLIC 'gj-job-dtd' 'http://www.graduate-jobs.com/xml/job.dtd'>
<job>
 <accountName>XXXXXX</accountName>
 <password>YYYYYYY</password>
  <title>Immediate graduate starters for recruitment, earn up to 100K!!</title>
  <yourRef>k760800925</yourRef>
  <keyword>Graduate, headhunter, trainee, researcher, resourcer, recruiter, consultant, recruitment, graduates</keyword>
  <detail><![CDATA[Our clients require their employees to have elements or mixtures of;
  <br>       • 2:1 or higher from a Redbrick University (Top 50)
  <br>       • Sales background working to targets
  <br>       • Sporting achievements
  <br>       • Outgoing personality and great inter-personal skills
  <br>       • Entrepreneurial skills
  <br>       • Political and economic interests
  <br>       • Fluency in German, Portuguese, Russian, Cantonese amongst others
  <br>You will be given a thorough consultation at the beginning of the process to assess your requirements and lifestyle, to enable me to successfully place you in the exact company that suits you.  Throughout the process you will be given advice and guidance helping you to achieve the best results possible.
  <br>Once offered the job you will be given bespoke training and your commission will be directly linked to how much effort you put in to the role.
  <br>Career progression is clear and fast, my clients like to promote from within - because of this, the training and support is meticulous and comprehensive.  There is a team environment but you are also given autonomy, there is no micro management and you will also be given the chance work towards quarterly bonus schemes.
  <br>The benefits are huge.  Examples are company cars, gym membership, healthcare, 5 star restaurant visits, golf holidays, weekends abroad, company drinks every Friday night, Rolex watches, company phones...the list goes on and caters for all!
  <br>Commission is based on placements and is also KPI driven, there is the opportunity to earn £100,000 OTE.
  <br>The range of clients is from small boutique firms through to listed Global giants - both commit to their employees and will nurture your career from the moment you step through the door.  You will have the opportunity to suggest new desks and run your own arm of the business.  Relocation to national and international offices is also a possibility if you decide.  There are chances to take sabbaticals after 18 months of hard graft.
  <br><br>If you are interested in enjoying the high life, work hard, play hard recruitment world please email your CV to Katie@tieronerecruitment.com
  <br>]]></detail>
  <location>1</location>
  <salary>competitive</salary>
  <displayEndDate>2016-07-28</displayEndDate>
  <industrySector>5</industrySector>
  <industrySector>32</industrySector>
  <industrySector>27</industrySector>
  <applyTo>katies.64299.211@tieronerecruitment.aplitrak.com</applyTo>
  <site>gj</site>
  <site>sj</site>
  <site>gw</site>
</job>

The response from the posting was -

<?xml version="1.0" encoding="UTF-8" ?>
<jobPostingResponse>
	<postingSucceeded>true</postingSucceeded><!-- true or false. More detail in the following message. -->
	<message>Job was updated successfully. Thank you.</message><!-- Descriptive message. 'updated' means that your reference matched an existing job which was updated. 'created' means a new job was created. -->
	<yourRef>k760800925</yourRef><!-- The reference you supplied (if posting was successful) -->
	<ourRef>29414</ourRef><!-- Our reference number (if posting was successful) -->
	<displayStart>2015-08-31</displayStart><!-- Date (YYYY-MM-DD) when the job will start to display (if posting was successful) -->
	<displayEnd>2015-09-20</displayEnd><!-- Date (YYYY-MM-DD) when the job will stop displaying (if posting was successful) -->
	<url>http://www.graduate-jobs.com/job/29414</url><!-- Paste this URL into a browser to view the job on our site (if posting was successful) -->
</jobPostingResponse>

Sample programs

Here is a sample Perl program for posting a job.

use LWP::UserAgent;
use HTTP::Request;
use Data::Dumper;

$message = "<?xml version='1.0' ?>
<!DOCTYPE job PUBLIC 'gj-job-dtd' 'http://www.graduate-jobs.com/xml/job.dtd'>
<job>

Your XML job here

</job>
";

$userAgent = LWP::UserAgent->new();
$request = HTTP::Request->new(POST => 'http://www.graduate-jobs.com/xml/job.jsp');
$request->content($message);
$request->content_type("text/xml; charset=UTF-8");
$response = $userAgent->request($request);

if ($response->code == 200) {
    print $response->as_string;
} else {
    print $response->error_as_HTML;
    print Dumper($response);
}

Here is a simple PHP (4.0.3 and later) program for posting a job

$message = "<?xml version='1.0' ?>
<!DOCTYPE job PUBLIC 'gj-job-dtd' 'http://www.graduate-jobs.com/xml/job.dtd'>
<job>

Your XML job here

</job>
";

$ch = curl_init('http://www.graduate-jobs.com/xml/job.jsp');

$options = array(
    CURLOPT_RETURNTRANSFER => true,       // return server message
    CURLOPT_HEADER         => false,      // don't return headers
    CURLOPT_HTTPHEADER     => array('Content-Type: text/xml'), // set content header
    CURLOPT_FOLLOWLOCATION => true,       // follow redirects
    CURLOPT_ENCODING       => "",         // handle all encodings
    CURLOPT_USERAGENT      => "cURL",     // who am i
    CURLOPT_AUTOREFERER    => true,       // set referer on redirect
    CURLOPT_CONNECTTIMEOUT => 120,        // timeout on connect
    CURLOPT_TIMEOUT        => 120,        // timeout on response
    CURLOPT_MAXREDIRS      => 2,          // stop after 2 redirects
    CURLOPT_POST	   => 1,		  // Post content
    CURLOPT_POSTFIELDS	   => $message,   // Content to post

);

curl_setopt_array( $ch, $options );

$content = curl_exec( $ch );
$err     = curl_errno( $ch );
$errmsg  = curl_error( $ch );
$header  = curl_getinfo( $ch );
curl_close( $ch );

$header['errno']   = $err;
$header['errmsg']  = $errmsg;
$header['content'] = $content;

echo $content;

Please see 'Java tips' How to send an XML document to a remote web server using HTTP POST for a Java sample.

DTD

You can download the DTD here.

<!-- DTD for job description on graduate-jobs.com UK Ltd. Updated Nov 2015. -->
<!-- Copyright graduate-jobs.com UK Ltd 2001-2012 -->
<!-- Format dates as YYYY-MM-DD, e.g. January 24th 2013 should be 2013-01-24 -->

<!ELEMENT job (status?, accountName, password, title, yourRef, keyword, detail, startDate?, applicationCloseDate?,
	skill?, location*, postcodes?, salary?, dependingOnExperience?, negotiable?, plusStockOptions?,
	withBenefits?, OTE?, bonus?, sharesScheme?, unpaid?, salaryReview?, displayStartDate?, displayEndDate?,
	industrySector+, targetPermanent?, targetWorkExperience?, partTime?,
	pgTargetFt?, pgTargetPt?, pgTargetRs?, pgTaught?, pgResearch?, applyTo?, screeningQuestion*, site*,
	ftApprentice?, ftIntern?, ftTrain?, ftFurther?, ftGap?, ftJob?,
	workingWeek?, gradeRequired?
)>

<!ELEMENT status (#PCDATA)><!-- 'live' or 'test', default is live. Job will be posted but not visible to applicants if 'test' -->
<!-- If you remove the status tag, or supply 'live' as the value for it, the job will be posted and be visible users of the site. -->

<!ELEMENT accountName (#PCDATA)>

<!ELEMENT password (#PCDATA)>

<!ELEMENT title (#PCDATA)><!-- Maximum length is 60 characters, anything longer will be truncated. -->

<!ELEMENT yourRef (#PCDATA)><!-- Maximum length is 40 characters, anything longer will be truncated. If you use the same job reference as an existing job
	then we assume you are updating it and we won't create a new job. -->

<!ELEMENT keyword (#PCDATA)><!-- Maximum length is 255 characters, anything longer will be truncated. we will split this into separate words -->
<!-- Space separated is best although commas and any other punctuation will be ignored. -->

<!ELEMENT detail (#PCDATA)><!-- Maximum length is 16k -->

<!ELEMENT startDate (#PCDATA)><!-- When the employment starts. Does not control job display. This can have the value 'ASAP', 'Ongoing', 'Various' or a date (format YYYY-MM-DD) -->

<!ELEMENT applicationCloseDate (#PCDATA)><!-- Apply no later than this. This can have the value 'Ongoing', 'Various' or a date (format YYYY-MM-DD) -->

<!ELEMENT skill (#PCDATA)><!-- Maximum length is 1k -->

<!ELEMENT location (#PCDATA)><!-- see http://www.graduate-jobs.com/xml/help.jsp#location -->

<!ELEMENT salary (#PCDATA)><!-- Maximum length is 40 characters, anything longer will be truncated. -->

<!-- Any content other than the value 'true' will be ignored for these tags. Missing tags default to false. -->
<!ELEMENT salaryReview (#PCDATA)>
<!ELEMENT dependingOnExperience (#PCDATA)>
<!ELEMENT negotiable (#PCDATA)>
<!ELEMENT plusStockOptions (#PCDATA)>
<!ELEMENT withBenefits (#PCDATA)>
<!ELEMENT OTE (#PCDATA)><!-- On Target Earnings -->
<!ELEMENT bonus (#PCDATA)>
<!ELEMENT sharesScheme (#PCDATA)>
<!ELEMENT unpaid (#PCDATA)>
<!ELEMENT targetPermanent (#PCDATA)>
<!ELEMENT targetWorkExperience (#PCDATA)>
<!ELEMENT partTime (#PCDATA)>

<!-- The following elements are deprecated and should not be used -->
<!ELEMENT pgTargetFt	(#PCDATA)>
<!ELEMENT pgTargetPt	(#PCDATA)>
<!ELEMENT pgTargetRs	(#PCDATA)>
<!ELEMENT pgTaught		(#PCDATA)>
<!ELEMENT pgResearch	(#PCDATA)>

<!-- The following elements only apply to jobs and placements for future-talent.com (ft) -->
<!-- Any content other than the value 'true' will be ignored for these tags. Missing tags default to false. -->
<!ELEMENT ftApprentice	(#PCDATA)> <!-- Apprenticeship -->
<!ELEMENT ftIntern		(#PCDATA)> <!-- Internship -->
<!ELEMENT ftTrain		(#PCDATA)> <!-- Training course -->
<!ELEMENT ftFurther		(#PCDATA)> <!-- Further study -->
<!ELEMENT ftGap			(#PCDATA)> <!-- Gap year activity -->
<!ELEMENT ftJob			(#PCDATA)> <!-- Job -->

<!-- displayStartDate and displayEndDate control the when the job advert is visible on the site. -->
<!-- displayEndDate must be within 21 days of displayStartDate. -->
<!ELEMENT displayStartDate (#PCDATA)><!-- YYYY-MM-DD. When to start displaying the job -->
<!ELEMENT displayEndDate (#PCDATA)><!-- YYYY-MM-DD. When to stop displaying the job -->

<!ELEMENT industrySector (#PCDATA)><!-- see http://www.graduate-jobs.com/xml/help.jsp -->

<!ELEMENT applyTo (#PCDATA)><!-- email address or URL -->

<!ELEMENT screeningQuestion (#PCDATA)><!-- Maximum length is 120 characters, anything longer will be truncated.. Must be answerable yes or no. -->
<!-- Not more than 5 questions. See http://www.graduate-jobs.com/xml/help.jsp for more information. -->

<!ELEMENT site (#PCDATA)><!-- See http://www.graduate-jobs.com/xml/help.jsp for a list of sites and more information. -->

<!ELEMENT workingWeek (#PCDATA)><!-- A brief description of the working week. -->
<!ELEMENT postcodes (#PCDATA)><!-- A number of postcodes, comma separated. See http://www.graduate-jobs.com/xml/help.jsp#location -->
<!ELEMENT gradeRequired (#PCDATA)><!-- Future-talent.com exam grade required See http://www.graduate-jobs.com/xml/help.jsp#grades -->