# Reed Scraper - UK Jobs, Salaries & Companies (`studio-amba/reed-scraper`) Actor

Scrape UK job listings from Reed.co.uk by keyword and location. Extract job titles, companies, salary ranges, locations, sectors, and apply links. No login or cookies required.

- **URL**: https://apify.com/studio-amba/reed-scraper.md
- **Developed by:** [Studio Amba](https://apify.com/studio-amba) (community)
- **Categories:** Jobs
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 result scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

### What does Reed Scraper do?

**Reed Scraper** extracts job listings from [Reed.co.uk](https://www.reed.co.uk), the UK's largest job board with over a million live vacancies across every sector. Give it a keyword and (optionally) a location, and it returns structured data for every matching job: title, company, salary range, location, sector, remote-working option, posting date, and a direct link to the advert. It reads Reed's own server-rendered search data, so there is no login, no cookies, and no browser automation required.

Run it on the Apify platform to get UK job market data via API, schedule recurring scrapes, and pipe results into tools like Zapier, Make, Google Sheets, Airtable, and Slack.

### How to scrape Reed data

1. Go to the Reed Scraper on the Apify Store.
2. Click **Try for free** to open the actor in the Apify Console.
3. Enter a search query (e.g. "software developer", "nurse", "accountant", "project manager").
4. Optionally enter a UK location (e.g. "london", "manchester", "birmingham"). Leave it empty to search the whole UK.
5. Set the maximum number of results you want (default: 100).
6. Leave the proxy configuration on GB residential (the default) for the most reliable results.
7. Click **Start** and wait for the run to finish.
8. Download your data as JSON, CSV, Excel, or HTML from the Output tab, or pull it via the Apify API.

### Why use Reed Scraper?

- **UK salary benchmarking** — Reed shows salary ranges on most listings. Compare pay across roles, sectors, and cities, and track how compensation shifts over time.
- **Recruitment intelligence** — See which companies are hiring, for what roles, and at what pay. Spot hiring trends before your competitors do.
- **Labour market analysis** — Understand demand across sectors and regions. Which cities have the most vacancies? Which roles pay the most?
- **Lead generation** — Find employers and recruitment agencies actively hiring to target with B2B services, tools, or staffing solutions.
- **Remote work tracking** — Every listing carries a remote-working option (Remote, Hybrid, On-site), so you can measure how the UK remote landscape changes.
- **Job aggregation** — Feed structured listings into your own job board, career site, or candidate-alert system.
- **Academic and policy research** — Clean, structured data for labour economics, skills-gap studies, and workforce reports.

### About Reed.co.uk

Reed.co.uk is one of the UK's oldest and largest recruitment platforms, part of the Reed group founded in 1960. It aggregates vacancies from thousands of employers and recruitment agencies across every sector — technology, healthcare, finance, education, engineering, retail, hospitality, and more. Key characteristics:

- **Coverage**: Nationwide UK, from London to regional towns, plus remote roles.
- **Sectors**: All major industries, categorised by Reed's own taxonomy (e.g. Software Engineer, Nursing, Accountancy).
- **Salary data**: Most adverts include a salary range and pay period (annual, monthly, weekly, daily, or hourly).
- **Work patterns**: Full-time, part-time, contract, temporary, and permanent roles.

### Input

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `searchQuery` | string | No | Job keyword to search for. Defaults to `software developer` if empty. |
| `location` | string | No | UK location to filter by (e.g. `london`). Leave empty to search the whole UK. |
| `maxResults` | integer | No | Maximum number of listings to scrape. Default `100`. |
| `proxyConfiguration` | object | No | Apify proxy settings. Defaults to GB residential. |

#### Example input

```json
{
  "searchQuery": "software developer",
  "location": "london",
  "maxResults": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"],
    "apifyProxyCountry": "GB"
  }
}
```

### Output

Each job listing is a flat JSON object with the following fields:

| Field | Type | Example |
|-------|------|---------|
| `jobId` | number | `56817566` |
| `jobTitle` | string | `Senior Software Engineer` |
| `company` | string | `Awin` |
| `location` | string | `London` |
| `salaryFrom` | number | `55000` |
| `salaryTo` | number | `65000` |
| `salaryCurrency` | string | `GBP` |
| `salaryPeriod` | string | `year` |
| `jobType` | string | `Full-time` |
| `remoteOption` | string | `Hybrid` |
| `sector` | string | `Software Engineer` |
| `descriptionSnippet` | string | `Purpose of the Position As a Senior Software Engineer...` |
| `easyApply` | boolean | `false` |
| `promoted` | boolean | `false` |
| `postedDate` | string | `2026-06-26T15:33:03.383` |
| `expiryDate` | string | `2026-08-07T15:33:03.403` |
| `applyUrl` | string | `https://...` |
| `url` | string | `https://www.reed.co.uk/jobs/senior-software-engineer/56817566` |
| `scrapedAt` | string | `2026-07-09T21:07:59.460Z` |

#### Example output

```json
{
  "jobId": 56817566,
  "jobTitle": "Senior Software Engineer",
  "company": "Awin",
  "location": "London",
  "salaryFrom": 55000,
  "salaryTo": 65000,
  "salaryCurrency": "GBP",
  "salaryPeriod": "year",
  "jobType": "Full-time",
  "remoteOption": "Hybrid",
  "sector": "Software Engineer",
  "descriptionSnippet": "Purpose of the Position As a Senior Software Engineer, you will be part of a cross-functional, service-oriented team...",
  "easyApply": false,
  "promoted": false,
  "postedDate": "2026-06-26T15:33:03.383",
  "expiryDate": "2026-08-07T15:33:03.403",
  "applyUrl": "https://api.kombo.dev/v1/ats/jobs/GQ2H5ZrjxtrAScof1Cvvh22C/applications",
  "url": "https://www.reed.co.uk/jobs/senior-software-engineer/56817566",
  "scrapedAt": "2026-07-09T21:07:59.460Z"
}
```

### Cost estimate

This actor is billed on Apify's Pay Per Result model. Reed's search returns 25 jobs per page, so scraping is fast and lightweight — a typical run of a few hundred listings finishes in well under a minute of compute. You pay per job returned plus a small per-run start fee, so a run that returns 500 jobs costs roughly the price of 500 results. Check the actor's pricing tab for the exact current rate.

### Limitations and known issues

- **Search results only** — the actor reads the listing data embedded in Reed's search pages (title, company, salary, location, sector, snippet, dates, links). It does not open each advert to pull the full job description body. The `descriptionSnippet` field gives you the summary Reed shows on the results page.
- **Salary as advertised** — salary ranges are exactly what the employer entered. Some adverts show very wide ranges, "competitive", or no salary at all; where Reed has no figure, the salary fields are `null`.
- **Promoted jobs** — Reed repeats a small number of promoted listings across pages. The actor deduplicates by `jobId`, so you never get the same job twice.
- **UK focus** — Reed.co.uk is a UK job board. Use GB proxies (the default) for the most reliable results.
- **Result ceiling** — Reed paginates deep result sets; very large `maxResults` values will walk many pages. Keep `maxResults` reasonable for the query you actually need.

### Related scrapers

- **NoFluffJobs Scraper** — European tech jobs with mandatory salary ranges.
- **Pracuj Scraper** — Poland's largest job board.
- Browse the Studio AMBA profile on the Apify Store for more European job and marketplace scrapers.

### FAQ

**Do I need a Reed API key or account?**
No. This actor reads Reed's public search results. There is no login, no cookies, and no API key required.

**Can I filter by salary, contract type, or distance?**
The current version filters by keyword and location. Salary, sector, and remote option are returned on every result so you can filter them yourself after scraping.

**Is scraping Reed legal?**
This actor collects publicly available job listing data. You are responsible for using the data in line with Reed's terms and applicable law. Do not use it to send unsolicited communications in breach of regulations.

# Actor input Schema

## `searchQuery` (type: `string`):

Job keyword to search for (e.g. 'software developer', 'nurse', 'accountant', 'project manager'). Defaults to 'software developer' if empty.

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

UK location to filter by (e.g. 'london', 'manchester', 'birmingham'). Leave empty to search across the whole UK.

## `maxResults` (type: `integer`):

Maximum number of job listings to scrape.

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

Proxy settings. Reed is a UK site -- use GB-based proxies for best results.

## Actor input object example

```json
{
  "searchQuery": "software developer",
  "location": "london",
  "maxResults": 20,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "GB"
  }
}
```

# 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 = {
    "searchQuery": "software developer",
    "location": "london",
    "maxResults": 20,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "GB"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("studio-amba/reed-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 = {
    "searchQuery": "software developer",
    "location": "london",
    "maxResults": 20,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "GB",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("studio-amba/reed-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 '{
  "searchQuery": "software developer",
  "location": "london",
  "maxResults": 20,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "GB"
  }
}' |
apify call studio-amba/reed-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/TYu9PnUSIczDrWPu4/builds/peRBr8lhcrAe4v3yX/openapi.json
