Adzuna Jobs Scraper
Pricing
Pay per usage
Adzuna Jobs Scraper
[π° $0.55 / 1K] Extract job listings from Adzuna across 19 countries. Search by keyword, location, salary, contract type, and distance to get structured data including titles, companies, salaries, descriptions, categories, and direct apply links.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
SolidCode
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
3
Monthly active users
11 days ago
Last modified
Categories
Share
Pull job listings from Adzuna at scale β titles, companies, native salary ranges, full descriptions, contract terms, categories, geo coordinates, and direct apply links across 19 country markets. Built for recruiters, labor-market analysts, and job-board aggregators who need clean, structured Adzuna data without copying postings by hand or babysitting a brittle in-house scraper.
Why This Scraper?
- 19 country markets in one actor β United States, United Kingdom, Germany, France, Australia, Canada, India, Netherlands, Italy, Spain, Switzerland, and 8 more, each returning salaries in its own local currency.
- Clean numeric salary min/max, not just a text blob β every row carries
salaryMinandsalaryMaxas real numbers alongside the originalsalarytext, so salary benchmarking and sorting just work. AsalaryIsPredictedflag tells you when a figure is Adzuna's own estimate versus an advertised wage. - Full-text job descriptions, not truncated snippets β flip
fetchDescriptionon and every row carries the complete posting text pulled from the listing's detail page, not the one-line search-result teaser most scrapers stop at. - Seven native Adzuna filters wired in β salary range, full-time vs. part-time, permanent vs. contract, distance radius in miles, posted-within window (24 hours to 30 days), and sort by relevance, date, or highest salary.
- Geo coordinates on every job β
latitudeandlongitudefor each listing, ready to drop onto a map or join against your own location data. - ISO-8601 dates you can sort and diff β
postedDateandvalidThroughas clean timestamps, plus the jobcategoryand a stablejobIdfor de-duplication across runs. - Three ways to search β keyword queries, a city plus a mileage radius, or paste fully-filtered Adzuna search URLs straight from your browser. Mix all three in a single run.
- Up to 1,000 jobs per keyword, auto-deduplicated β batch up to 50 keywords per run; overlapping searches never produce duplicate rows.
Use Cases
Recruitment & Talent Sourcing
- Build live feeds of open roles by title, city, and radius
- Track which companies are hiring for a given skill in a target market
- Surface direct apply links for fast candidate outreach
- Monitor new postings in the last 24 hours for hard-to-fill roles
Labor-Market & Economic Research
- Measure hiring demand by category and region across 19 countries
- Compare full-time vs. contract volume in a sector over time
- Map openings geographically using per-job coordinates
- Quantify how long roles stay live using posted and expiry dates
Salary Benchmarking & Compensation
- Pull numeric salary ranges to benchmark pay by role and location
- Separate advertised salaries from Adzuna's predicted figures
- Compare compensation across countries in local currency
- Build percentile bands for offer and pay-equity analysis
Job-Board & Aggregator Feeds
- Power a niche job board with fresh, structured listings
- Enrich existing postings with full descriptions and categories
- Keep an alerting system fed with newest-first results
- Re-run filtered Adzuna search URLs on a schedule to stay current
Sales & Lead Generation
- Identify companies actively scaling a particular team
- Target outreach by hiring signals in a specific city or sector
- Feed hiring data into a CRM as a growth indicator
Getting Started
Simple Keyword Search
The minimum input β one keyword in one country:
{"searchQueries": ["software engineer"],"country": "us","maxResults": 100}
Filtered Search β Location, Salary, and Recency
Senior full-time roles near a city, paying at least a threshold, posted recently:
{"searchQueries": ["data scientist"],"country": "gb","location": "London","distance": 25,"salaryMin": 60000,"contractTime": "full_time","contractType": "permanent","maxDaysOld": "7","sortBy": "date","maxResults": 250}
Advanced β Paste Adzuna Search URLs
Dial in a search on the Adzuna website, then paste the URLs to scrape them exactly as-is:
{"startUrls": ["https://www.adzuna.com/search?q=product+manager&w=New+York","https://www.adzuna.de/search?q=software+entwickler"],"fetchDescription": true,"maxResults": 500}
Input Reference
Search
| Parameter | Type | Default | Description |
|---|---|---|---|
searchQueries | string[] | ["software engineer"] | Job titles or keywords. Each keyword runs a separate search; results are merged and de-duplicated. Up to 50 per run. |
country | select | United States | Adzuna market to search. Salaries are returned in that country's local currency. 19 countries supported. |
location | string | "" | City or region within the chosen country (e.g. "London", "New York"). Leave empty to search the whole country. |
startUrls | string[] | [] | Full Adzuna search-result URLs to scrape exactly as-is. Useful when you have already dialed in a search on the website. Up to 50 URLs. |
Filters & Limits
| Parameter | Type | Default | Description |
|---|---|---|---|
maxResults | integer | 100 | Maximum jobs to collect per keyword (1β1,000). The last page is kept in full, so the final count can slightly overshoot. |
salaryMin | integer | β | Only show jobs paying at least this much per year, in local currency. |
salaryMax | integer | β | Only show jobs paying at most this much per year, in local currency. |
contractTime | select | Any | Working hours: Any, Full-time, or Part-time. |
contractType | select | Any | Contract arrangement: Any, Permanent, or Contract. |
distance | integer | β | Search radius from the location, in miles (1β500). Ignored when location is empty. |
maxDaysOld | select | Any time | Posted-within window: Any time, Last 24 hours, Last 3 days, Last 7 days, Last 14 days, or Last 30 days. |
sortBy | select | Most relevant | Result order: Most relevant, Newest first, or Highest salary first. |
Advanced
| Parameter | Type | Default | Description |
|---|---|---|---|
fetchDescription | boolean | true | Fetch the full job description from each listing's detail page. Leave on for the most complete data; turn off for faster runs (the description field then holds only the search-result snippet). |
Output
Each record is one job listing. Here is a representative result with full descriptions enabled:
{"title": "Senior Software Engineer","company": "Acme Technologies","location": "New York, NY","locationAreas": ["US", "New York", "New York City"],"salary": "$140,000 - $180,000","salaryMin": 140000,"salaryMax": 180000,"salaryIsPredicted": false,"salaryCurrency": "USD","contractTime": "full_time","contractType": "permanent","category": "IT Jobs","descriptionSnippet": "We are hiring a Senior Software Engineer to lead our platform team...","description": "We are hiring a Senior Software Engineer to lead our platform team. You will design and ship backend services, mentor engineers, and own delivery end to end...","postedDate": "2026-05-21T09:00:00Z","validThrough": "2026-06-20T09:00:00Z","latitude": 40.7128,"longitude": -74.006,"jobUrl": "https://www.adzuna.com/details/4567890123","jobId": "4567890123","country": "us","searchQuery": "software engineer","searchLocation": "New York","scrapedAt": "2026-05-30T14:30:00Z"}
Core Fields
| Field | Type | Description |
|---|---|---|
title | string | Job title. |
company | string | Hiring company name. |
location | string | Human-readable location label as shown on Adzuna. |
locationAreas | string[] | Location broken into a hierarchy (country β region β city). |
category | string | Adzuna job category (e.g. "IT Jobs", "Healthcare & Nursing Jobs"). |
descriptionSnippet | string | Short teaser from the search-result card. |
description | string | Full job description when fetchDescription is on; otherwise the snippet. |
jobId | string | Stable Adzuna listing identifier, ideal for de-duplication. |
jobUrl | string | Direct link to the Adzuna listing. |
Salary
| Field | Type | Description |
|---|---|---|
salary | string | Salary as displayed on Adzuna, formatted with currency. |
salaryMin | number | Lower bound of the salary range, native numeric value. |
salaryMax | number | Upper bound of the salary range, native numeric value. |
salaryIsPredicted | boolean | true when the figure is Adzuna's estimate rather than advertised. |
salaryCurrency | string | ISO currency code for the salary (e.g. "USD", "GBP", "EUR"). |
contractTime | string | full_time or part_time when stated by the listing. |
contractType | string | permanent or contract when filtered for. |
Location & Timing
| Field | Type | Description |
|---|---|---|
latitude | number | Listing latitude. |
longitude | number | Listing longitude. |
postedDate | string | ISO-8601 date the job was posted. |
validThrough | string | ISO-8601 date the listing expires, when published. |
Run Metadata
| Field | Type | Description |
|---|---|---|
country | string | Adzuna country code the result came from (e.g. "us", "gb"). |
searchQuery | string | The keyword that produced this row (null for start-URL results). |
searchLocation | string | The location filter used for this row. |
scrapedAt | string | ISO-8601 timestamp of when the row was captured. |
Tips for Best Results
- Sort by date and run on a schedule β set
sortByto Newest first withmaxDaysOldof Last 24 hours, then schedule the actor to catch fresh postings within hours of going live. - Copy fully-filtered searches as URLs β tune category, salary, and location filters on the Adzuna site, then paste the resulting URLs into
startUrlsto reproduce that exact search without rebuilding it field by field. - Leave
fetchDescriptionon for analysis, off for scale β full descriptions add a request per job; turn it off when you only need titles, companies, salaries, and links for a fast, wide sweep. - Sort and filter on
salaryMin/salaryMax, but read thesalarytext for the pay period β the numeric fields are clean and sortable, while the originalsalarytext tells you whether a figure is per year, per day, or per hour (most are annual, but contract roles can be daily). ChecksalaryIsPredictedbefore treating any figure as an advertised wage. - Match
locationwithdistanceβ a city plus a mileage radius captures the surrounding commuter belt that a city-only search misses. - Batch related titles in one run β pass several variants ("data scientist", "ml engineer", "data analyst") in
searchQueries; overlapping results are de-duplicated automatically byjobId. - Pick the right country β each market is searched on its own Adzuna domain, so set
countryto the market you actually want rather than relying on a location string alone.
Pricing
$0.55 per 1,000 results β no monthly rental, no tiered plans. You pay only for the job listings you actually receive.
| Results | Estimated Cost |
|---|---|
| 100 | $0.06 |
| 1,000 | $0.55 |
| 10,000 | $5.50 |
| 100,000 | $55.00 |
No compute charges β you only pay per result returned. A "result" is any job row in the output dataset. Platform fees (storage and similar) are additional and depend on your Apify plan.
Integrations
Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:
- Zapier / Make / n8n β Workflow automation
- Google Sheets β Direct spreadsheet export
- Slack / Email β Notifications on new results
- Webhooks β Trigger custom APIs when a run completes
- Apify API β Full programmatic access
Legal & Ethical Use
This actor is designed for legitimate recruitment, labor-market research, and salary analysis. Users are responsible for complying with applicable laws and Adzuna's Terms of Service. Do not use collected data for spam, harassment, or any illegal purpose, and respect candidates' and employers' privacy when handling personal data.