Reed.co.uk Jobs Scraper — UK Salaries & Full Descriptions avatar

Reed.co.uk Jobs Scraper — UK Salaries & Full Descriptions

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Reed.co.uk Jobs Scraper — UK Salaries & Full Descriptions

Reed.co.uk Jobs Scraper — UK Salaries & Full Descriptions

Scrape Reed.co.uk jobs with full descriptions, normalised UK salaries (yearly figures for hourly and daily pay), town, county, region and postcode, sector, occupation, skills and employer. Filter by keyword, location, salary, job type, remote, specialism, date.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Banea Teodor

Banea Teodor

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Reed.co.uk Jobs Scraper — UK Salaries, Full Descriptions & Structured Locations

What does Reed.co.uk Jobs Scraper do?

Reed.co.uk Jobs Scraper extracts job listings from Reed.co.uk, one of the UK's largest job boards with about 100,000 live jobs. Search by keywords, location and filters, paste Reed search URLs, or fetch specific job pages. Each row has the full job description (plain text and clean HTML), a normalised salary (amounts, pay period and Reed's yearly figure for hourly and daily rates), a structured UK location (town, county, region, nation, postcode district), the occupation and sector taxonomy, skills, contract type, working hours, remote / hybrid / on-site, the employer or agency and how to apply. No login, no browser.

Why use this Actor?

  • Complete rows. The full description, skills, sector and specialism, Reed's three-level occupation taxonomy, recruiter type, graduate flag, posting / update / expiry dates — not just the search card. Every row has the same 60 fields, with null or [] when Reed has no value.
  • Salaries you can compare. Hourly, daily and yearly pay come with the pay period and Reed's yearly equivalent (salaryYearlyMin / salaryYearlyMax), plus flags for negotiable, competitive, OTE, pro-rata, commission-only and benefits. Hidden pay ("Competitive salary") is never turned into a fake number.
  • Clean, structured UK locations. Town, county, region (e.g. "South East England"), nation (England, Scotland, Wales, Northern Ireland) and postcode district, plus remote / hybrid / on-site.
  • Filters that cost nothing. Keywords, location and radius, salary range, job type, full / part time, remote / hybrid / on-site, posting date, specialism, agency or employer, salary shown, graduate, visa sponsorship and Easy Apply are applied by Reed's own search. You only pay for the jobs you get.
  • Beyond Reed's 10,000-result limit. Reed shows at most 10,000 jobs per search. Larger searches (all of London, all of the UK) are split by specialism and job type automatically.
  • Nothing lost to Reed's shuffling. Reed reorders keyword results between page loads, so reading the pages once misses a few percent of jobs. The Actor notices the gap and re-reads the result pages until every job is collected.
  • Built for scheduled feeds. Set Posted within to match your schedule and every run returns the recently posted jobs of your search.

How much does it cost?

You pay a small fee per run plus a price per 1,000 jobs returned (see the Pricing tab). Platform usage and proxy are included.

RunJobs
20 "python developer" jobs in London (the prefilled input)20
Permanent hybrid nurse jobs from £30,000 posted in the last week~5–200
Every job in Manchester (10 miles)~6,500
Daily run for one keyword + location (posted in the last 3 days)~10–300 per day

Turning off Include full job details makes runs about 6× faster and lighter (25 jobs per request instead of one).

Input

