# Reed.co.uk Jobs Scraper - UK Job Listings (`parseforge/reed-co-uk-scraper`) Actor

Scrape UK jobs from Reed.co.uk by keyword, location, salary, sector, contract type, remote option or date posted. Returns title, employer, salary, full description and application URL.

- **URL**: https://apify.com/parseforge/reed-co-uk-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Jobs, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $11.24 / 1,000 job listings

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

![ParseForge Banner](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner.jpg)

## 💼 Reed.co.uk Scraper

> 🚀 **Pull UK job listings in seconds.** Filter by keyword, location, salary, sector, contract type and remote option. No API key, no registration, no manual CSV wrangling.

> 🕒 **Last updated:** 2026-05-16 · **📊 27 fields** per record · **108,000+ live vacancies** · **37 sectors supported** · **GBP salaries normalised**

Reed.co.uk is one of the UK's largest job boards, listing **more than 108,000 active vacancies** across every sector at any given time. This Actor turns that catalogue into a clean, structured dataset. Each result includes the job title, employer, location, county, salary range, contract type, sector, posting date and the full job description, ready for analysis, automation or import into your downstream tools. Searches accept the same parameters as the Reed.co.uk website: keyword, location with a configurable radius, minimum and maximum salary, full or part time, permanent, contract or temporary, remote or hybrid, recruitment agency or direct employer, and over a dozen other filters.

Use the Actor on its own for one-off extracts, or schedule it to run daily and feed a salary tracker, an ATS pipeline or a market-intelligence dashboard. The scraper reads the same JSON the Reed.co.uk website does, so you get consistent, normalised data on every run without parsing fragile HTML. Salaries are decoded into separate minimum, maximum, currency and frequency fields, contract types are mapped to human-readable labels, and every record carries the Reed listing URL plus the direct application link where one is published. Pagination, deduplication, proxy rotation and rate handling are all built in.

| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| Recruitment agencies and in-house talent teams | Track new vacancies in your niche, monitor competitor hiring, build live job boards |
| HR analysts and compensation specialists | Benchmark UK salaries by sector, location and seniority |
| Job market researchers and economists | Measure labour-market signal across regions, sectors and time |
| Career sites, aggregators and ATS vendors | Power UK job feeds without scraping infrastructure |

---

### 📋 What the Reed.co.uk Scraper does

- 🔍 **Search by keyword and location.** Pass a job title plus a UK town or county and the scraper builds the same SEO-optimised URL the site uses, including a configurable mileage radius.
- 💰 **Filter by salary band.** Set a minimum, a maximum, or both, in GBP per year, to focus on roles within your bracket.
- 📅 **Filter by date posted.** Limit to jobs posted today, in the last 3, 7 or 14 days, or pull the full live catalogue.
- 🏢 **Filter by sector.** Pick one or many of the 37 Reed.co.uk sectors, from Accountancy to Transport & Logistics.
- 🏠 **Filter by remote, hybrid, contract type and work hours.** Combine permanent, contract or temporary with full or part time and remote or hybrid.
- 📝 **Capture full job descriptions.** Every record includes the complete job description as plain text, ready for indexing or LLM ingestion.

Each record contains 27 fields covering the employer (name, logo, profile URL), the job itself (title, ID, Reed URL, application URL, category, subcategory), commercial details (salary minimum, maximum, currency, frequency, contract type, full or part time, remote option), workflow flags (Easy Apply, Early Bird, promoted), timestamps (posted and expiry dates) and the cleaned job description.

> 💡 **Why it matters:** UK hiring data is fragmented across many job boards. Reed.co.uk hosts UK employers who do not post elsewhere, so it is a key source for any UK-focused recruitment, salary or labour-market analysis.

---

### 🎬 Full Demo

🚧 Coming soon: a 3-minute walkthrough showing how to configure a search, schedule a daily run and pipe the dataset into a spreadsheet or BI tool.

---

### ⚙️ Input

