# Adzuna Scraper - Global Job Search Aggregator (`thirdwatch/adzuna-jobs-scraper`) Actor

Scrape Adzuna job listings across 19 countries: title, company, location, salary, description snippet, and URL. Covers US, UK, Australia, Germany, France, India, and more. HTTP-based, no browser needed.

- **URL**: https://apify.com/thirdwatch/adzuna-jobs-scraper.md
- **Developed by:** [Thirdwatch](https://apify.com/thirdwatch) (community)
- **Categories:** Jobs
- **Stats:** 31 total users, 8 monthly users, 86.6% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.60 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Adzuna Scraper

> **Thirdwatch portfolio:** 5K users across 88 public Actors, 2M+ records delivered, and >99% run success. [Explore all Thirdwatch Actors](https://apify.com/thirdwatch).

> ⚠️ **DEPRECATED — being removed on June 13, 2026.** Use [Adzuna's official API](https://developer.adzuna.com/) (free at low volume, paid feeds for production). For general jobs scraping, see [Indeed](https://apify.com/thirdwatch/indeed-jobs-scraper), [LinkedIn Jobs](https://apify.com/thirdwatch/linkedin-jobs-scraper), [Reed](https://apify.com/thirdwatch/reed-jobs-scraper), or [Google Jobs](https://apify.com/thirdwatch/google-jobs-scraper).

> Scrape job listings from Adzuna across 19 countries — titles, companies, locations, salary, and descriptions for every listing.

### What you get

Adzuna is a global job search aggregator covering 19 countries including the US, UK, Australia, Germany, France, India, and Canada. This scraper returns structured job-listing data from Adzuna search results, ready for aggregation, salary research, or trend analysis. Pass one or more queries and optionally a country or location filter.

### Output fields

| Field | Description |
|-------|-------------|
| `title` | Job title |
| `company` | Company name |
| `location` | Job location |
| `salary` | Salary information when available (may be an Adzuna estimate) |
| `description_snippet` | Short description summary from the search result |
| `url` | Direct link to the full listing on Adzuna |
| `source` | Always `"adzuna"` |

### Example output

```json
{
    "title": "Senior Software Engineer",
    "company": "Microsoft",
    "location": "Seattle, WA",
    "salary": "$130,000 - $180,000 a year",
    "description_snippet": "We are looking for a talented engineer to join our cloud platform team...",
    "url": "https://www.adzuna.com/details/4123456789",
    "source": "adzuna"
}
```

### Input parameters

| Parameter | Required | Description |
|-----------|----------|-------------|
| `queries` | Yes | List of job search terms (e.g., `["software engineer", "data scientist"]`). |
| `country` | No | Country code (e.g., `us`, `uk`, `de`, `au`, `fr`, `in`, `ca`). Default `us`. Supported: US, UK, Australia, Germany, France, India, Canada, New Zealand, South Africa, Poland, Netherlands, Italy, Spain, Austria, Belgium, Brazil, Mexico, Singapore, Switzerland. |
| `location` | No | Location filter within the chosen country (e.g., `"london"`, `"new york"`, `"berlin"`). |
| `maxResults` | No | Max job listings across all queries. Default `25`. Range 1-500. |
| `proxyConfiguration` | No | Proxy settings. Leave default for best results. |

### Use cases

- **Job aggregators**: Combine Adzuna data with other job boards for broad coverage across 19 countries.
- **Salary researchers**: Compare salary ranges for the same role across different countries and cities.
- **Hiring analysts**: Track which roles and locations are getting the most postings over time.
- **Recruiter benchmarking**: Map the competitive landscape for a role before posting your own.

### Pricing

Pay-per-result pricing. Tiered discounts apply automatically based on usage volume.

| Tier | Price per result |
|------|------------------|
| FREE | $0.0015 |
| BRONZE | $0.00125 |
| SILVER | $0.001 |
| GOLD | $0.00085 |

### Limitations

- `description_snippet` is a short summary, not the full job description. Follow `url` for the complete copy.
- Salary data is not always present; when it is, it may be an Adzuna estimate rather than the employer's stated figure.
- Listings come from Adzuna's aggregated index, so freshness depends on Adzuna's own crawl cadence.

### Compared to alternatives

- **vs. Adzuna public API**: Adzuna's official API requires an API key, has a limited free tier, and rate-limits aggressively. This actor returns the same core data without requiring an account.
- **vs. other Apify Store scrapers**: Very limited competition for Adzuna specifically — this actor is the default choice on Apify Store.

Pairs well with [Indeed Scraper](https://apify.com/thirdwatch/indeed-jobs-scraper?fpr=9m2cd6) and [LinkedIn Jobs Scraper](https://apify.com/thirdwatch/linkedin-jobs-scraper?fpr=9m2cd6) for multi-source job coverage.

### FAQ

**Which countries are supported?**
19: US, UK, Australia, Germany, France, India, Canada, New Zealand, South Africa, Poland, Netherlands, Italy, Spain, Austria, Belgium, Brazil, Mexico, Singapore, Switzerland.

**Can I filter by location?**
Yes — pass a city name in `location` (e.g., `"london"`, `"berlin"`, `"new york"`).

**How fresh is the data?**
Pulled live at run time from Adzuna's search index.

Last verified: 2026-04

More scrapers at [thirdwatch.dev](https://thirdwatch.dev).

# Actor input Schema

## `queries` (type: `array`):

List of job search terms (e.g. \["software engineer", "data scientist"]).

## `country` (type: `string`):

Country code: us, uk, au, de, fr, in, ca, nz, za, pl, nl, it, es, at, be, br, mx, sg, ch.

## `location` (type: `string`):

Optional location filter (e.g. "london", "new york", "berlin").

## `maxResults` (type: `integer`):

Maximum number of job listings to extract (across all queries).

## `proxyConfiguration` (type: `object`):

Proxy settings. Default uses Apify residential proxies (best success rate).

## Actor input object example

```json
{
  "queries": [
    "software engineer"
  ],
  "country": "us",
  "location": "",
  "maxResults": 25,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "queries": [
        "software engineer"
    ],
    "country": "us",
    "maxResults": 25,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("thirdwatch/adzuna-jobs-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "queries": ["software engineer"],
    "country": "us",
    "maxResults": 25,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("thirdwatch/adzuna-jobs-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "queries": [
    "software engineer"
  ],
  "country": "us",
  "maxResults": 25,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call thirdwatch/adzuna-jobs-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=thirdwatch/adzuna-jobs-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/vjw1K6tQuugYNPPIv/builds/AaiUcIjycem55r2DZ/openapi.json