FieldDescriptionExample
modesearch (keywords + location + filters, default), jobUrls (job pages or job ids) or searchUrls (Reed search page URLs)"search"
keywordsKeywords as in Reed's search box"python developer"
locationUK town, county, region or postcode (district or full)"Manchester", "SW1A 1AA"
distanceMilesRadius around the location: 0, 1, 3, 5, 10 (default), 15, 20, 30, 50"20"
maxResultsJobs to return. 0 = all matches (capped at 10,000 without any keyword, location or filter)100
salaryFrom / salaryToYearly pay range in GBP. Reed compares its yearly figure, so hourly (× 1,950) and daily (× 260) rates match too; a job matches the minimum when the top of its range reaches it30000
jobTypespermanent, contract, temporary["permanent"]
workingHoursfullTime, partTime["partTime"]
workingOptionany (default), onSite, hybrid, remote — one at a time (Reed's search takes one)"hybrid"
postedWithinanytime (default), today, lastthreedays, lastweek, lasttwoweeks"lastweek"
specialismsReed specialism ids — pick them from the list in the input form (52 = IT & Telecoms, 68 = Education, 36 = Health & Medicine…)["52"]
postedByany (default), agency, employer"employer"
onlyWithSalary, graduateOnly, visaSponsorshipOnly, easyApplyOnlyExtra filters, off by defaulttrue
hideTrainingCoursesLeave out training-course adverts Reed lists among jobs (default on)false
jobUrlsJob page URLs or bare job ids (jobUrls mode)["https://www.reed.co.uk/jobs/software-engineer/57462273", "57418395"]
searchUrlsReed search page URLs with any filters (searchUrls mode)[{"url": "https://www.reed.co.uk/jobs/nurse-jobs-in-leeds?salaryFrom=30000"}]
includeDetailsOpen every job page for the full description and details (default on). Off = lighter rows from the search resultsfalse
{
"keywords": "nurse",
"location": "Leeds",
"distanceMiles": "20",
"salaryFrom": 30000,
"jobTypes": ["permanent"],
"postedWithin": "lastweek",
"maxResults": 200
}

Output

One row per job. Every row has every field; missing values are null or [].

{
"jobId": "57462273",
"title": "Software Engineer (Python and AI Solutions)",
"url": "https://www.reed.co.uk/jobs/software-engineer-python-and-ai-solutions/57462273",
"companyName": "University of the Built Environment",
"companyId": "4481",
"companyUrl": "https://www.reed.co.uk/jobs/the-college-of-estate-management/p4481",
"companyLogoUrl": "https://resources.reed.co.uk/profileimages/logos/thumbs/Logo_4481.png",
"postedBy": "employer",
"recruiterType": "Charity/not for profit",
"contractType": "permanent",
"contractTypeText": "Permanent",
"isFullTime": true,
"isPartTime": false,
"knowledgeDomain": "Information Technology",
"professionCategory": "Engineer",
"professionName": "Software Engineer",
"sector": "Higher Education",
"sectorParent": "Education",
"skills": [],
"isGraduate": false,
"isTrainingJob": false,
"isEasyApply": false,
"applyMethod": "external",
"eligibleUkOnly": true,
"isFeatured": true,
"isPromoted": true,
"isEarlyBird": false,
"city": "Reading",
"state": "Berkshire",
"region": "South East England",
"country": "United Kingdom",
"countryPart": "England",
"countryCode": "GB",
"postalCode": "RG1",
"locationText": "Reading, Berkshire",
"remote": "hybrid",
"remoteText": "Hybrid",
"salaryMin": 40000,
"salaryMax": 45000,
"salaryCurrency": "GBP",
"salaryPeriod": "year",
"salaryYearlyMin": 40000,
"salaryYearlyMax": 45000,
"salaryText": "£40,000 - £45,000 per annum",
"salaryIsNegotiable": false,
"salaryIsCompetitive": false,
"salaryIsCommissionOnly": false,
"salaryIsOte": false,
"salaryIsProRata": false,
"salaryIncludesBenefits": false,
"summary": "Software Engineer (Python and AI Solutions) Full time (35 hrs/wk), permanent Split place of work between Horizons (Reading, Berkshire) and Home Salary range 40,000 to 45,000 pa plus benefits…",
"description": "Software Engineer (Python and AI Solutions)\n\nFull time (35 hrs/wk), permanent\n\nSplit place of work between Horizons (Reading, Berkshire) and Home…",
"descriptionHtml": "<p><strong>Software Engineer (Python and AI Solutions)</strong></p><p><strong>Full time (35 hrs/wk), permanent</strong></p>…",
"postedAt": "2026-10-15T12:46:28.233Z",
"createdAt": "2026-10-15T12:46:28.237Z",
"updatedAt": "2026-10-19T12:47:17.277Z",
"expiresAt": "2026-10-28T23:59:59.000Z",
"isLive": true,
"detailsScraped": true,
"scrapedAt": "2026-10-20T08:00:00.000Z"
}
FieldNotes
jobIdReed's job id, stable across runs. Use it to deduplicate.
companyName / companyId / companyUrlThe poster: an employer or a recruitment agency (postedBy). Agencies do not name their client. companyId is the number of the poster's Reed page; posters without a Reed profile have companyId: null.
salary*salaryMin / salaryMax in salaryCurrency (GBP for almost every job; EUR, USD, AUD or AED for some jobs abroad) per salaryPeriod (hour, day, week, month, year). salaryYearlyMin / salaryYearlyMax are Reed's yearly figures in GBP (hourly × 1,950, daily × 260; other currencies converted by Reed) — the numbers Reed's salary filter compares; without job details they are only filled for GBP salaries. When the employer hides the pay ("Competitive salary", "Salary negotiable", "Commission only") the amounts are null and the matching flag is true.
knowledgeDomain / professionCategory / professionNameReed's occupation taxonomy, e.g. Information Technology › Engineer › Software Engineer.
sector / sectorParentThe sector the job is filed under and its Reed specialism.
city / state / region / countryPart / postalCodeTown, county, UK region, nation and postcode district. Region, nation and postcode come from the job page; the postcode district is published for about a third of jobs.
remoteonsite, hybrid or remote.
applyMethodeasyApply (one click on Reed), reed (Reed's application form) or external (the employer's site). The employer's own application link is only revealed inside Reed's application flow, which the Actor never enters.
postedAtThe date Reed shows as posted (moves when a job is re-posted); createdAt is the first creation. All times are UTC (Reed stores most times in UTC and those of job feeds in UK time; both are converted).
detailsScrapedfalse when Include full job details is off, or when a job page could not be read (the row then has the search-result fields and the job is listed in ERRORS).

Fields that need the job page (full description, skills, sector, region, nation, postcode, recruiter type, graduate flag, apply method other than Easy Apply) are null / [] with Include full job details off.

Problems

Jobs that could not be read — expired job URLs, invalid URLs, jobs delivered without details — are listed in the run's key-value store under ERRORS with the public job or search page and a reason. The run's status message summarises any shortfall.

Tips and tricks

  • Scheduling: set Posted within (postedWithin) to match the schedule interval with a little overlap — lastthreedays for a daily run, lasttwoweeks for a weekly one — so each run only reads recently posted jobs. Rows are unique within a run; consecutive runs overlap, so drop repeats downstream by jobId. Reed's date filter uses the date a job was created, so a job that goes live days later can fall outside a short window; an occasional run with anytime catches it.
  • Large searches: "All jobs in London" (~23,000) or the whole UK (~100,000) are split automatically. A few dozen jobs sit in a sector Reed's specialism filter cannot select, so a split search cannot reach them; the run's status says how many.
  • Remote and hybrid together: Reed's search takes one working option at a time, so run once with hybrid and once with remote (or leave it on any and filter on the remote column).
  • Order: keyword searches come in Reed's relevance order, location-only searches newest first. Reed offers no other sort order.
  • Speed: with job details the Actor reads about 4–5 jobs per second (about 15,000 per hour); without them about 25–30 per second. For more than ~12,000 jobs with details, raise the run timeout above the default hour (Run options → Timeout); more memory (2 GB) makes it about 40% faster.

Integrations

Export the dataset as JSON, CSV, Excel or XML, or connect it to Google Sheets, Slack, Zapier, Make or your own code through the Apify API and integrations. A scheduled task with Posted within set to match its interval turns the Actor into a daily feed of new Reed jobs (drop repeats by jobId).