Reed Jobs Scraper avatar

Reed Jobs Scraper

Pricing

from $1.80 / 1,000 jobs

Go to Apify Store
Reed Jobs Scraper

Reed Jobs Scraper

Search and export UK job vacancies from Reed with employer, location, contract type and salary, including an annualised figure so hourly and salaried roles can be compared.

Pricing

from $1.80 / 1,000 jobs

Rating

0.0

(0)

Developer

丂卩ㄖㄖҜㄚ

丂卩ㄖㄖҜㄚ

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Export UK job vacancies from Reed, one of the largest job boards in the UK, with salary, employer, location and applicant counts on every result.

🔍 What does Reed Jobs Scraper do?

It runs a job search against Reed and returns every vacancy it finds as a clean row of data, ready for a spreadsheet, a database or your own product.

It talks to Reed's official API rather than scraping the site, because the site cannot be paged. reed.co.uk accepts a pageno parameter and echoes it back, then serves the same 25 jobs for every page, so a search Reed reported as 352 matches yielded 25 rows. The API returned all 304 of that same search.

You do not need a key. One is built in. Supply your own free key from reed.co.uk/developers through the reedApiKey input if you would rather the requests ran against your own account.

📊 What data can I extract from Reed?

One item per job:

FieldDescription
jobId, title, urlReed job id, title and direct link
employer, employerIdHiring organisation
postedByEmployer or Recruitment agency
locationWhere the job is
salaryFrom, salaryTo, salaryCurrencyPay as published, in the period below
salaryPeriodHourly, Daily, Weekly, Monthly or Annual
salaryAnnualisedFrom, salaryAnnualisedToReed's own annual equivalent so hourly, daily and annual roles can be compared in one column
hasSalaryFalse when the listing hides pay, useful for filtering
jobTypePermanent, Contract or Temporary
isFullTime, isPartTimeHours
applicationsHow many people have already applied
descriptionSnippet, descriptionOpening of the job description, and the full text when fetchDetails is on
datePosted, expiryDateTimestamps in UTC
externalUrlWhere the application goes when it leaves Reed
searchKeywords, searchLocationThe search that produced the row
retrievedAtRetrieval timestamp

All timestamps are normalised to UTC. Reed publishes them without a timezone, so a naive parse shifts them by wherever the code happens to run.

💡 Why scrape Reed?

Recruiters and agencies. Track competing listings, salary levels and which employers are hiring.

Market and salary research. Build salary benchmarks by role, sector and region from published ranges.

Job aggregators and boards. Feed listings into your own product.

Jobseeker tools. Power alerts and matching with structured, deduplicated data.

🚀 How do I use Reed Jobs Scraper?

  1. Click Try for free.
  2. Enter what you are searching for and where, for example warehouse in Manchester.
  3. Narrow it with proximityMiles, a salary range, contract type or datePosted.
  4. Cap the run with maxResults, then click Start.
  5. Download the results as JSON, CSV or Excel, or pull them from the API.

⬇️ Input

{
"keywords": "warehouse",
"location": "Manchester",
"proximityMiles": 20,
"maxResults": 100
}

Set at least one of keywords or location.

FieldTypeDefaultWhat it does
keywordsstringsoftware developerJob title or keywords
locationstringlondonTown, city or county
proximityMilesinteger10How far from that location to search
salaryFromintegerSalary floor filter in GBP
salaryTointegerSalary ceiling filter in GBP
datePostedstringanytimeAny time, today, last 3 days, last week or last month
permanent, contract, temporarybooleanfalseRestrict by contract type
fullTime, partTimebooleanfalseRestrict by hours
graduatebooleanfalseGraduate roles only
fetchDetailsbooleantrueAdd salary period, annualised pay, contract type and the full description
reedApiKeystringOptional, run the requests against your own free Reed key
maxResultsinteger100Hard cap on billable results

⬆️ Output

Table view

Results arrive as a table you can sort and filter in the Console. There is a second view, Salary detail, that lines up the period and the annualised figures for comparing listings against each other.

JSON

A typical row:

{
"title": "Warehouse Operative",
"employer": "Best Food Logistics",
"postedBy": "Employer",
"location": "Oldham",
"salaryFrom": 13.5,
"salaryTo": 13.5,
"applications": 379,
"datePosted": "2026-06-19T00:00:00.000Z",
"url": "https://www.reed.co.uk/jobs/warehouse-operative/57036090",
"jobId": 57036090
}

Download it from the run as JSON, CSV or Excel, or read it straight from the API.