<table>
<thead>
<tr><th>Field</th><th>Type</th><th>Description</th></tr>
</thead>
<tbody>
<tr><td><code>startUrls</code></td><td>array of strings</td><td>Paste one or more Reed.co.uk search URLs. When provided, these override the keyword and filter inputs.</td></tr>
<tr><td><code>keywords</code></td><td>string</td><td>Search term such as "data scientist", "nurse" or "project manager". Leave blank to browse all live jobs.</td></tr>
<tr><td><code>location</code></td><td>string</td><td>UK town, city or county, for example "london", "manchester", "greater-manchester".</td></tr>
<tr><td><code>maxItems</code></td><td>integer</td><td>How many jobs to return. Free plan returns up to 10. Paid plans up to 1,000,000.</td></tr>
<tr><td><code>proximity</code></td><td>integer</td><td>Search radius in miles around the location. Default 10.</td></tr>
<tr><td><code>salaryFrom</code></td><td>integer</td><td>Minimum salary in GBP per year.</td></tr>
<tr><td><code>salaryTo</code></td><td>integer</td><td>Maximum salary in GBP per year.</td></tr>
<tr><td><code>contractTypes</code></td><td>array</td><td>Any of <code>perm</code>, <code>contract</code>, <code>temp</code>.</td></tr>
<tr><td><code>workHours</code></td><td>array</td><td>Any of <code>fullTime</code>, <code>partTime</code>.</td></tr>
<tr><td><code>remoteWorkingOption</code></td><td>string</td><td>One of <code>notSpecified</code>, <code>hybrid</code>, <code>fullyRemote</code>.</td></tr>
<tr><td><code>datePosted</code></td><td>string</td><td>One of <code>anytime</code>, <code>today</code>, <code>lastThreeDays</code>, <code>lastSevenDays</code>, <code>lastFourteenDays</code>.</td></tr>
<tr><td><code>sectors</code></td><td>array</td><td>Multi-select from the 37 Reed sectors (Accountancy, IT & Telecoms, Education, Engineering, etc.).</td></tr>
<tr><td><code>postedBy</code></td><td>string</td><td><code>any</code>, <code>agency</code> or <code>direct</code> (direct employer).</td></tr>
<tr><td><code>isEasyApply</code></td><td>boolean</td><td>Only roles you can apply to in one click on Reed.</td></tr>
<tr><td><code>isEarlyBird</code></td><td>boolean</td><td>Only Early Bird (newly posted, fast-responding) roles.</td></tr>
<tr><td><code>visaSponsorship</code></td><td>boolean</td><td>Only roles that offer visa sponsorship.</td></tr>
<tr><td><code>sortBy</code></td><td>string</td><td>Sort order: <code>default</code>, <code>dateDesc</code>, <code>salaryDesc</code>, <code>salaryAsc</code>, <code>distance</code>.</td></tr>
<tr><td><code>proxyConfiguration</code></td><td>object</td><td>Proxy settings. Defaults to Apify Residential proxies in GB.</td></tr>
</tbody>
</table>

Example: search marketing roles in London paying over £40,000, full time and permanent.

```json
{
  "keywords": "marketing",
  "location": "london",
  "salaryFrom": 40000,
  "contractTypes": ["perm"],
  "workHours": ["fullTime"],
  "datePosted": "lastSevenDays",
  "maxItems": 100
}
````

Example: pull every IT & Telecoms job posted in the last 3 days, sorted by date.

```json
{
  "sectors": ["52"],
  "datePosted": "lastThreeDays",
  "sortBy": "dateDesc",
  "maxItems": 500
}
```

> ⚠️ **Good to Know:** Reed.co.uk returns 25 results per page. The scraper paginates automatically until either `maxItems` is reached or the search ends. Reed.co.uk caps any single search at around 6,000 results in the UI, so for very broad pulls split the work by sector or by location and merge the datasets.

***

### 📊 Output

Every record is one job listing. Fields are flat, typed and ready for spreadsheets, databases or analytics tools.

#### 🧾 Schema

| Field | Type | Example |
|---|---|---|
| 🖼️ `employerLogoUrl` | string | `https://resources.reed.co.uk/profileimages/Logo_103982.png` |
| 📌 `jobTitle` | string | `Marketing Executive` |
| 🏢 `employerName` | string | `Breedon Group plc` |
| 📍 `location` | string | `Derby` |
| 🗺️ `county` | string | `Derbyshire` |
| 💷 `salaryDisplay` | string | `£24,000 - £100,000 per annum` |
| 💰 `salaryMin` | integer | `24000` |
| 💰 `salaryMax` | integer | `100000` |
| 💱 `salaryCurrency` | string | `GBP` |
| ⏱️ `salaryType` | string | `per annum` |
| 📄 `contractType` | string | `Permanent` |
| ⏰ `isFullTime` | boolean | `true` |
| ⏰ `isPartTime` | boolean | `false` |
| 🏠 `remoteWorkingOption` | string | `Hybrid` |
| 🏷️ `category` | string | `Marketing` |
| 🏷️ `subcategory` | string | `Marketing Executive` |
| 📅 `datePosted` | string (ISO) | `2026-04-23T19:08:01.863` |
| 📅 `expiryDate` | string (ISO) | `2026-06-04T19:08:01.927` |
| ⭐ `isPromoted` | boolean | `true` |
| ⚡ `isEasyApply` | boolean | `false` |
| 🐣 `isEarlyBird` | boolean | `false` |
| 🔗 `applicationUrl` | string | `https://api.kombo.dev/v1/ats/jobs/...` |
| 🔗 `jobUrl` | string | `https://www.reed.co.uk/jobs/marketing-executive/56820339` |
| 🔗 `employerUrl` | string | `https://www.reed.co.uk/jobs/breedon-group-plc/p103982` |
| 🆔 `jobId` | string | `56820339` |
| 📝 `jobDescription` | string | Full job description as plain text |
| 🕒 `scrapedAt` | string (ISO) | `2026-05-16T13:22:35.173Z` |

