Reed Jobs Scraper: UK Jobs and Salaries from reed.co.uk avatar

Reed Jobs Scraper: UK Jobs and Salaries from reed.co.uk

Pricing

from $0.40 / 1,000 jobs

Go to Apify Store
Reed Jobs Scraper: UK Jobs and Salaries from reed.co.uk

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

The Mine Works

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

10 days ago

Last modified

Share

356 reed.co.uk jobs from Manchester and Leeds in 52 seconds

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_max and salary_period (year, day or hour) 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.

Run it on Apify

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 includeDescription for 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

ParameterTypeDefaultWhat it does
keywordsarray 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.
locationsarray of stringsemptyTowns, cities, counties or postcodes, one per line. Each is its own search within distanceMiles. Empty means the whole UK.
distanceMilesinteger100, 1, 3, 5, 10, 15, 20, 30 or 50 miles (the site's own choices; other numbers go to the nearest).
salaryMinintegernoneSalary from, in GBP a year, as on the site's filter.
salaryMaxintegernoneSalary up to, in GBP a year.
contractTypesarrayanyAny of permanent, contract, temporary.
hoursarrayanyAny of full_time, part_time.
workingOptionstringanyon_site, hybrid or remote.
datePostedstringanytimetoday, last_3_days, last_week or last_2_weeks.
postedBystringanyoneagency (recruitment agencies) or employer (direct employers).
graduateOnlybooleanfalseOnly graduate jobs.
easyApplyOnlybooleanfalseOnly jobs with the site's easy apply.
visaSponsorshipOnlybooleanfalseOnly jobs offering visa sponsorship.
salaryShownOnlybooleanfalseLeave out jobs that do not show a salary.
hideTrainingCoursesbooleantrueLeave out the paid training course listings the site mixes into results.
maxJobsinteger100Upper limit per search (one keyword in one location), 25 to 5,000.
includeDescriptionbooleanfalseAdds the full description and the job page fields. One extra page per job.
onlyNewJobsbooleanfalseSkips 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):

FieldFilledWhy not always
job_id, title, company, posted_by, location, contract_type, hours, posted_at, expires_at, description_short, job_url100%
salary_text, salary_hidden100% (99% in the deep test)salary_text holds the words when the figures are hidden; a job with no pay at all has neither.
category97%A few jobs have no category.
working_option, county95%A few jobs give neither.
company_logo_url91%Not every advertiser uploads a logo.
salary_min, salary_max, salary_period85%The rest hide their pay (14%) or give none.
subcategory85%
salary_extras8%Only OTE, benefits, pro-rata or negotiable pay.
external_url0%Only for the rare job that redirects off reed.co.uk.
description, salary_shown, sector, town, region, country100% of 100With includeDescription on.
skills46% of 100Only when the advertiser listed skills.
postcode34% of 100Only 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:

FieldMeaning
job_idreed.co.uk job id
titleJob title
companyAdvertiser: the employer or the recruitment agency
posted_byagency or employer
locationLocation as shown
contract_typepermanent, contract or temporary
hoursfull_time, part_time or both
posted_atWhen the job was posted, UK time
expires_atClosing date, UK time
description_shortShort description from the search results
job_urlJob page on reed.co.uk
search_rankPosition of the job in its search
scraped_atWhen 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.

EventWhen it is chargedFree planBronze (Starter)Silver (Scale)Gold (Business)
job-scrapedOnce 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-startOnce 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"

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

Social media and video

Leads and business directories

Marketing, SEO and reviews

LinkedIn

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.