Adzuna is a global job search engine founded in London in April 2011 by Andrew Hunter and Doug Monro. Rather than hosting job postings directly like a traditional job board, Adzuna works as an aggregator: it pulls listings from large job boards, specialist portals, and employer career sites into a single searchable database, then surfaces them to job seekers through search, email alerts, and its mobile apps.
For employers and staffing platforms, Adzuna operates in a large number of markets worldwide and distributes listings across its own search results as well as a network of partner sites. Getting a job listings feed in front of Adzuna's audience means submitting jobs in the structured XML format Adzuna's crawler expects, kept fresh on a recurring schedule.
Adzuna positions its job listings product around reach and match quality rather than raw volume. According to Adzuna's own employer product page:
For a feed-management workflow, the practical benefit is straightforward: once your job data is mapped correctly to Adzuna's schema, every new or updated role in your source system (ATS, careers page, or HR platform) can flow through to this audience automatically instead of being re-entered by hand.
Unlike a typical product feed, Adzuna's own XML specification includes a dedicated bidding mechanic built into the feed itself: the cpc tag. Advertisers who support programmatic bidding can include a per-job cost-per-click value directly in the feed, formatted as a decimal like 0.20. Adzuna's documentation notes that your account manager agrees a minimum/maximum CPC range with you upfront, and the value supplied in the feed lets you bid within that range on a per-job basis rather than setting one flat rate for an entire account.
This means feed structure and monetization are linked for programmatic Adzuna accounts — a feed pipeline that can populate cpc per job (e.g. bidding more for harder-to-fill roles) has a direct lever that a static, one-time export doesn't.
Adzuna's job feed specification is an XML format with a simple, strict structure. Per Adzuna's published XML specification:
<jobs>, and every individual posting is wrapped in its own <job> tag.<?xml version="1.0" encoding="UTF-8" ?>, with UTF-8 (Unicode) encoding.xmllint --noout test.xml antes da submissão.< e & — literal unescaped characters will break the XML.A minimal example matches this shape:
<?xml version="1.0" encoding="UTF-8" ?>
<jobs>
<job>
...
</job>
</jobs>
Adzuna's XML specification documents a defined set of job-level tags, split between mandatory fields, "highly preferable" fields, and optional enrichment fields:
| Campo | Exigência | Notas |
|---|---|---|
title | Obrigatório | An actual job title only — Adzuna's spec explicitly says not to include location, salary, an ID number, or keywords like "urgent" or "help wanted," as this hurts search relevancy. |
id | Obrigatório | Unique identifier for the job ad from your original system. |
description | Obrigatório | Must be at least 100 characters and should contain HTML formatting rather than plain text. Inappropriate or offensive content is removed by Adzuna. |
url | Obrigatório | A unique URL per job, pointing to a page where the candidate can view the job and apply online. Tracking parameters (e.g. utm_source) can be included or appended by Adzuna. |
location | Obrigatório | Accepts a full address or just a city, but Adzuna uses only the first location if multiple appear in one tag — one clear, nearest town/city works best. Remote roles should set location to the country and use the remote campo em vez disso. |
country | Obrigatório | ISO 3166-1 codes are preferred. Adzuna's feed spec lists 20 supported countries: AU, AT, BE, BR, CA, CH, FR, DE, ES, IN, IT, MX, NL, NZ, PL, RU, SG, ZA, UK, US. |
salary | Highly preferable | A formatted value like "£20,000 per annum" is preferred, but raw text ("50K", "150 € per day") is also accepted. For UK jobs with no salary supplied, Adzuna applies its own market estimate. |
company | Highly preferable | The actual employer name — recruitment agency or job-site names should not be used here. |
category | Highly preferable | One value only, from Adzuna's own list of 29 job categories (or a mapped equivalent). In the UK and US, Adzuna notes it also auto-categorizes ads with its own model, which can supersede the supplied value. |
contract_type | Optional (affects filters) | Accepts exactly one of permanent or contract. |
contract_time | Optional (affects filters) | Accepts exactly one of full_time or part_time. |
remote | Optional (affects filters) | Aceita 1/Yes/Remote or 0/No/Non-Remote. |
Additional optional fields in the spec include geo_lat / geo_lng, postcode, salary_min / salary_max / salary_frequency (accepted values: hour, day, month, year) / salary_currency, date (initial publish date), and cpc for programmatic bidding.
Feedance sits between your source job data and Adzuna's feed requirements, so the general workflow looks like this:
title, your internal reference to id, the full job description (with HTML formatting, 100+ characters) to description, the live apply page to url, and so on through location, country, salary, company, category, contract type and time, and remote status.<jobs>/<job> structure, proper escaping or CDATA handling, and hosts it at a stable URL.Adzuna's own specification states it downloads the feed and updates its search index at least once per day, and that the file you produce must be updated with at least that frequency.
In practice, job listings are more time-sensitive than most product catalogs — a role that's been filled but stays live on Adzuna wastes clicks (and, on CPC accounts, budget) sending candidates to a dead application page. A feed pipeline that re-syncs whenever a job opens, changes, or closes — while still meeting Adzuna's once-daily minimum crawl cadence — keeps what candidates see aligned with what's actually open.
Adzuna doesn't publish a public list of feed error codes, but its XML specification is explicit about the constraints that cause jobs to be rejected or misread. The most common issues trace directly back to these documented rules:
< or & inside a field breaks the XML document. Escape them as < e &, or wrap the field in CDATA.description. Short, boilerplate descriptions fall under this threshold and get rejected.country tag — a job in Munich tagged with country code UK, for example, is rejected outright rather than reassigned.location field contains more than one place, Adzuna only reads the first — the rest is silently ignored, which can produce jobs geo-matched to the wrong area.url must be unique and lead to a page where the candidate can actually apply. Reused or placeholder URLs undermine this requirement.remote, contract_type e contract_time aren't mandatory, but Adzuna's spec notes that without them, your jobs simply won't surface when candidates filter search results by those criteria — not a rejection, but a visibility loss.A couple of these are lifted straight from Adzuna's own guidance; the rest are general feed-hygiene practices worth labeling as such.
title should be an actual job title — not padded with location, salary, an internal ID, or urgency keywords — because that padding actively hurts search relevancy on their platform.salary is only "highly preferable," not mandatory, providing it avoids relying on Adzuna's automated market estimate and gives candidates a more accurate picture up front.What format does Adzuna require for a job feed?
XML, with a <jobs> root element and each posting inside its own <job> tag, per Adzuna's published XML specification.
How often does Adzuna pull in feed updates?
Adzuna's own documentation states it downloads and re-indexes feeds at least once per day, so your feed needs to be refreshed at least that often.
Can I submit my feed from my existing ATS or careers site?
Yes — Adzuna accepts a feed hosted at any URL (including password-protected ones) that it can crawl on schedule, or delivery via FTP upload from a whitelisted IP.
Does Adzuna support remote job postings?
Yes. Per the spec, set location to the relevant country and use the remote field (accepted values 1/Yes/Remote or 0/No/Non-Remote) to flag it.
Does Adzuna charge to list jobs?
Adzuna's own XML spec confirms a cost-per-click (cpc) field exists for advertisers on programmatic bidding arrangements, with ranges agreed per account manager. Beyond that, exact plans and rates vary by market and account type — confirm current pricing directly with Adzuna rather than relying on a fixed number.
Why would a valid-looking job not show up on Adzuna?
Most non-rejection visibility gaps trace back to optional-but-influential fields: missing category, contract_type, contract_time, ou remote won't cause a rejection, but the job won't surface when candidates filter by those criteria.