#### 📦 Sample records

<details>
<summary><b>Typical record</b> - Permanent London data role, mid-band salary, employer logo and ATS apply link</summary>

```json
{
  "employerLogoUrl": "https://resources.reed.co.uk/profileimages/Logo_37370.png",
  "jobTitle": "Data Scientist",
  "employerName": "Sagacity",
  "location": "London",
  "county": "London",
  "salaryDisplay": "£40,000 - £55,000 per annum",
  "salaryMin": 40000,
  "salaryMax": 55000,
  "salaryCurrency": "GBP",
  "salaryType": "per annum",
  "contractType": "Permanent",
  "isFullTime": true,
  "isPartTime": false,
  "remoteWorkingOption": "NotSpecified",
  "category": "Scientist",
  "subcategory": "Data Scientist",
  "datePosted": "2026-05-12T14:44:56.61",
  "expiryDate": "2026-06-23T23:59:59",
  "isPromoted": true,
  "isEasyApply": false,
  "isEarlyBird": false,
  "applicationUrl": "https://api.occupop.com/shared/job/product-data-scientist-5e61e/reed",
  "jobUrl": "https://www.reed.co.uk/jobs/data-scientist/56439884",
  "employerUrl": "https://www.reed.co.uk/jobs/sagacity-solutions-ltd/p37370",
  "jobId": "56439884",
  "jobDescription": "As a Data Scientist within the Analytics Team, you will contribute to data-driven strategies for our clients. Working closely with the Data & Analytics Manager and senior colleagues, you will deliver data science projects and collaborate with stakeholders...",
  "scrapedAt": "2026-05-16T13:34:16.372Z"
}
```

</details>

<details>
<summary><b>Edge case</b> - Senior remote-flagged role with Easy Apply, multi-location description</summary>

```json
{
  "employerLogoUrl": "https://resources.reed.co.uk/profileimages/Logo_75865.png",
  "jobTitle": "Senior Data Scientist",
  "employerName": "Marshall Wolfe",
  "location": "London",
  "county": "London",
  "salaryDisplay": "£70,000 - £80,000 per annum",
  "salaryMin": 70000,
  "salaryMax": 80000,
  "salaryCurrency": "GBP",
  "salaryType": "per annum",
  "contractType": "Permanent",
  "isFullTime": true,
  "isPartTime": false,
  "remoteWorkingOption": "Remote",
  "category": "Scientist",
  "subcategory": "Data Scientist",
  "datePosted": "2026-05-05T15:24:04.873",
  "expiryDate": "2026-06-16T23:59:59",
  "isPromoted": true,
  "isEasyApply": true,
  "isEarlyBird": false,
  "applicationUrl": "https://www.reed.co.uk/jobs/senior-data-scientist/56862312",
  "jobUrl": "https://www.reed.co.uk/jobs/senior-data-scientist/56862312",
  "employerUrl": "https://www.reed.co.uk/jobs/marshall-wolfe-75865/p75865",
  "jobId": "56862312",
  "jobDescription": "Senior Data Scientist. Locations: London, or Glasgow or Northampton. We are currently partnering with a leading financial institution, to recruit an experienced Senior Data Scientist to join a high-impact analytics and innovation team...",
  "scrapedAt": "2026-05-16T13:34:16.299Z"
}
```

