canonical: https://jentic.com/apis/adzuna.com/adzuna

# Adzuna API

Jentic publishes the only available OpenAPI specification for Adzuna API, keeping it validated and agent-ready. Adzuna aggregates job listings from across the web and exposes them through a country-scoped REST API covering search, category breakdowns, salary histograms, top-company rankings, and geo-distributed listings. Each endpoint takes a country code (e.g. gb, us, de) and returns structured job data drawn from thousands of sources, making it suitable for job boards, salary research, and labour-market analytics. Authentication uses an app_id and app_key pair appended as query parameters.

## For AI agents

Search aggregated job listings, salary distributions, and labour-market statistics across more than a dozen countries from a single REST API.

## Scope

Does not handle applicant tracking, application submission, or candidate messaging - use for searching and analysing aggregated job listing data only.

## Capabilities

- Search job listings by country, keyword, location, salary range, and category
- Retrieve a country's job categories and the canonical tags used by Adzuna
- Generate salary histograms for any keyword or location combination
- Rank the top hiring companies for a given query in a country
- Pull geo-distributed listing counts for mapping vacancies across regions
- Track historical job-volume series for trend and labour-market analysis

## Use cases

### Job Board and Aggregator Backend

Power a niche job board with Adzuna's aggregated listings instead of scraping individual employer sites. The /jobs/{country}/search/{page} endpoint returns paginated, structured job records - title, company, location, salary, description, and source URL - across all supported countries. Pair with the categories endpoint to filter by domain (IT, healthcare, finance) without maintaining your own taxonomy.

Example prompt: Call GET /jobs/gb/search/1 with what=python developer and salary_min=70000 and return the top 20 listings with title, company, and salary range

### Salary Benchmarking and Compensation Research

Generate compensation benchmarks for a role and location using Adzuna's salary histogram endpoint, which returns the distribution of advertised salaries across live listings. Compensation, talent, and HR teams can answer 'what does a senior data engineer earn in Manchester?' from real market data instead of survey lag, then refresh whenever needed.

Example prompt: Call GET /jobs/us/histogram with what=senior data engineer and location0=California and return the salary distribution as a list of bands with counts

### Labour-Market Analytics and Reporting

Build labour-market dashboards that track job volume, top employers, and category mix over time. Adzuna's history endpoint returns time-series data for any keyword and country, while the top_companies endpoint surfaces the active hirers. Useful for economists, recruiters, and policy teams who need a low-cost view of national or regional hiring trends.

Example prompt: Call GET /jobs/de/history with what=software engineer and produce a 12-month job-count series plus the top 5 hiring companies from /jobs/de/top_companies

### AI Agent Job Search Assistant

Give an AI agent the ability to answer job-search questions and produce shortlists in chat. Through Jentic, an agent searches by intent for the right Adzuna operation, loads the schema, and executes the search with the user's filters - country, keyword, salary minimum, location - without ever seeing the raw app_id and app_key.

Example prompt: Search Jentic for 'find jobs by keyword and location', load the /jobs/{country}/search/{page} schema, and execute with country=gb and what=react developer

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /jobs/{country}/search/{page} | Search job listings in a country with paginated results |
| GET | /jobs/{country}/categories | List job categories available in a country |
| GET | /jobs/{country}/histogram | Return a salary histogram for a query |
| GET | /jobs/{country}/top_companies | Rank the top hiring companies for a query |
| GET | /jobs/{country}/geodata | Return geo-distributed job-count data |
| GET | /jobs/{country}/history | Return historical job-count time series for a query |

## Key resources

- **Jobs** — Search, category, histogram, top-company, geo, and history operations scoped by country
- **Version** — Returns the API version string for capability checks

## Why Jentic

- **Setup:** Wiring the Adzuna API by hand means managing an app_id and app_key as query parameters and threading the country code through every path. Through Jentic you install once, import the Adzuna API from the API Directory, store the credentials once, and your agent calls it.
- **Permission scoping:** Adzuna puts the country in the URL path (/jobs/{country}/...) and every operation is a read, so a rule can pin the agent to one country's job data. You choose which read operations it may call, such as search or histogram, so anything you leave out is not reachable.
- **Credential handling:** Your Adzuna app_id and app_key are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'find jobs by keyword and salary', and Jentic returns the matching Adzuna operation with its input schema, including the country path parameter, so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **The Muse API** — Curated job listings with company profile content
- **USAJOBS** — US federal government job listings only
- **ZipRecruiter API** — US-focused job aggregator with applicant-facing matching
- **Lever** — ATS for managing your own hiring pipeline

## FAQ

### Why is there no official OpenAPI spec for Adzuna API?

Adzuna does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Adzuna API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Adzuna API use?

Adzuna uses an app_id and app_key pair passed as query parameters on every request, obtained from the Adzuna developer portal. Through Jentic both values are stored in the vault and injected at execution time so they never appear in the agent's context.

### Which countries does the Adzuna API cover?

Every endpoint is scoped by a country path parameter - gb, us, de, fr, nl, ca, au, in, br, pl, za, ru, sg, mx, it, and at - covering 16 markets with the same request shape and response schema.

### Can I get salary distributions with the Adzuna API?

Yes. Call GET /jobs/{country}/histogram with a what query and optional location filters and Adzuna returns the count of live listings in each salary band, suitable for compensation benchmarking dashboards.

### What are the rate limits for the Adzuna API?

Adzuna applies free-tier and commercial-tier limits per app_id; specific limits are not declared in the spec. Check the Adzuna developer portal for your tier and watch for HTTP 429 responses, which Jentic surfaces verbatim so agents can back off.

### How do I search jobs by salary minimum through Jentic?

Run pip install jentic, search Jentic with 'find jobs by keyword and location', load the /jobs/{country}/search/{page} schema, and execute with country, what, salary_min, and page parameters. Jentic returns the parsed listings without exposing your app_id or app_key.

### Can I limit what my agent is allowed to do with the Adzuna API?

Yes. Because you run Jentic One yourself, your own rules decide which Adzuna operations and credentials the agent may use. Every Adzuna operation is a read and takes the country in its URL path (/jobs/{country}/...), so you can pin the agent to one country and pick exactly which reads it may call, such as search or histogram. Anything you do not grant, like top_companies or history, stays unreachable to the agent.
