Reed Jobs Scraper - UK Salaries, Remote & Expiry avatar

Reed Jobs Scraper - UK Salaries, Remote & Expiry

Pricing

from $3.65 / 1,000 job returneds

Go to Apify Store
Reed Jobs Scraper - UK Salaries, Remote & Expiry

Reed Jobs Scraper - UK Salaries, Remote & Expiry

Every job on Reed.co.uk with the salary as two numbers and its real period - per hour, per day or per annum, each confirmed against what the page shows, never guessed. Plus employer, county, remote option, posted and expiry dates. A search with no results says so and is never charged. Unofficial.

Pricing

from $3.65 / 1,000 job returneds

Rating

0.0

(0)

Developer

NeverEmpty

NeverEmpty

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

9 hours ago

Last modified

Share

Pull jobs from Reed.co.uk with the salary as two numbers and its real period - per hour, per day or per annum - plus the employer, the county, the remote-working option, the date it was posted and the date it expires.

Unofficial. This Actor is not affiliated with, endorsed by, or sponsored by Reed. All product names are trademarks of their respective owners.

No API key. Reads the same public listing pages a visitor sees.


Why this one is different

The salary period is confirmed, not guessed

Reed publishes the salary period as a number, not a word: salaryType: 5. Getting that wrong turns a £600 day rate into a £600 salary.

So each code was checked against what the page itself prints, on live listings:

codepage showsexample
1per hour£20 - £28 per hour
2per day£600 - £625 per day
5per annum£80,000 - £100,000 per annum

Codes that were not seen on a live page are left as salaryPeriod: null - the raw salaryTypeCode is always kept so you can check it yourself. A guess that reads well is worse than an honest null.

A city filter that actually filters

Reed accepts three URL shapes for a city. Measured on 2026-09-03 for developer (3,174 jobs):

shaperesult
/jobs/developer-jobs-in-london1,159 jobs, every location in London
/jobs/developer-jobs/londonHTTP 200, 23 of 25 results identical to the unfiltered list ⚠️
?location=londonHTTP 200, total unchanged at 3,174 ⚠️

This Actor only ever builds the first one. The other two look like they work.

The same job is never charged twice

Reed repeats jobs across pages (measured: 1 of 25 on page 2 was already on page 1) and also shows some of them in its promoted slots. Job ids are tracked across the whole run, so a repeat is dropped rather than delivered again.

Promoted jobs are not added on top - they are already in the results. You get an isPromoted flag instead, so you can see why a job sits high in the list.

An empty search is an answer, not a failure

A keyword Reed has no jobs for returns one no-results row saying so, and it is not charged. A page that could not be read at all is a different row (unreadable) with the HTTP status. You always know which of the two you got.


Input

FieldTypeDefaultDescription
keywordstringdevelopere.g. software engineer, accountant, nurse
citystringe.g. london, manchester, milton keynes
remoteOnlybooleanfalseMeasured: narrows developer 3,174 → 493
maxJobsinteger251-1000. One job = one row = one charged event
maxPagesinteger0Safety cap. 0 = decide from maxJobs (25 per page)
keywordsarrayKeep only jobs containing one of these words
keywordMatchstringanyany or all
excludeKeywordsarrayDrop jobs containing one of these
companyNamesarrayKeep only these employers (partial match)
minSalaryinteger0A job with no published salary is kept
requireSalarybooleanfalseDrop jobs where the employer hid the salary
postedWithinDaysinteger00 = no limit. An unreadable date is kept
monitoringModebooleanfalseReturn only jobs not returned on a previous run
resetMonitoringStatebooleanfalseOne-shot: forget what was already returned

Filters are applied before you are charged

The filters narrow the jobs already read - nothing extra is fetched from Reed - and a job that does not match is never delivered and never charged. If a search returns jobs but none match your filters you get one unpaid row saying exactly that (no-filter-match), so you can tell "the filter was too tight" apart from "Reed has nothing".

Two of them refuse to guess: a job with no published salary is kept by minSalary (an unknown salary is not a low one), and a job with an unreadable posted date is kept by postedWithinDays. Turn on requireSalary to drop the unknowns.

Monitoring mode turns this into a daily feed

Schedule it with monitoringMode: true and each run returns only the jobs it has not returned before. The first run returns everything and remembers it. Jobs read but filtered out are remembered too, so changing a filter later does not resurrect them as false "new" postings.

The minimal call is an empty input: 25 developer jobs.


Output columns

ColumnExample
jobId57205785
urlthe job page on Reed
titleSenior Developer - London
employerNorton Rose Fulbright LLP
location / countyNewcastle Upon Tyne / Tyne and Wear
salaryFrom / salaryTo35000 / 45000
salaryPeriodyear, day, hour - or null when the code is not confirmed
salaryTypeCodeReed's raw code, always kept
salaryCurrencyGBP
remoteWorkingOptionHybrid
isFullTime / isPartTimetrue / false
datePosted / dateUpdated / expiryDate2026-08-06T14:19:58 / … / 2026-10-05T23:55:00
category / subCategoryDeveloper / …
isPromotedtrue when Reed also shows it in a promoted slot
isEasyApply / ukOnlytrue / false
descriptionSnippetthe summary Reed shows in the listing
status / noteonly on rows that carry no job, with the reason

Measured, not estimated

Checked against the live site on 2026-09-03:

  • developer returns 3,174 jobs, 25 per page.
  • Salary codes 1 / 2 / 5 confirmed against the printed "per hour" / "per day" / "per annum" on real listings.
  • City filter: -in-london → 1,159 jobs; the two other shapes Reed accepts do not filter at all.
  • Remote filter: 3,174 → 493.
  • Page 2 shares 1 job with page 1 - that is why ids are tracked across the run.
  • A keyword with no jobs returns 0 results cleanly (not an error).
  • https://www.reed.co.uk/robots.txt explicitly allows AnthropicBot, GPTBot and PerplexityBot; the listing pages are not in its Disallow list.

The Actor ships with 13 checks run against saved copies of two real result pages, and a mutation suite of 15 deliberate breakages - all 15 are caught.


Typical uses

  • Benchmark UK salaries by role, city and contract type - the numbers and their period are already parsed.
  • Track contract day rates separately from permanent salaries (the period tells you which is which).
  • Watch a keyword and city for new postings, using datePosted and expiryDate to keep the list current.
  • Feed a job board or a newsletter with fresh UK roles and their employer already attached.

Notes and limits

  • Reed lists UK jobs. Salaries are in GBP.
  • descriptionSnippet is the summary Reed shows in the listing, not the full advert body.
  • Some listings publish no salary at all; those rows carry null, never 0.

Other tools by NeverEmpty

Support

Found a row that looks wrong? Open an issue on the Actor page with the url from the row - salaryTypeCode is kept precisely so a salary can be checked against the page.