
Global Sources Supplier Scraper
scrape.ly/store/cornerledger/globalsources-scraperLead generationE-commerce
2 monthly users

Export job listings from Adzuna in 19 countries (UK, US, Germany, France, Australia, India, Netherlands and more) by keyword, location, distance, salary, contract and date, or from search and job links. Get company, location, advertised and estimated salary, snippet or full description, category and apply links. No login needed.
Export job listings from Adzuna in 19 countries (UK, US, Germany, France, Australia, Canada, India, Netherlands and more) to JSON, CSV or Excel. Search by keyword and location with distance, salary, contract, working-hours and date filters, or paste Adzuna search and job links. You get the company, location, advertised salary split into min / max / period, Adzuna's estimated salary, the snippet or full description, the category and links. No login needed, and a 1,000-job search finishes in well under a minute.
salary_min, salary_max, salary_period and currency, and Adzuna's estimated salary when the ad has none.software engineer, nurse), pick a Country and optionally a Location.| Field | What it does |
|---|---|
queries | Job titles, skills or companies. Each query is its own search. |
country | uk, us, de, fr, au, ca, in, nl, nz, za, pl, it, es, at, be, br, mx, sg or ch. |
location | City, region or postcode in that country. |
startUrls | Adzuna search links or job links (.../details/<id>) from any country site. |
maxItems | Total jobs to save across all searches (Adzuna shows up to 1,000 per search). 0 = no limit. |
distanceKm, salaryMin, salaryMax | Radius around the location and yearly salary range in local currency. |
contractType, contractTime | permanent / contract, full_time / part_time. |
postedWithinDays, remoteOnly, sortBy | Freshness, remote jobs only, and relevance, date, salary_desc or salary_asc. |
collectDetails | Open each job page for the full description, category and apply link. |
{
"queries": ["software engineer"],
"country": "uk",
"location": "London",
"maxItems": 20,
"salaryMin": 50000,
"postedWithinDays": 7,
"collectDetails": false
}
| Field | Description |
|---|---|
job_id, url, redirect_url | Adzuna id, job page and the link that forwards to the employer's ad |
title, company, location, country | The basics |
salary_text | Salary as advertised |
salary_min, salary_max, salary_period, salary_currency | Parsed salary (period is hour, day, week, month or year) |
salary_predicted, salary_is_predicted | Adzuna's estimated yearly salary when the ad shows none |
description_snippet | Short text from the result list |
description, description_html, category | Full text, HTML and category (with Get full job descriptions) |
is_new, easy_apply, is_sponsored, badges | Labels shown on the listing |
logo_url, search_query, search_location, scraped_at | Logo and the search that found the job |
{
"job_id": "5927583389",
"title": "Python Developer",
"company": "ANSON MCCADE",
"location": "CENTRAL LONDON",
"salary_text": "£80,000",
"salary_min": 80000,
"salary_max": 80000,
"salary_period": "year",
"salary_currency": "GBP",
"salary_predicted": null,
"salary_is_predicted": false,
"category": null,
"description_snippet": "Python Developer Are you a passionate backend engineer who enjoys solving complex technical challenges, building scalable systems ...",
"description": null,
"is_sponsored": false,
"is_new": true,
"easy_apply": false,
"badges": ["TOP MATCH", "NEW"],
"logo_url": "https://zunastatic-abf.kxcdn.com/images/logo/jobs/partners/s51b8mWhrins1Nl59ljQyprxJfk.png",
"url": "https://www.adzuna.co.uk/jobs/details/5927583389",
"redirect_url": "https://www.adzuna.co.uk/jobs/land/ad/5927583389",
"country": "uk",
"search_query": "python developer",
"search_location": "London",
"scraped_at": "2026-10-16T00:41:23Z"
}
You pay $1.25 per 1,000 jobs saved, plus a small amount of platform usage (compute and proxy traffic). A typical run of 1,000 jobs costs about $1.25 in total. With Get full job descriptions turned on, usage rises slightly because every job page is opened, but the per-job price stays the same. You are never charged for jobs that were not saved.
Is it legal to scrape Adzuna? The actor reads public job listings that anyone can see without logging in. Check the site's terms and your local rules (for example GDPR) for how you use the data.
Do I need an Adzuna account, API key or my own proxy? No. The actor uses residential proxies pinned to the searched country by default. Canada, New Zealand, South Africa, Brazil, Mexico and Singapore need residential proxies; the other sites also work with the cheaper datacenter group.
How many jobs can I get? Adzuna shows up to 1,000 jobs per search. For more, run several narrower searches in one run (more queries, several locations, or salary and date filters). Duplicates across searches are removed.
Why is a field empty?
Fields are only filled when Adzuna shows them. Many ads have no salary; then salary_predicted often holds Adzuna's estimate. description and category need Get full job descriptions.
Can I schedule it or use it through the API? Yes. Schedule runs in the console and read the dataset through the API, or connect it to webhooks and integrations.
Is the posting date included?
Adzuna does not show posting dates on its pages. Use Posted within (days) and Sort by: newest first to get fresh jobs, and is_new marks recently added ones.
scraped_at records when the job was saved....search?cat=1&q=python).Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
queriesarrayOptionalSearch queries
Job titles, skills or companies to search, one per line, e.g. 'software engineer', 'nurse'. Each query is its own search. Leave empty to list all jobs in the location.
countryenumOptionaldefault "uk"Country
Which Adzuna country site to search (adzuna.co.uk, adzuna.com, adzuna.de, ...). Pasted links keep their own country.
locationstringOptionalLocation
City, region or postcode in the chosen country, e.g. 'London', 'Manchester', 'SW1A'. Leave empty for the whole country.
startUrlsarrayOptionalAdzuna links
Optional. Adzuna search links (adzuna.co.uk/jobs/search?q=..., adzuna.de/search?q=...) or SEO pages such as adzuna.co.uk/jobs/london, and single job links (.../details/1234567890) from any of the 19 country sites. Filters below are added to pasted search links.
maxItemsintegerOptionaldefault 20Maximum jobs
How many jobs to save in total across all queries and links. Adzuna shows up to 1,000 jobs per search. 0 = no limit.
distanceKmintegerOptionalDistance (km)
Search radius around the location in kilometres. Empty = the site's default.
salaryMinintegerOptionalMinimum salary
Only jobs paying at least this yearly amount in the local currency.
salaryMaxintegerOptionalMaximum salary
Only jobs paying at most this yearly amount in the local currency.
contractTypeenumOptionalContract type
Permanent or contract jobs only.
contractTimeenumOptionalWorking hours
Full-time or part-time jobs only.
postedWithinDaysintegerOptionalPosted within (days)
Only jobs added in the last N days, e.g. 1, 3, 7 or 30. Empty = any date.
remoteOnlybooleanOptionalRemote jobs only
Only jobs that Adzuna marks as remote / work from home.
sortByenumOptionalSort by
Result order.
collectDetailsbooleanOptionaldefault falseGet full job descriptions
Open every job page to add the full description (text and HTML), the job category and the apply link. Slower: one extra page per job. Off = fields from the result list (snippet, salary, company, location).
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["RESIDENTIA…Proxy configuration
Proxy servers used to reach Adzuna. Residential exits are pinned to the searched country unless you pick one.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| job_id | string | null | |
| title | string | null | |
| company | string | null | |
| location | string | null | |
| salary_text | string | null | |
| salary_min | number | null | |
| salary_max | number | null | |
| salary_period | string | null | |
| salary_currency | string | null | |
| salary_predicted | number | null | |
| salary_is_predicted | boolean | null | |
| category | string | null | |
| description_snippet | string | null | |
| description | string | null | |
| description_html | string | null | |
| is_new | boolean | null | |
| easy_apply | boolean | null | |
| badges | array | null | |
| logo_url | string | null | |
| url | string | null | |
| redirect_url | string | null | |
| country | string | null | |
| search_query | string | null | |
| search_location | string | null | |
| scraped_at | string | null | |
| is_sponsored | boolean | null |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Job | One saved job listing. | $0.0013 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('openrole/adzuna-scraper').call({
"queries": [
"software engineer"
],
"country": "uk",
"location": "London",
"maxItems": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"RESIDENTIAL"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run openrole/adzuna-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=openrole/adzuna-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Job ads from Adzuna UK.
Newest software engineer and data scientist ads.
German job ads with full descriptions.
Permanent roles above a minimum salary.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.