</details>

<details>
<summary><b>Sparse record</b> - Apprenticeship with single point salary and no sub-category</summary>

```json
{
  "employerLogoUrl": "https://resources.reed.co.uk/profileimages/Logo_31199.png",
  "jobTitle": "AI & Automation Apprentice",
  "employerName": "QA",
  "location": "City of London",
  "county": "London",
  "salaryDisplay": "£25,000 per annum",
  "salaryMin": 25000,
  "salaryMax": 25000,
  "salaryCurrency": "GBP",
  "salaryType": "per annum",
  "contractType": "Permanent",
  "isFullTime": true,
  "isPartTime": false,
  "remoteWorkingOption": "NotSpecified",
  "category": "Apprentice",
  "subcategory": null,
  "datePosted": "2026-04-20T08:55:36.903",
  "expiryDate": "2026-06-01T23:55:00",
  "isPromoted": false,
  "isEasyApply": false,
  "isEarlyBird": false,
  "applicationUrl": "https://qaapprenticeships.kallidusrecruit.com/?VacancyId=85802&jobboard=Reed v2&c=vacancyposter",
  "jobUrl": "https://www.reed.co.uk/jobs/ai-automation-apprentice/56802064",
  "employerUrl": "https://www.reed.co.uk/jobs/qa-ltd/p31199",
  "jobId": "56802064",
  "jobDescription": "MarketAxess - a leading electronic trading platform in the US, European, and Asian markets - is hiring for a UK-based AI & Automation Apprentice to join the team...",
  "scrapedAt": "2026-05-16T13:34:16.412Z"
}
```

</details>

***

### ✨ Why choose this Actor

| ✨ | Capability |
|---|---|
| 🇬🇧 | **UK focus.** Built around Reed.co.uk's 108,000+ live UK vacancies, including roles that never appear on global aggregators. |
| 🎛️ | **18 filters.** Keyword, location, radius, salary band, contract type, hours, remote option, sector, posted date, posted-by, Easy Apply and more. |
| 💷 | **Salary normalised.** Minimum and maximum are returned as integers with separate currency and frequency, ready for analysis. |
| 📝 | **Full descriptions.** Every record carries the cleaned, plain-text job description, not just a short snippet. |
| 🔗 | **Application URLs.** Each record includes the direct apply link wherever Reed publishes it (Easy Apply or external ATS). |
| 🏢 | **Employer enrichment.** Returns employer name, Reed profile URL and logo so you can pivot from job to employer. |
| ♻️ | **Deduplication built in.** Promoted, featured and regular listings are merged into one stream with no duplicates. |

> 📊 27 structured fields per job, GBP-normalised salary, and zero scraping infrastructure on your side.

***

### 📈 How it compares to alternatives

| Approach | Cost | Coverage | Refresh | Filters | Setup |
|---|---|---|---|---|---|
| **⭐ Reed.co.uk Scraper** *(this Actor)* | Pay per use | 108,000+ live UK vacancies | Real-time on each run | 18 filters incl. salary, sector, remote | None |
| Official jobseeker API | API key needed | Same Reed catalogue | Real-time | Subset of filters | Register, manage keys |
| Generic web-scraping platforms | DIY infra | Whatever you build | What you schedule | What you code | Hours of engineering |
| Manual CSV exports | Free | Snapshot only | Stale within hours | None | High effort |
| Legacy community dumps | Free | Out of date | Rare | None | Hard to validate |

The Actor gives you the same data as Reed's official API without registration, key management or rate-limit handling.

***

### 🚀 How to use

