Reed.co.uk Scraper | Jobs, Companies, Courses & Reviews
Pricing
from $1.50 / 1,000 results
Reed.co.uk Scraper | Jobs, Companies, Courses & Reviews
Scrape Reed.co.uk jobs, companies, courses, and reviews. Search by keyword, location, filters, or URLs. Extract 80+ job fields including salary, company, GPS location, sector, contract type, skills, full description, postcode, company profile, course details, and review data.
Pricing
from $1.50 / 1,000 results
Rating
0.0
(0)
Developer
AbotAPI
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Reed.co.uk Jobs Scraper
Extract structured job data from Reed.co.uk, the UK's largest job board, at scale. Search by keyword, location, salary, distance, job type and more, or paste any Reed search or job URL. Every job comes back as a flat record with 80+ fields: salary breakdown, company, location with GPS coordinates, sector, contract type, skills, and posting dates. Turn on full details to also pull the complete job description, region/county/postcode, company profile, and screening questions.
Why this scraper
- 80+ fields per job, rising to 125+ when full details are enabled, far more than typical Reed scrapers return.
- GPS coordinates on every job resolved from the job location, so you can map and geo-filter results out of the box.
- Runs on datacenter connections by default, the cheapest tier, so a 1,000-job run costs a fraction of residential-only scrapers. Residential is used automatically as a fallback only when needed.
- Three things to scrape: jobs (by filters or pasted URLs), company profiles, and training courses with reviews.
- Full filter grammar: keyword, location, distance, salary range, posted-within, sort, job type (permanent/temporary/contract/full-time/part-time), posted-by (agency/employer), graduate, easy-apply, visa-sponsorship, early-bird.
- Fast and lightweight: no browser, low memory, concurrent detail enrichment.
- Optional export to your apps via MCP connectors (Notion, Linear, Airtable, Apify).
Data you get
Sample shape, values are illustrative placeholders, not from a live listing.
| Field | Example |
|---|---|
jobId | 00000001 |
title | Data Engineer |
url | https://www.reed.co.uk/jobs/data-engineer/00000001 |
companyName | Sample Company |
logoImage | https://resources.reed.co.uk/profileimages/logos/Logo_0000.png |
location | London |
latitude | 51.5074 |
longitude | -0.1278 |
displaySalary | £45,000 - £55,000 per annum |
salaryFrom | 45000 |
salaryTo | 55000 |
salaryCurrencyId | 1 |
salaryType | 5 |
remoteWorkingOption | On-Site |
jobType | 1 |
isFullTime | true |
isPartTime | false |
postedOn | 2026-01-01T00:00:00.000Z |
expiryOn | 2026-01-01T00:00:00.000Z |
statuses | ["Featured", "Easy Apply"] |
contractType | Permanent |
sectorName | IT & Telecoms |
region | South East England |
county | London |
postCode | EC1A |
description | Full job description text appears here when fetchDetails is on. |
companyProfileId | 0000 |
Plus salary-per-annum breakdown, parent sector, taxonomy, breadcrumbs, job-owner profile (id, url, logo, banner), screening questions, and the raw source objects (rawListData, rawDetailData).
How to use
There are three things to scrape, chosen with mode: jobs, company, or course.
Jobs by keyword search in one city (leave Job URLs empty to search by filters):
{"mode": "jobs","keywords": "data engineer","locations": ["london"],"maxListings": 20}
Jobs with filters (salary, distance, recent, newest first):
{"mode": "jobs","keywords": "software developer","locations": ["manchester"],"salaryFrom": 50000,"proximity": 20,"postedDate": "last7days","sortBy": "date","permanent": true,"fetchDetails": true,"maxListings": 100}
Jobs by pasting URLs (when Job URLs are set, the filters are ignored):
{"mode": "jobs","urls": ["https://www.reed.co.uk/jobs/accountant-jobs-in-bristol","https://www.reed.co.uk/jobs/marketing-jobs-in-london?sortby=displayDate"],"maxPages": 3,"maxListings": 200}
In Jobs mode you choose URLs vs search automatically: paste Job URLs to scrape them directly, or leave Job URLs empty and the actor builds the search from your keyword, location, and filters.
Company mode (scrape company profiles by URL or slug):
{"mode": "company","companies": ["https://www.reed.co.uk/company-profile/Marshall-Wolfe-63256","Marshall-Wolfe-63256"],"maxListings": 50}
In company mode each entry returns one record with the company sector, employee-count range, website, benefits, articles, external links, total open jobs, and a list of recent jobs (each with salary and GPS). Company slugs are case-sensitive.
Course mode (scrape training courses and their reviews):
{"mode": "course","courseQueries": ["python", "project management"],"courseUrls": ["https://www.reed.co.uk/courses/c/271655"],"fetchReviews": true,"maxReviewsPerCourse": 0,"reviewsSort": "MostRecent","maxListings": 50}
In course mode each course is returned as one record (title, provider, price, rating, study method, qualification, format, description). When fetchReviews is on, every review is returned as its own record (overall and per-category ratings, text, reviewer, date, and any provider response). courseQueries searches Reed Courses by keyword; courseUrls accepts course URLs or bare course IDs.
Send results into your apps (MCP connectors)
Optionally pipe each job into the apps you already use, with no change to the dataset output:
- Authorize a connector under Apify, Settings, API & Integrations (Notion, Linear, Airtable, or Apify).
- Select it in the
mcpConnectorsinput. For Notion, also setnotionParentPageUrl. - Run the actor. Each job is written as a condensed, human-readable summary (title plus key fields); the complete record always stays in the Apify dataset.
Leave mcpConnectors empty to skip this entirely.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | string | jobs | jobs = job listings (filters or pasted URLs); company = company profiles; course = courses + reviews. |
keywords | string | (empty) | Job search terms (jobs mode, when no Job URLs are pasted). |
locations | array | (empty) | UK cities or regions; one search per location (jobs mode). |
proximity | integer | 10 | Search radius in miles (0, 1, 3, 5, 10, 15, 20, 30, 50). |
salaryFrom | integer | (none) | Minimum salary per annum. |
salaryTo | integer | (none) | Maximum salary per annum. |
postedDate | string | anytime | anytime, today, last3days, last7days, last14days. |
sortBy | string | relevance | relevance or date (newest first). |
fullTime, partTime, permanent, temporary, contract | boolean | false | Job-type filters. |
agency, direct | boolean | false | Posted by agency / employer. |
graduate, easyApply, visaSponsorship, earlyBird | boolean | false | Extra filters. |
urls | array | (empty) | Reed job-search or job URLs (jobs mode; if set, filters are ignored). |
companies | array | (empty) | Reed company-profile URLs or slugs (company mode). |
courseQueries | array | (empty) | Course search keywords (course mode). |
courseUrls | array | (empty) | Course URLs or IDs (course mode). |
fetchReviews | boolean | true | Return course reviews as separate records (course mode). |
maxReviewsPerCourse | integer | 0 | Cap reviews per course; 0 = all (course mode). |
reviewsSort | string | MostRecent | Review order: MostRecent, RatingDesc, RatingAsc. |
fetchDetails | boolean | true | Enrich each job from its detail page. |
maxListings | integer | 20 | The result cap. The run stops at this many unique jobs. Set 0 for unlimited. |
maxPages | integer | 200 | Safety bound on result pages per search; the run stops at Max jobs first. |
maxResidentialRequests | integer | 0 | Optional residential exit budget (cost control); 0 = unlimited. |
proxy | object | Apify datacenter | Proxy configuration. |
maxListings is the single cap. maxPages is only a safety bound and does not limit below maxListings.
Output example
Sample shape, values are illustrative placeholders, not from a live listing.
{"id": 1,"jobId": 1,"url": "https://www.reed.co.uk/jobs/data-engineer/00000001","title": "Data Engineer","companyName": "Sample Company","logoImage": "https://resources.reed.co.uk/profileimages/logos/Logo_0000.png","description": "Full job description text appears here when fetchDetails is on.","skills": [],"statuses": ["Featured", "Easy Apply"],"location": "London","latitude": 51.5074,"longitude": -0.1278,"remoteWorkingOption": "On-Site","displaySalary": "£45,000 - £55,000 per annum","salaryFrom": 45000,"salaryTo": 55000,"salaryCurrencyId": 1,"salaryType": 5,"salaryTypeName": "per annum","jobType": 1,"isFullTime": true,"isPartTime": false,"postedOn": "2026-01-01T00:00:00.000Z","expiryOn": "2026-01-01T00:00:00.000Z","contractType": "Permanent","sectorName": "Other IT & Telecoms","parentSectorName": "IT & Telecoms","region": "South East England","county": "London","country": "United Kingdom","countryCode": "GB","postCode": "EC1A","companyProfileId": 0,"companyProfileUrl": "Sample-Company-0000","isEasyApply": true,"isExternal": false,"detailFetched": true}
Plan requirement
This actor runs on Apify datacenter connections by default, which works for Reed and is available on the free plan. For very large runs or under heavy load, an Apify Residential proxy (Starter plan or higher) is more reliable; the actor escalates to it automatically when datacenter results thin out. Set proxy.apifyProxyGroups: ["RESIDENTIAL"] with apifyProxyCountry: "GB" to force residential.