Reed.co.uk Scraper
Pricing
from $1.50 / 1,000 results
Reed.co.uk Scraper
Scrape reed.co.uk for structured UK job data: titles, employers, salary ranges, locations & full descriptions (HTML, text, Markdown). 250,000+ listings with employment type, keyword and location filters. Repost detection & daysOld filtering. No API key required.
Pricing
from $1.50 / 1,000 results
Rating
0.0
(0)
Developer
Unfenced Group
Actor stats
1
Bookmarked
5
Total users
3
Monthly active users
44 minutes ago
Last modified
Categories
Share

Scrape structured job listings from Reed.co.uk — United Kingdom. 250,000+ active listings. No API key required.
Why this scraper?
🇬🇧 UK's largest job board — 250,000+ listings
Reed.co.uk is the UK's number one job site, covering every sector from finance and tech to retail and healthcare.
📄 Full job descriptions via JSON-LD
Descriptions sourced from Reed's structured JSON-LD data — highly reliable and consistently formatted.
💰 Structured GBP salary data
Salary ranges parsed into salaryMin, salaryMax, salaryPeriod (YEAR/MONTH/DAY/HOUR) in GBP.
🔎 Advanced filtering
Filter by contract type (permanent, contract, temp), full/part-time, salary band, and posting recency.
🔄 Repost detection
Cross-run deduplication with a 90-day TTL. Use skipReposts: true for new-only feeds.
⚙️ No API key required
Runs without any Reed API credentials.
Input parameters
| Parameter | Type | Description | Default |
|---|---|---|---|
keywords | string | Job title, keyword, or skill to search for. | — |
locationName | string | City, town, or region to search in. Leave empty for all. | — |
distanceFromLocation | integer | Distance in miles from the specified location. | 10 |
contractType | string | Contract type filter (e.g. permanent, contract, temporary). | — |
partTime | boolean | Filter for part-time positions only. | false |
fullTime | boolean | Filter for full-time positions only. | false |
minimumSalary | string | Minimum salary filter (in GBP/year for Reed). | — |
maximumSalary | integer | Maximum salary filter (in GBP/year for Reed). | 100 |
graduate | boolean | Filter for graduate-level positions. | false |
postedByRecruitmentAgency | boolean | Filter for agency-posted listings only. | false |
daysOld | integer | Only return listings published within the last N days. | — |
maxResults | integer | Maximum number of results to return. | 5 |
fetchDetails | boolean | Fetch full job description from each listing detail page. Disable for faster list-only results. | true |
skipReposts | boolean | Skip listings already seen in previous runs (90-day deduplication window). | false |
startUrls | array | List of specific URLs to scrape. Bypasses the search input. | — |
Output schema
Each result contains the following fields.
Always present:
| Field | Type | Description |
|---|---|---|
id | string | Unique job listing ID from the source platform. |
url | string | Direct URL to the job listing. |
title | string | Job title as published. |
company | string | Employer / company name. |
location | string | Full location string as published. |
city | string | City of the work location. |
country | string | Country code (ISO 3166-1 alpha-2). |
contractType | string | Contract type (permanent, contract, temporary, etc.). |
workSchedule | string | Work schedule (full-time, part-time, etc.). |
salaryMin | number | Minimum salary (null if not published by employer). |
salaryMax | number | Maximum salary (null if not published by employer). |
salaryCurrency | string | ISO 4217 currency code (null if no salary published). |
salaryPeriod | string | Salary period: YEAR / MONTH / WEEK / DAY / HOUR. |
publishDate | string | Publication date (YYYY-MM-DD). |
publishDateISO | string | Publication date in ISO 8601 format. |
source | string | Source domain name. |
scrapedAt | string | ISO 8601 timestamp of when this item was scraped. |
contentHash | string | MD5 hash of key fields for change detection (16 chars). |
summary | string | Human-readable one-line summary of the listing. |
changeStatus | string | Change status: NEW / MODIFIED / UNCHANGED. |
isRepost | boolean | True if this listing was seen in a previous run (90-day window). |
originalPublishDate | string | Original publish date if this is a repost (null otherwise). |
originalUrl | string | Original URL if this is a repost (null otherwise). |
locationFull | string | Full location string including region. |
recruiterType | string | Whether posted by a direct employer or recruitment agency. |
expiryDate | string | Listing expiry date (ISO 8601, null if not available). |
With fetchDetails: true (default):
| Field | Type | Description |
|---|---|---|
descriptionHtml | string | Full job description as raw HTML (null if fetchDetails is false). |
descriptionText | string | Full job description as plain text (null if fetchDetails is false). |
descriptionMarkdown | string | Full job description in Markdown format (null if fetchDetails is false). |
applyUrl | string | Direct application URL or Reed's apply page URL. |
Example output record:
{"id": "123456","url": "https://www.reed.co.uk/jobs/senior-developer/123456","title": "Senior Data Analyst","company": "HSBC","location": "London","city": "London","country": "GB","contractType": "Permanent","workSchedule": "Full-time","salaryMin": 45000,"salaryMax": 60750,"salaryCurrency": "GBP","salaryPeriod": "YEAR","publishDate": "2026-04-15","publishDateISO": "2026-04-15","source": "reed.co.uk","scrapedAt": "2026-04-24T09:00:00.000Z","contentHash": "a3f1b2c4d5e67890","summary": "Senior Data Analyst · HSBC · London","changeStatus": "NEW","isRepost": false,"originalPublishDate": null,"originalUrl": null,"locationFull": null,"recruiterType": null,"expiryDate": null,"descriptionHtml": "<p>We are looking for an experienced professional to join our growing team...</p>","descriptionText": "We are looking for an experienced professional to join our growing team...","descriptionMarkdown": "We are looking for an experienced professional to join our growing team...","applyUrl": null}
Examples
1 — Search for Senior Data Analyst roles in London
{"keywords": "data analyst","locationName": "London","maxResults": 100}
2 — Filter by contract type — permanent positions only
{"keywords": "","contractType": "permanent","maxResults": 200}
3 — Scrape a specific search page directly via startUrls
{"startUrls": [{"url": "https://www.reed.co.uk/jobs?q=data+analyst"}],"maxResults": 50}
4 — Daily feed — new listings only, past 24 hours, no reposts
{"keywords": "","fetchDetails": false,"daysOld": 1,"skipReposts": true,"maxResults": 1000}
💰 Pricing
$1.50 per 1,000 results — you only pay for successfully retrieved listings. Failed retries and filtered reposts are never charged.
| Results | Cost |
|---|---|
| 100 | ~$0.15 |
| 1,000 | ~$1.50 |
| 10,000 | ~$15.00 |
| 100,000 | ~$150.00 |
Flat-rate alternatives typically charge $29–$49/month regardless of usage.
Use the Max results cap in the input to control your spend exactly.
Performance
| Run size | Approx. time |
|---|---|
| 100 listings | ~2 min |
| 1,000 listings | ~15 min |
| 10,000 listings | ~2.5 hours |
Known limitations
- Salary: Listings marked 'Competitive' have
nullsalary fields. - Pagination cap: Reed returns max ~1,000 results per search. Use
startUrlswith targeted queries for more coverage. - fetchDetails: Setting
fetchDetails: falsereturns list-page fields only.
Technical details
- Source: reed.co.uk — United Kingdom's job market
- Memory: 256 MB
- Repost storage: KeyValueStore
reed-co-uk-job-dedup, 90-day TTL - Retry: Automatic retry on network errors, exponential backoff, 3 attempts per request
Additional services
Need a custom actor, additional filters, scheduled runs, or integration support? Send an email to info@unfencedgroup.nl — we build on request.
Part of the Unfenced Group European job board scraper portfolio — 50+ job markets covered. Built by unfenced-group · Issues? Open a ticket or send a message.