How many jobs one search returns

Up to 1000 per search, in pages of 100, which is Reed's own API limit. A search for warehouse work within 20 miles of Manchester returns just over 300 and takes about 15 seconds.

Reed reports a total match count that is considerably larger than the number of distinct jobs it will actually serve, and it repeats listings across pages. This Actor deduplicates by job id and stops once pages stop producing anything new, so you get the real unique set rather than a padded one. Expect fewer results than the headline count Reed displays.

Fields, and what the API does not carry

fetchDetails is on by default and adds the salary period, Reed's own annualised salary, contract type, full or part time, and the complete job description rather than a snippet. It costs one extra request per job, which is fast enough to be worth it in almost every case. Turn it off for a quicker, cheaper run when a title and a link are all you need.

The annualised figures come from Reed rather than being calculated here. Reed knows the contracted hours behind an hourly rate and this actor does not, so multiplying a rate out would be a guess dressed up as a number.

Moving to the API dropped six fields that were only ever available by scraping the page markup: county, sector, subSector, remoteOption, isEasyApply and eligibleUkOnly. isPromoted and dateUpdated went with them. Reed's API does not expose any of them. In exchange every row now carries applications, the number of people who have already applied, which is the most useful competition signal on the listing.

includePromoted is kept in the input so existing saved configurations stay valid, but it no longer does anything.

💰 How much does it cost?

You pay per job returned. Duplicates are removed before charging, so a listing Reed repeats across pages is charged once. Set maxResults to cap what a run can cost.

Runs that return nothing cost nothing. Paid Apify plans get a lower rate per job.

🔌 Integrations

Send results straight to Google Sheets, Slack, Airtable, Zapier, Make or your own webhook using Apify integrations. You can also trigger a run whenever something happens in another tool.

🔗 Using Reed Jobs Scraper with the Apify API

curl -X POST "https://api.apify.com/v2/acts/spookyweb~uk-jobs-reed/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keywords": "warehouse", "location": "Manchester", "proximityMiles": 20, "maxResults": 100}'

Or with the Apify client:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('spookyweb/uk-jobs-reed').call({
keywords: 'warehouse',
location: 'Manchester',
proximityMiles: 20,
maxResults: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Full detail is in the Apify API reference, and every run is also callable from the Python and JavaScript clients.

❓ FAQ

Do I need my own Reed API key?

No, one is built in and the Actor works out of the box. There is an optional reedApiKey input if you would rather the requests ran against your own free key from reed.co.uk/developers.

Up to 1000 per search, fetched in pages of 100, which is Reed's own API limit. Reed's headline match count is larger than the number of distinct jobs it will serve, so expect fewer unique rows than the site advertises. To cover more of a market, run several narrower searches split by town or by job title.

What does the applicant count tell me?

applications is how many people have already applied through Reed. It is the clearest competition signal on a listing: a role posted three days ago with 400 applications is a different proposition from one posted the same day with 4.

What is the difference between an employer and an agency listing?

postedBy says which. An Employer listing comes from the hiring organisation directly. A Recruitment agency listing is placed by an intermediary, and the same underlying vacancy can appear more than once through different agencies.

What does fetchDetails add?

The salary period, Reed's own annualised salary figures, the contract type, whether the role is full or part time, and the complete job description rather than a snippet. It costs one extra request per job. Turn it off when a title and a link are all you need.

Why use Reed's API rather than scraping the site?

Because the site cannot be paged. reed.co.uk accepts a pageno parameter and echoes it back, then serves the same 25 jobs for every page. A search Reed reported as 352 matches yielded 25 rows that way. The API returned all 304 of the same search.

This uses Reed's official public API, the documented one Reed provides for exactly this purpose, rather than scraping their website. Job adverts are business information published by employers, not personal data about individuals.

Scraping publicly available data is legal in the UK, the EU and the US. If you go on to combine this data with personal data, that is on you to handle under GDPR. Apify's ethical scraping guide covers the wider picture.

👍 Your feedback

Found a bug, or want a field that is not here yet? Open an issue on the Actor's Issues tab. Requests that make the data more useful get built, and problems get fixed quickly.

🔎 You might also like

ActorWhat it does
Indeed Jobs ScraperIndeed listings with parsed salary figures, past the 15 job sign in wall
LinkedIn Jobs ScraperLinkedIn jobs with company enrichment and CV keyword matching, no login needed
Totaljobs ScraperUK jobs from Totaljobs with duplicate agency repostings removed