1. Home
  2. Docs
  3. Optimize
  4. Publisher XML Feed Specifications

Publisher XML Feed Specifications

An XML file is used to describe currently available jobs openings. All valid tags are described below. All tag names will be given exactly as below, in English, while text in tag values can be given in any language, using UTF-8 encoding.

Note: The description tag is wrapped in CDATA, for example <![CDATA[Some Description]]>.

 

Publisher Source Tag

The <source> tag is the topmost tag in a feed. The following sub-tags are valid within it.
NameDescription
publisher-name

Type: string
Value Always Present


The name of the creator of the feed. Will always be our system name.

Example: JobAdX
publisher-url

Type: string
Value Always Present

The website URL of the feed creator, including leading http:// or https://. Will always be our company URL.

Example: https://www.jobadx.com

last-build-date

Type: string

Value Always Present

The date this feed was last updated, in RFC3339 format with a space separator.

Example: 2020-11-06 18:47:08 +0000

job

Type: wrapper

Each instance of this tag defines a job. See the full specification in the table below.

Publisher Job Tag

The <job> tag represents a single job opening. The following sub-tags are valid within it.
NameDescription

job-type

Type: string

The type of role.

Example: Full-time

city

Type: string

City where the job is located.

Example: Menlo Park

postal-code

Type: string

Postal code for where the job is located. In the United States this is the zip code.

Example: 94025

salary

Type: string

Salary of this job, can contain currency value and separators.

Example: $150,000

target-location

Type: string

Location of the target audience.

Example: Buffalo, NY, US

employer

Type: string

The name of the employer. This field is an additional qualifier for the organization field which is the main company field.

Example: Acme Inc.

industry

Type: string

The industry associated with the job position.

Example: Finance

category

Type: string

A category describing the job.


Example: Computer Hardware Engineers

valid-through

Type: string

The date after when the job is not valid, in RFC3339 format with a space separator.

Example: 2020-11-06 18:47:08 +0000

experience

Type: string

Description of skills or experience needed for the position or Occupation.

Example: 5+ years

title

Type: string

Value Always Present

The job title.

Example: Cashier

date

Type: string

Value Always Present

The date the job was posted, in RFC3339 format with a space separator.

Example: 2020-11-06 18:47:08 +0000

identifier

Type: string

Value Always Present

A unique ID for the job on a per source tag basis.

For account level feeds this value will always be unique from other jobs in the feed. For company level feeds there can be multiple jobs with the same identifier. However if two jobs have identical identifiers they will have a different <source> tag values. If you are being sent a company level feed ensure job identifiers are determined to be unique on both identifier and source tag values.

Example: JID-20394874

description

Type: string

Value Always Present

The job description text.

Example:

Greet customers with energy!

Arrange shopping carts, help customers with information.

bid

Type: float

The job's payout in reference to the action occurring as denoted in it's bid-type tag (see bid-type tag description for more details on how the job pays out). Expects a float value in the base unit currency the company the feed is being generated for has set (e.g. dollars for US companies). Can be blank if client has not set bid.

Example:

0.35

target-cpa

Type: float

The job's target cost per apply. Expects a float value (in dollars)

Example: 100.00

organization

Type: string

Value Always Present

The name of the hiring company (provided by the hiring company). When showing a job to the user this will be the company name to use. Since this field is client controlled it is subject to change and can be different from job to job within the same source tag.

Example: Hiring Company, Ltd.

url

Type: string

Value Always Present

URL of the job. This value is update every feed refresh so ensure that you are updating the URL of the job each time you import the feed.

Example: https://www.example.com/the-job

region

Type: string

Value Always Present

Region where the job is located within the country.

Example: CA

country

Type: string

Value Always Present

2-letter ISO 3166-1 code or full name for the country where the job is located.

Example: US

jdx-identifier

Type: string

Value Always Present

This value is a concatenation of the source tag and identifier tag. Because job ids can be duplicate across multiple clients (sources) this value with the source prefixed will ensure the job identifier is unique. This is especially useful in company level feeds where jobs for all clients exist in one feed. It is encouraged to use this field as the unique identifier for the job in your system. This value will be passed by our Publisher Relay feature so you can associate any conversions to the job

Example: client-name-JID-1234

requisition-id

Type: string
The requisition ID for the job. This is not unique.

Example: REQ-123
campaign-id

Type: string
Value Always Present

The unique slug for the campaign the job belongs to. Will be alphanumeric (as well as _ and - characters). Many jobs can belong to the same campaign however no two campaigns can have the same campaign-id value. This includes across multiple sources and companies.

Example: sales-campaign
source

Type: string
Value Always Present

The unique slug for the account the job belongs to. Will be alphanumeric (as well as _ and - characters). All job identifier values will be unique within a source tag value. Many jobs can belong to the same source however no two sources can have the same source value. This includes across companies.

