Reed Jobs Scraper: UK Jobs and Salaries from reed.co.uk
Pricing
from $0.40 / 1,000 jobs
Reed Jobs Scraper: UK Jobs and Salaries from reed.co.uk
Scrape reed.co.uk UK jobs by keyword, location and distance: title, company, agency or employer, salary as numbers with its period, contract type, full or part time, on-site, hybrid or remote, dates, category, link and optional full description. No login.
Pricing
from $0.40 / 1,000 jobs
Rating
0.0
(0)
Developer
The Mine Works
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
10 days ago
Last modified
Categories
Share
From The Mine Works, makers of Threads Scraper and B2B Leads Finder, with over 140,000 runs across 170+ public actors.
Why choose this actor?
- One of the UK's biggest job boards, with its own filters. Search reed.co.uk by keyword, town or postcode, distance, salary, contract type, hours, on-site, hybrid or remote and date posted. Our final test run (nurses and accountants in Manchester and Leeds, up to 100 per search) returned 356 jobs in 52 seconds, and a deep test read 1,000 warehouse jobs from 53 pages.
- Salary as numbers with its period, and no fake figures.
salary_min,salary_maxandsalary_period(year,dayorhour) come from the site's own salary data: 85% of our test jobs had them. When an advertiser hides the pay behind "Competitive salary" or "Salary negotiable", the row says so and leaves the numbers out, because the site's numbers behind those words are placeholders. - No login, no cookies, nothing to set up, and you only pay for jobs you receive. A refused page, a search with no results, a job repeated on a later page or found by another keyword in the same run and, with
onlyNewJobs, a job an earlier run already gave you are never charged.
Part of The Mine Works Jobs and hiring family: Foundit Monster India Jobs, Hirist Jobs Scraper, India Jobs MCP, Naukri Jobs Scraper, Shine.com Jobs Scraper, Internshala Scraper.
Try it in one minute
Paste this into the input (JSON view) and press Start. It returns 25 software engineer jobs in London in a few seconds:
{"keywords": ["software engineer"],"locations": ["London"],"maxJobs": 25}
keywords takes job titles or skills, one per line, as you would type them on reed.co.uk (nurse, accountant, HGV driver). locations takes towns, cities, counties or postcodes (Manchester, Kent, LS1); each keyword is searched in each location within distanceMiles. Leave locations empty for the whole UK, or keywords empty for every job in a place.
On Apify's free plan every run returns the first 10 results as a preview, so you can check the data and the fields before you pay. A paid Apify plan returns every result: https://apify.com/pricing?fpr=ymnoit
Copy to your AI assistant
themineworks/reed-jobs-scraper on Apify. Scrapes UK job listings from reed.co.uk, one row per job with title, company, whether an agency or the employer posted it, location and county, salary text with minimum, maximum, currency and period, contract type, full or part time, on-site, hybrid or remote, category, posted, updated and closing dates and link, with an optional full description, sector, town, postcode and region. Call ApifyClient("TOKEN").actor("themineworks/reed-jobs-scraper").call(run_input={"keywords": ["nurse"], "locations": ["Manchester"], "maxJobs": 100}), then client.dataset(run["defaultDatasetId"]).list_items().items. Required: none (default keywords ["software engineer"], whole UK). Optional: keywords (list; empty list = every job), locations (list of towns, counties or postcodes; empty = whole UK), distanceMiles (0, 1, 3, 5, 10, 15, 20, 30 or 50; default 10), salaryMin and salaryMax (GBP a year), contractTypes (list of "permanent", "contract", "temporary"), hours (list of "full_time", "part_time"), workingOption ("any", "on_site", "hybrid", "remote"), datePosted ("anytime", "today", "last_3_days", "last_week", "last_2_weeks"), postedBy ("anyone", "agency", "employer"), graduateOnly, easyApplyOnly, visaSponsorshipOnly, salaryShownOnly (default false), hideTrainingCourses (default true), maxJobs (default 100, 25 to 5000 per search), includeDescription (default false), onlyNewJobs (default false). Full spec: GET https://api.apify.com/v2/acts/themineworks~reed-jobs-scraper/builds/default (Bearer TOKEN), which returns inputSchema and readme. Token: https://console.apify.com/account/integrations?fpr=ymnoit&utm_source=apify-readme&utm_medium=referral
Key features
- 35 fields per job, 15 more with descriptions: job id, title, company with its reed.co.uk job list and logo, agency or employer, location and county, salary text with minimum, maximum, currency, period, hidden flag and extras (OTE, benefits, pro-rata, negotiable), contract type, hours, on-site, hybrid or remote, category and sub category, posted, updated and closing dates, short description, easy apply, right to work required, promoted and featured flags and the job link.
- Full description on demand: switch on
includeDescriptionfor the complete description as text and HTML, the salary exactly as the job page shows it, the sector, town, postcode district, region and country, the skills the advertiser listed and the graduate flag. - Every filter of the site: distance from 0 to 50 miles, salary from and to, permanent, contract or temporary, full or part time, on-site, hybrid or remote, posted today to the last two weeks, agencies or direct employers, graduate jobs, easy apply, visa sponsorship, only jobs that show a salary, and training course listings hidden by default.
- From 25 to 5,000 jobs per search, 25 per page, every page reachable. Each keyword in each location is its own search; three run at a time.
- No double charging: the site repeats promoted jobs on every page of a search (312 repeats over 53 pages in our deep test); each job is delivered and charged once.
- Only new jobs on a schedule: with
onlyNewJobs, a daily run returns and charges only jobs it has not delivered before.
How to use it
Basic: one keyword in one city
{"keywords": ["accountant"],"locations": ["Leeds"],"maxJobs": 100}
Several keywords in several cities
Each keyword runs in each location: this input is 4 searches of up to 100 jobs (our final test run: 356 jobs in 52 seconds, as the two nurse searches had 85 and 71 jobs):
{"keywords": ["nurse", "accountant"],"locations": ["Manchester", "Leeds"],"maxJobs": 100}
Job: daily new job alerts
Jobs posted today, only those not delivered before. Save it as a task and add a daily schedule (Console > Schedules); each run returns and charges only new jobs. In our test, a second run of a plumber search in Bristol found the same jobs as the first, delivered none and charged no job.
{"keywords": ["care assistant"],"locations": ["Bristol"],"datePosted": "today","onlyNewJobs": true,"maxJobs": 200}
Job: contractor day rates for a rate card
Contract roles only, with the day or hourly rate in salary_min, salary_max and salary_period:
{"keywords": ["data engineer", "business analyst"],"contractTypes": ["contract"],"salaryShownOnly": true,"maxJobs": 300}
Job: direct employers only, with full descriptions
Leave out recruitment agencies and read each job page for the description, sector, town and postcode:
{"keywords": ["data analyst", "electrician"],"locations": ["Birmingham"],"postedBy": "employer","includeDescription": true,"maxJobs": 100}
Job: remote and hybrid jobs above a salary
{"keywords": ["product manager"],"workingOption": "remote","salaryMin": 60000,"datePosted": "last_2_weeks","maxJobs": 200}
Job: graduate roles for a careers service
The site marked 662 engineering jobs as graduate jobs on 6 October 2026. visaSponsorshipOnly works the same way, but few advertisers tick it (3 engineering jobs that day), so use it on its own rather than with other narrow filters:
{"keywords": ["engineer"],"graduateOnly": true,"maxJobs": 200}
Input parameters
| Parameter | Type | Default | What it does |
|---|---|---|---|
keywords | array of strings | ["software engineer"] | Job titles or skills, one per line. Each is its own search in every location. An empty list returns every job that matches the other filters. |
locations | array of strings | empty | Towns, cities, counties or postcodes, one per line. Each is its own search within distanceMiles. Empty means the whole UK. |
distanceMiles | integer | 10 | 0, 1, 3, 5, 10, 15, 20, 30 or 50 miles (the site's own choices; other numbers go to the nearest). |
salaryMin | integer | none | Salary from, in GBP a year, as on the site's filter. |
salaryMax | integer | none | Salary up to, in GBP a year. |
contractTypes | array | any | Any of permanent, contract, temporary. |
hours | array | any | Any of full_time, part_time. |
workingOption | string | any | on_site, hybrid or remote. |
datePosted | string | anytime | today, last_3_days, last_week or last_2_weeks. |
postedBy | string | anyone | agency (recruitment agencies) or employer (direct employers). |
graduateOnly | boolean | false | Only graduate jobs. |
easyApplyOnly | boolean | false | Only jobs with the site's easy apply. |
visaSponsorshipOnly | boolean | false | Only jobs offering visa sponsorship. |
salaryShownOnly | boolean | false | Leave out jobs that do not show a salary. |
hideTrainingCourses | boolean | true | Leave out the paid training course listings the site mixes into results. |
maxJobs | integer | 100 | Upper limit per search (one keyword in one location), 25 to 5,000. |
includeDescription | boolean | false | Adds the full description and the job page fields. One extra page per job. |
onlyNewJobs | boolean | false | Skips jobs an earlier run of this actor in your account already delivered. For schedules. |
What data do you get?
One row per job. A job found by two keywords, in two locations or repeated on a later page is delivered once.
The job: job_id, title, contract_type, hours, working_option, category, subcategory, description_short, easy_apply, uk_work_right_required, is_promoted, is_featured, external_url, job_url.
The advertiser: company, company_id, company_jobs_url, company_logo_url, posted_by (agency or employer).
Where: location, county.
Pay: salary_text, salary_min, salary_max, salary_currency, salary_period (year, day or hour), salary_hidden, salary_extras.
Dates: posted_at, updated_at, expires_at (UK time, as the site gives them).
With includeDescription: description (plain text), description_html, salary_shown (exactly as the job page shows it), sector, sector_parent, town, postcode, region, country, country_code, is_remote, graduate, skills, job_live, reed_job, and description_error on the rare row whose page could not be read.
The search: search_keyword, search_location, search_rank, scraped_at.
How full the fields were in our final test runs (356 jobs in Manchester and Leeds; 100 jobs with descriptions in Birmingham):
| Field | Filled | Why not always |
|---|---|---|
job_id, title, company, posted_by, location, contract_type, hours, posted_at, expires_at, description_short, job_url | 100% | |
salary_text, salary_hidden | 100% (99% in the deep test) | salary_text holds the words when the figures are hidden; a job with no pay at all has neither. |
category | 97% | A few jobs have no category. |
working_option, county | 95% | A few jobs give neither. |
company_logo_url | 91% | Not every advertiser uploads a logo. |
salary_min, salary_max, salary_period | 85% | The rest hide their pay (14%) or give none. |
subcategory | 85% | |
salary_extras | 8% | Only OTE, benefits, pro-rata or negotiable pay. |
external_url | 0% | Only for the rare job that redirects off reed.co.uk. |
description, salary_shown, sector, town, region, country | 100% of 100 | With includeDescription on. |
skills | 46% of 100 | Only when the advertiser listed skills. |
postcode | 34% of 100 | Only when the job gives a postcode district. |
Stable fields for automations
These fields were present in every row of our test runs and their names will not change:
| Field | Meaning |
|---|---|
job_id | reed.co.uk job id |
title | Job title |
company | Advertiser: the employer or the recruitment agency |
posted_by | agency or employer |
location | Location as shown |
contract_type | permanent, contract or temporary |
hours | full_time, part_time or both |
posted_at | When the job was posted, UK time |
expires_at | Closing date, UK time |
description_short | Short description from the search results |
job_url | Job page on reed.co.uk |
search_rank | Position of the job in its search |
scraped_at | When the job was read, ISO 8601 UTC |
Output examples
Real rows from our test runs on 6 October 2026; long texts are trimmed.
A finance manager job from a direct employer with a yearly salary:
{"job_id": "57355315","title": "Finance Manager","company": "GXO Logistics","company_id": "388090","company_jobs_url": "https://www.reed.co.uk/jobs/xpo-logistics/p4259","company_logo_url": "https://resources.reed.co.uk/profileimages/logos/thumbs/Logo_4259.png","posted_by": "employer","location": "Wigan","county": "Lancashire","salary_text": "£66,000 per annum","salary_min": 66000,"salary_max": 66000,"salary_currency": "GBP","salary_period": "year","salary_hidden": false,"contract_type": "permanent","hours": "full_time, part_time","working_option": "hybrid","category": "Manager","subcategory": "Finance Manager","posted_at": "2026-09-16T18:04:17.287","updated_at": "2026-09-26T18:17:17.07","expires_at": "2026-10-28T18:04:17.463","description_short": "Do you enjoy owning the numbers and being the trusted finance voice for operations? ...","easy_apply": false,"uk_work_right_required": true,"is_promoted": true,"is_featured": true,"job_url": "https://www.reed.co.uk/jobs/finance-manager/57355315","search_keyword": "accountant","search_location": "Manchester","search_rank": 34,"scraped_at": "2026-10-05T22:15:34.525Z"}
A temporary accountant job from an agency, paid by the day:
{"job_id": "57280679","title": "Management Accountant","company": "Robert Half","posted_by": "agency","location": "Manchester","county": "Lancashire","salary_text": "£350 to £400 per day","salary_min": 350,"salary_max": 400,"salary_currency": "GBP","salary_period": "day","salary_hidden": false,"contract_type": "temporary","hours": "full_time","working_option": "on_site","category": "Accountant","subcategory": "Management Accountant","posted_at": "2026-08-26T16:17:49.617","expires_at": "2026-10-07T23:55:00","description_short": "We are recruiting for a Management Accountant to join a growing international business on a 12 month fixed-term contract. ...","easy_apply": true,"job_url": "https://www.reed.co.uk/jobs/management-accountant/57280679","search_keyword": "accountant","search_location": "Manchester","search_rank": 11}
A research analyst job in Birmingham with includeDescription on and the salary hidden by the employer (the description is trimmed here; the row holds all of it):
{"job_id": "57400156","title": "Research Analyst/Writer","company": "Chambers and Partners","posted_by": "employer","location": "Birmingham","county": "West Midlands (County)","salary_text": "Competitive salary","salary_hidden": true,"contract_type": "permanent","hours": "full_time","working_option": "hybrid","category": "Analyst","subcategory": "Research Analyst","posted_at": "2026-09-28T18:13:28","expires_at": "2026-11-09T23:55:00","job_url": "https://www.reed.co.uk/jobs/research-analyst-writer/57400156","description": "Overview Join our Insight team at Chambers and Partners as a Research Analyst/Writer. This is a hybrid position, working 2 days per week in either our London or Birmingham office.\n\nAs a Research Analyst, you will play a pivotal role in transforming commentary compiled by our research teams into ...","description_html": "Overview Join our Insight team at Chambers and Partners as a Research Analyst/Writer. ... <br /><br />As a Research Analyst, ...","salary_shown": "Competitive salary","sector": "Other Strategy & Consultancy","sector_parent": "Strategy & Consultancy","town": "Birmingham","region": "West Midlands (Region)","country": "United Kingdom","country_code": "GB","is_remote": false,"graduate": false,"job_live": true,"reed_job": false}
Pricing
Pay per event: you pay for the job rows you receive, plus a flat $0.005 per run, whatever memory you choose.
| Event | When it is charged | Free plan | Bronze (Starter) | Silver (Scale) | Gold (Business) |
|---|---|---|---|---|---|
job-scraped | Once per job row stored in your dataset | $0.40 per 1,000 | $0.40 per 1,000 | $0.40 per 1,000 | $0.40 per 1,000 |
run-start | Once per run, when it starts | $0.005 | $0.005 | $0.005 | $0.005 |
The price per single job is the price per 1,000 divided by 1,000. A job with the full description costs the same as one without.
Free plan runs return up to 10 results each; paid plans have no cap.
Never charged:
- pages the site refused, and searches the run could not read;
- searches with no results;
- a job already delivered earlier in the same run (repeated on a later page, or found by another keyword or in another location);
- with
onlyNewJobs, a job an earlier run already delivered to you; - the info row at the end of a run;
- anything past your "Max cost per run": the actor stops delivering when your limit is reached instead of sending rows for free.
FAQ
What exactly does this actor read?
reed.co.uk, the UK job site, as a visitor who is not signed in: its own search pages and, with includeDescription, its job pages. Both are rendered on the server with the job data inside them, so no browser is needed. Nothing is read behind a login, and the site's developer API (which needs a registered key) is not used.
How many jobs can I get?
Up to 5,000 per search (one keyword in one location), 25 per page; every page of a search is reachable. The site repeats its promoted jobs on each page of a search, so a deep search delivers fewer jobs than pages times 25: our deep test read 53 pages for 1,000 different warehouse jobs. For more, add keywords or locations; each is its own search.
What do I get on the free plan?
Every run on Apify's free plan returns the first 10 results, so you can check the data and the fields before you pay. A paid Apify plan returns every result, up to the limit you set.
How long does a run take?
Without descriptions, a page of 25 jobs takes about 2 to 6 seconds: 356 jobs from 4 searches took 52 seconds, and 1,000 jobs from one search took 5 minutes. With descriptions each job needs its own page, ten at a time: 100 jobs took 48 seconds.
How is the salary read?
From the site's own salary data on each job, not from the text: salary_min, salary_max, salary_period (year, day or hour) and salary_currency. salary_text puts them in words the way the site does ("£350 to £400 per day", "£66,000 per annum"), and salary_extras lists OTE, benefits, pro-rata or negotiable. When an advertiser shows only "Competitive salary", "Salary negotiable" or "Salary plus commission", salary_hidden is true, salary_text holds those words and no numbers are given: the numbers the site keeps behind those words are placeholders (10,000 to 100,000 is common), not pay.
How fresh is the data?
Every run reads the site live. posted_at is when the job was posted, updated_at its last update and expires_at its closing date, all in UK time as the site gives them. Use datePosted for recent jobs and onlyNewJobs with a schedule for alerts.
Do I need an account, cookies or a proxy?
No account, no cookies and nothing to set up. The actor reads the site over Apify's datacenter proxy. About half of those IP addresses are on reed.co.uk's block list; the actor drops a refused IP at once, keeps the ones the site lets through and reuses them. In our final test runs 36 of 212 requests (17%) met a refused IP and were sent again on another, and every search page and every job page was read in the end. Refused requests are never charged.
Agency or employer?
posted_by says whether a recruitment agency (agency) or the employer itself (employer) placed the job, and postedBy filters on it. In our Manchester and Leeds test, 77% of jobs came from agencies.
What if a job is taken down while the run reads it?
The row is still delivered with everything from the search, and description_error says the job page could not be read. In our description test all 100 of 100 pages were read.
Can I monitor new jobs over time?
Yes. Turn on onlyNewJobs, set datePosted to today, save the input as a task and add a daily schedule. Each run delivers and charges only jobs no earlier run of this actor in your account has delivered.
Which formats can I download?
JSON, CSV, Excel, XML, RSS and an HTML table, from the run's dataset in Console or through the API.
Can I use it from Claude, ChatGPT or Cursor (MCP)?
- Connector URL: https://mcp.apify.com/?tools=themineworks/reed-jobs-scraper
- Claude: Settings > Connectors > Add custom connector, paste the URL, sign in with Apify.
- ChatGPT: developer mode, add an MCP connector with the URL, sign in with Apify.
- Cursor or VS Code: add it as an HTTP MCP server with that URL.
- Claude Code:
claude mcp add -t http reed-jobs-scraper "https://mcp.apify.com/?tools=themineworks/reed-jobs-scraper"
Is it legal to scrape reed.co.uk?
The actor reads only job listings the site shows publicly to visitors who are not signed in. Job descriptions can name a recruiter or give contact details; you are responsible for how you use the data, for the site's terms and for data protection law such as the UK GDPR and the CCPA. If in doubt, ask a lawyer about your use case.
Integrations
- Google Sheets: send each run's rows to a sheet with Apify's Google Sheets integration, or import the CSV link of the dataset.
- Make, Zapier and n8n: start the actor and read its dataset with the Apify apps and nodes, for example "new contract jobs with a day rate to Slack every morning".
- Webhooks: have Apify call your URL when a run succeeds, then fetch the dataset.
- API and SDKs: run it from Python or JavaScript with the Apify client, or with a plain HTTP call (see "Copy to your AI assistant" above).
- MCP clients: Claude, ChatGPT, Cursor and VS Code can run it as a tool through the connector URL in the FAQ.
More from The Mine Works
Jobs and hiring
- Foundit Monster India Jobs
- Hirist Jobs Scraper
- India Jobs MCP
- Naukri Jobs Scraper
- Shine.com Jobs Scraper
- Internshala Scraper
- Indeed Jobs Scraper
- Instahyre Jobs Scraper
- Apna Jobs Scraper
- CutShort Jobs Scraper
- LinkedIn Jobs Scraper
- Recruiting & Jobs MCP
Social media and video
Leads and business directories
Marketing, SEO and reviews
Real estate
Science, health and government data
Company and business data
E-commerce and marketplaces
Food and local services
Developer and AI tools
More tools
Support
Found a search that should return jobs and does not? Open an issue in the Issues tab with the input and the run ID, and we will look at it. For another job site, a new source or a field you need, email dmineworks@gmail.com.
Search reed.co.uk by keyword, place, distance and every filter the site offers, and get each UK job back as a clean row with its pay read into numbers and its advertiser named.