1. 🆕 **Sign up.** Create an Apify account at [console.apify.com/sign-up?fpr=vmoqkp](https://console.apify.com/sign-up?fpr=vmoqkp).
2. 🔎 **Pick a search.** Open the Actor, fill in keywords, location and any filters you need, then save.
3. ▶️ **Run it.** Click "Start" or hit the API. The Actor handles pagination, dedup and proxy rotation.
4. 📦 **Collect the data.** Export from the dataset as JSON, CSV, Excel, XML or HTML, or call the dataset API directly.
5. 🔄 **Automate.** Schedule daily, hourly or weekly runs to feed a tracker, ATS or BI dashboard.

> ⏱️ Total time from sign-up to first results: about **2 minutes**.

***

### 💼 Business use cases

<table>
<tr>
<td width="50%">

#### 🧑‍💼 Recruitment agencies

- Track every new role in your specialism the day it lands
- Spot competitor placements and shifts in client demand
- Build candidate-facing job feeds in your own branding
- Surface salary outliers worth a sourcing call

</td>
<td width="50%">

#### 📊 HR and compensation analytics

- Benchmark salary bands by region, sector and seniority
- Validate offer ranges against live market data
- Monitor compensation drift quarter on quarter
- Build pay equity reports backed by external evidence

</td>
</tr>
<tr>
<td width="50%">

#### 🌍 Labour-market researchers

- Measure UK hiring volume by sector and region
- Track demand for specific skills over time
- Compare urban vs rural posting rates
- Feed economic dashboards with structured inputs

</td>
<td width="50%">

#### 🛠️ Job-board and ATS operators

- Power a UK job feed without scraping infrastructure
- Enrich your ATS with external market data
- Cross-post Reed vacancies into niche verticals
- A/B test new categories before committing engineering

</td>
</tr>
</table>

***

### 🌟 Beyond business use cases

Data like this powers more than commercial workflows. The same structured records support research, education, civic projects, and personal initiatives.

<table>
<tr>
<td width="50%">

#### 🎓 Research and academia

- Empirical datasets for papers, thesis work, and coursework
- Longitudinal studies tracking changes across snapshots
- Reproducible research with cited, versioned data pulls
- Classroom exercises on data analysis and ethical scraping

</td>
<td width="50%">

#### 🎨 Personal and creative

- Side projects, portfolio demos, and indie app launches
- Data visualizations, dashboards, and infographics
- Content research for bloggers, YouTubers, and podcasters
- Hobbyist collections and personal trackers

</td>
</tr>
<tr>
<td width="50%">

#### 🤝 Non-profit and civic

- Transparency reporting and accountability projects
- Advocacy campaigns backed by public-interest data
- Community-run databases for local issues
- Investigative journalism on public records

</td>
<td width="50%">

#### 🧪 Experimentation

- Prototype AI and machine-learning pipelines with real data
- Validate product-market hypotheses before engineering spend
- Train small domain-specific models on niche corpora
- Test dashboard concepts with live input

</td>
</tr>
</table>

***

### 🔌 Automating Reed.co.uk Scraper

Trigger the Actor from your own code or workflow.

- **Node.js** with the official [apify-client](https://docs.apify.com/api/client/js) package
- **Python** with the official [apify-client](https://docs.apify.com/api/client/python) package
- Any HTTP client via the [Apify API reference](https://docs.apify.com/api/v2)

Schedule the Actor in the Apify console to run daily, hourly or on any cron expression. Combine schedules with input templates so you can keep one schedule per search (one per UK region, one per sector) and merge the datasets downstream.

***

### ❓ Frequently Asked Questions

<details>
<summary>❓ <b>How many jobs are available on Reed.co.uk?</b></summary>

Reed.co.uk lists more than 108,000 live UK vacancies at any given time, across 37 sectors. Coverage shifts daily as new roles are posted and stale ones expire.

</details>

<details>
<summary>❓ <b>Do I need a Reed.co.uk API key?</b></summary>

No. The Actor reads the same public job pages that any visitor sees, so there is nothing to register and no key to manage.

</details>

<details>
<summary>❓ <b>How fresh is the data?</b></summary>

Every run pulls the live Reed.co.uk catalogue in real time. Schedule the Actor daily for a rolling feed of new postings, or hourly for very high-volume searches.

</details>

<details>
<summary>❓ <b>Which filters are supported?</b></summary>

Keyword, location with a configurable radius, minimum and maximum salary, full or part time, permanent, contract or temporary, remote or hybrid, recruitment agency or direct employer, sector (37 options, multi-select), date posted, Easy Apply, Early Bird, visa sponsorship and sort order.

</details>

<details>
<summary>❓ <b>Can I paste a Reed.co.uk URL straight in?</b></summary>

Yes. Drop one or more Reed search URLs into the `startUrls` field and the Actor will paginate through them, ignoring the keyword and filter inputs.

</details>

<details>
<summary>❓ <b>How is salary normalised?</b></summary>

Each record returns `salaryMin` and `salaryMax` as integers in GBP, plus a separate `salaryCurrency` and `salaryType` (per annum, per day, per hour). When the employer publishes a single figure, `salaryMin` and `salaryMax` are equal.

</details>

<details>
<summary>❓ <b>Can I use this for commercial work?</b></summary>

Yes. The data is public job postings. Use it for recruitment, compensation research, dashboards or any downstream product. You are responsible for complying with Reed.co.uk's terms and any applicable data-protection rules in your jurisdiction.

</details>

<details>
<summary>❓ <b>Do I need a paid Apify plan?</b></summary>

The free plan returns up to 10 jobs per run, which is enough to validate a search. For production volumes (up to 1,000,000 items per run) upgrade through the [Apify console](https://console.apify.com/sign-up?fpr=vmoqkp).

</details>

<details>
<summary>❓ <b>What happens if a run fails?</b></summary>

Failed runs do not consume usage. Re-run the same input and the Actor will retry with the same configuration. If a particular search keeps failing, narrow the filters (smaller `maxItems`, tighter location) and try again.

</details>

<details>
<summary>❓ <b>Is scraping Reed.co.uk legal?</b></summary>

The Actor reads publicly accessible job postings. Most jurisdictions permit reading and indexing public web pages. You remain responsible for how you use the data and for complying with Reed.co.uk's terms of service and local laws (GDPR, UK Data Protection Act, etc.).

</details>

<details>
<summary>❓ <b>How do I limit my run to recent jobs only?</b></summary>

Set `datePosted` to `today`, `lastThreeDays`, `lastSevenDays` or `lastFourteenDays`. Combine with `sortBy: "dateDesc"` for a chronological feed.

</details>

<details>
<summary>❓ <b>How does pagination work?</b></summary>

Reed.co.uk returns 25 results per page. The Actor walks pages automatically, deduplicates promoted and regular listings and stops when `maxItems` is reached or the search ends. You never set a page number yourself.

</details>

***

### 🔌 Integrate with any app

- [**Apify API**](https://docs.apify.com/api/v2) - run the Actor and stream the dataset over HTTP
- [**Node.js client**](https://docs.apify.com/api/client/js) - call from Node, TypeScript and Bun
- [**Python client**](https://docs.apify.com/api/client/python) - call from Python, FastAPI or Django
- [**Webhooks**](https://docs.apify.com/platform/integrations/webhooks) - notify your system on run success or failure
- [**Make.com**](https://docs.apify.com/platform/integrations/make) - drop the dataset into 1,500+ Make modules
- [**Zapier**](https://docs.apify.com/platform/integrations/zapier) - trigger Zaps on every new run

***

### 🔗 Recommended Actors

- [**💼 SEEK Scraper**](https://apify.com/parseforge/seek-scraper) - Australian job listings with salary, location and full description
- [**🧑‍💻 Upwork Freelancers Scraper**](https://apify.com/parseforge/upwork-freelancers-scraper) - freelance talent and hourly rates from Upwork
- [**💸 Levels.fyi Scraper**](https://apify.com/parseforge/levels-fyi-scraper) - tech salary benchmarks by company, level and location
- [**🏛️ UK Companies House Scraper**](https://apify.com/parseforge/uk-companies-house-scraper) - UK company filings and officers, perfect for employer enrichment
- [**🚀 Y Combinator Scraper**](https://apify.com/parseforge/y-combinator-scraper) - YC company directory for tech hiring intelligence

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge) for more scrapers covering jobs, companies, salaries and market intelligence.

***

**🆘 Need Help?**

Got a feature request, a question, or a bug to report? [**Open our contact form**](https://tally.so/r/BzdKgA) and we will get back to you.

***

> ⚖️ **Disclaimer:** This Actor scrapes publicly accessible job postings from Reed.co.uk. The data belongs to its original publishers. You are responsible for ensuring your use complies with Reed.co.uk's terms of service, applicable data-protection regulations (UK GDPR, EU GDPR, etc.) and any other laws in your jurisdiction. This Actor is not affiliated with, endorsed by or sponsored by Reed.co.uk.

# Actor input Schema

## `startUrls` (type: `array`):

Paste one or more Reed.co.uk search URLs (e.g. https://www.reed.co.uk/jobs/data-scientist-jobs-in-london). If provided, these override the keyword/location/filter inputs below.

## `keywords` (type: `string`):

Search term (e.g. 'data scientist', 'nurse', 'project manager'). Leave blank to browse all jobs.

## `location` (type: `string`):

UK town, city or county (e.g. 'london', 'manchester', 'greater-manchester', 'birmingham'). Leave blank for all of UK.

## `maxItems` (type: `integer`):

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## `proximity` (type: `integer`):

Search radius around the location. Default 10 miles.

## `salaryFrom` (type: `integer`):

Filter out jobs paying less than this amount per year.

## `salaryTo` (type: `integer`):

Filter out jobs paying more than this amount per year.

## `contractTypes` (type: `array`):

Filter by contract type. Leave empty for all.

## `workHours` (type: `array`):

Filter by full-time or part-time. Leave empty for all.

## `remoteWorkingOption` (type: `string`):

Filter by remote working option.

## `datePosted` (type: `string`):

Filter by how recently the job was posted.

## `sectors` (type: `array`):

Filter by job sector (multi-select). Leave empty for all sectors.

## `postedBy` (type: `string`):

Filter by who posted the job.

## `isEasyApply` (type: `boolean`):

Only return jobs that can be applied to with one click.

## `isEarlyBird` (type: `boolean`):

Only return Early Bird (recently posted, high response) jobs.

## `visaSponsorship` (type: `boolean`):

Only return jobs offering visa sponsorship.

## `sortBy` (type: `string`):

How results should be ordered.

## `proxyConfiguration` (type: `object`):

Reed.co.uk sits behind Cloudflare; residential proxies give the most reliable results.

## Actor input object example

```json
{
  "startUrls": [],
  "keywords": "data scientist",
  "maxItems": 10,
  "proximity": 10,
  "remoteWorkingOption": "notSpecified",
  "datePosted": "anytime",
  "postedBy": "any",
  "isEasyApply": false,
  "isEarlyBird": false,
  "visaSponsorship": false,
  "sortBy": "default",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "GB"
  }
}
```

# Actor output Schema

## `results` (type: `string`):

Dataset with scraped UK job listings.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [],
    "keywords": "data scientist",
    "maxItems": 10,
    "proximity": 10,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "GB"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/reed-co-uk-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": [],
    "keywords": "data scientist",
    "maxItems": 10,
    "proximity": 10,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "GB",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/reed-co-uk-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [],
  "keywords": "data scientist",
  "maxItems": 10,
  "proximity": 10,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "GB"
  }
}' |
apify call parseforge/reed-co-uk-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=parseforge/reed-co-uk-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Reed.co.uk Jobs Scraper - UK Job Listings",
        "description": "Scrape UK jobs from Reed.co.uk by keyword, location, salary, sector, contract type, remote option or date posted. Returns title, employer, salary, full description and application URL.",
        "version": "1.0",
        "x-build-id": "VdSNjyhPjJJlMPb3P"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/parseforge~reed-co-uk-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-parseforge-reed-co-uk-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/parseforge~reed-co-uk-scraper/runs": {
            "post": {
                "operationId": "runs-sync-parseforge-reed-co-uk-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/parseforge~reed-co-uk-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-parseforge-reed-co-uk-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Paste one or more Reed.co.uk search URLs (e.g. https://www.reed.co.uk/jobs/data-scientist-jobs-in-london). If provided, these override the keyword/location/filter inputs below.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "keywords": {
                        "title": "Keywords",
                        "type": "string",
                        "description": "Search term (e.g. 'data scientist', 'nurse', 'project manager'). Leave blank to browse all jobs."
                    },
                    "location": {
                        "title": "Location",
                        "type": "string",
                        "description": "UK town, city or county (e.g. 'london', 'manchester', 'greater-manchester', 'birmingham'). Leave blank for all of UK."
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000"
                    },
                    "proximity": {
                        "title": "Distance From Location (miles)",
                        "minimum": 0,
                        "maximum": 50,
                        "type": "integer",
                        "description": "Search radius around the location. Default 10 miles."
                    },
                    "salaryFrom": {
                        "title": "Minimum Salary (£)",
                        "minimum": 0,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Filter out jobs paying less than this amount per year."
                    },
                    "salaryTo": {
                        "title": "Maximum Salary (£)",
                        "minimum": 0,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Filter out jobs paying more than this amount per year."
                    },
                    "contractTypes": {
                        "title": "Contract Types",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Filter by contract type. Leave empty for all.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "perm",
                                "contract",
                                "temp"
                            ],
                            "enumTitles": [
                                "Permanent",
                                "Contract",
                                "Temporary"
                            ]
                        }
                    },
                    "workHours": {
                        "title": "Work Hours",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Filter by full-time or part-time. Leave empty for all.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "fullTime",
                                "partTime"
                            ],
                            "enumTitles": [
                                "Full-time",
                                "Part-time"
                            ]
                        }
                    },
                    "remoteWorkingOption": {
                        "title": "Remote Working",
                        "enum": [
                            "notSpecified",
                            "hybrid",
                            "fullyRemote"
                        ],
                        "type": "string",
                        "description": "Filter by remote working option.",
                        "default": "notSpecified"
                    },
                    "datePosted": {
                        "title": "Date Posted",
                        "enum": [
                            "anytime",
                            "today",
                            "lastThreeDays",
                            "lastSevenDays",
                            "lastFourteenDays"
                        ],
                        "type": "string",
                        "description": "Filter by how recently the job was posted.",
                        "default": "anytime"
                    },
                    "sectors": {
                        "title": "Sectors",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Filter by job sector (multi-select). Leave empty for all sectors.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "2",
                                "100",
                                "3",
                                "1964",
                                "5",
                                "500",
                                "146",
                                "66",
                                "68",
                                "1961",
                                "12",
                                "1962",
                                "117",
                                "1722",
                                "21",
                                "169",
                                "36",
                                "6",
                                "24",
                                "16",
                                "52",
                                "101",
                                "92",
                                "168",
                                "18",
                                "71",
                                "1700",
                                "338",
                                "90",
                                "30",
                                "89",
                                "1963",
                                "34",
                                "1755",
                                "11",
                                "1909",
                                "1907"
                            ],
                            "enumTitles": [
                                "Accountancy",
                                "Accountancy (Qualified)",
                                "Admin, Secretarial & PA",
                                "Apprenticeships",
                                "Banking",
                                "Charity & Voluntary",
                                "Construction & Property",
                                "Customer Service",
                                "Education",
                                "Energy",
                                "Engineering",
                                "Estate Agency",
                                "Financial Services",
                                "FMCG",
                                "General/Other",
                                "Graduate Training & Internships",
                                "Health & Medicine",
                                "Hospitality & Catering",
                                "Human Resources",
                                "Insurance",
                                "IT & Telecoms",
                                "Legal",
                                "Leisure & Tourism",
                                "Manufacturing",
                                "Marketing & PR",
                                "Media, Digital & Creative",
                                "Motoring & Automotive",
                                "Recruitment Consultancy",
                                "Retail",
                                "Sales",
                                "Scientific",
                                "Security & Safety",
                                "Social Care",
                                "Strategy & Consultancy",
                                "Transport & Logistics",
                                "Training",
                                "Other Strategy & Consultancy"
                            ]
                        }
                    },
                    "postedBy": {
                        "title": "Posted By",
                        "enum": [
                            "any",
                            "agency",
                            "direct"
                        ],
                        "type": "string",
                        "description": "Filter by who posted the job.",
                        "default": "any"
                    },
                    "isEasyApply": {
                        "title": "Easy Apply Only",
                        "type": "boolean",
                        "description": "Only return jobs that can be applied to with one click.",
                        "default": false
                    },
                    "isEarlyBird": {
                        "title": "Early Bird Only",
                        "type": "boolean",
                        "description": "Only return Early Bird (recently posted, high response) jobs.",
                        "default": false
                    },
                    "visaSponsorship": {
                        "title": "Visa Sponsorship Only",
                        "type": "boolean",
                        "description": "Only return jobs offering visa sponsorship.",
                        "default": false
                    },
                    "sortBy": {
                        "title": "Sort By",
                        "enum": [
                            "default",
                            "dateDesc",
                            "salaryDesc",
                            "salaryAsc",
                            "distance"
                        ],
                        "type": "string",
                        "description": "How results should be ordered.",
                        "default": "default"
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Reed.co.uk sits behind Cloudflare; residential proxies give the most reliable results."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