Example: client-name
job-set-id

Type: string
Value Always Present

The unique slug for the job set the job belongs to. Will be alphanumeric (as well as _ and - characters). Job sets are additional buckets within a campaign to help the advertiser manage their jobs.

Example: campaign-name-default-job-set
street-address

Type: string
The street address of the job

Example: 123 Wonderland Road, Buffalo, NY
bid-type

Type: string
Value Always Present

The required action in order for the bid tag value on a job to be paid out. This will be the same for all jobs. Can be cpc, cpa, cpas, or tcpa.

cpc: Bid is paid on a valid user being sent to the url tag for the job
cpas: Bid is paid when a valid user that was sent to the url tag for the job starts applying for the job
cpa: Bid is paid when a valid user that was sent to the url tag for the job applies for the job
tcpa: Bid is paid when a valid user that was sent to the url tag for the job applies for the job. For tcpa the client will pass a value in the target-cpa tag for the job which will denote how much they would like to spend per apply.

Example: cpc
remote-type

Type: string
Lists whether the job is fully remote, in person, or anywhere in between.

Example: WFH

<?xml version="1.0" encoding="utf-8"?>
<source>

<!-- Publisher and feed info -->
<publisher-name>JobAdX</publisher-name>
<publisher-url>https://www.jobadx.com</publisher-url>
<last-build-date>2024-08-12 18:47:08 +0000</last-build-date>

<!-- Job tag. Repeat for each job opening. -->
<job>
  <title>Mechanical Engineer</title>
  <date>2020-11-06 18:47:08 +0000</date>
  <identifier>JID-10394857283</identifier>
  <requisition-id>RID-19238475</requisition-id>
  <organization>Hiring Company, Ltd.</organization>
  <url>https://track.jobadx.com/v0/clk/YT1zbWFydC1yZW3MmZj0wMUo1M1hFSDIwMEtRMlEyRkhXUUpESzAzWSZjaj1iYzJiYjgwOC05MGE2LTQzZTEtYjVjOS1kYWVjYzk2OTQ0YWQmYj0wLjc1JmNvPWpvYmFkeC1wcm9ncmFtbWF0aWM?1=</url><!-- This is a sample URL resembling one that will be sent, it does not work -->
  <job-type>FULL_TIME</job-type>
  <remote-type>FULLY_REMOTE</remote-type>
  <city>Buffalo</city>
  <region>NY</region>
  <country>US</country>
  <postal-code>94025</postal-code>
  <salary>100000</salary>
  <target-location>Buffalo, NY, US</target-location>
  <employer>Employer, Inc.</employer>
  <industry>Manufacturing</industry>
  <category>Mechanical Engineers</category>
  <valid-through>2020-11-09 18:47:08 +0000</valid-through>
  <experience>5+ years</experience>
  <description><![CDATA[Mechanical Engineer. Help develop a perpetual motion machine. Great perks.]]></description>
  <bid-type>cpc</bid-type>
  <bid>0.78</bid>
  <target-cpa>5.23</target-cpa>
  <source>client-name</source>
  <campaign-id>sales-priority-campaign</campaign-id>
  <job-set-id>sales-priority-campaign-df-job-set</job-set-id>
  <street-address>123 Wonderland Road, Buffalo, NY, US 94025</street-address>
  <jdx-identifier>client-name-JID-10394857283</jdx-identifier>
</job>
</source>

 

Redirect URL

When redirecting a user to our system, if the job is expired, we can redirect the user back to your system to show an expired page. Additionally, it allows you to mark the click as expired on your end to better match the numbers between your system and ours.

Attach your desired redirect URL with the job URL from the feed using the parameter redirect_url. If you are marking the click as expired on your end you should include a way to distinguish the click via an identifier within your redirect URL.

Examples

In the example below the user will be sent to http://www.your-website.com/expired if the job is expired in our system. It also will include the identifier for the click (as generated by you) click_id=abf4f895-eaba-4688-9d90-c15d58dc786e which can be used by your system to mark it as expired.


  https://track.jobadx.com/v0/clk/dz1qe2JoPHgtZXhjaGFuZ2UmYT1sb2NhbHdvcmsmZj0wNzI2MjcxODNkZDg5NTA5ZTgyZTlhYzMxNTViZTY3YSZqPTIyOThmMTFkLTlmZDEtNDEyNi05MTk5LWQ5YjFhNWUwZjc0MSZjPTAuNzMmY2o9NDU2YTc1MzUtYzk4NC00NzZmLWFhMWYtN2UzZDg2MmMzOWMy?1=&redirect_url=http://www.your-website.com/expired?click_id=abf4f895-eaba-4688-9d90-c15d58dc786e