# Reed Jobs Scraper — UK Jobs with Salaries, Fast (`fabrikit/reed-jobs-scraper`) Actor

Reed.co.uk jobs scraper for the UK: search by keyword, location, distance, salary, contract type, remote and date. Gets salaries, companies, locations and optional full descriptions. No API key, no login. From US$0.40 per 1,000 jobs.

- **URL**: https://apify.com/fabrikit/reed-jobs-scraper.md
- **Developed by:** [Fabrikit](https://apify.com/fabrikit) (community)
- **Categories:** Jobs, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.40 / 1,000 job 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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Reed Jobs Scraper — UK Jobs with Salaries, Fast

Scrape UK job listings from Reed.co.uk **without an API key and without a login**. Search by keyword, location and distance, salary range, contract type, working hours, remote or hybrid, specialism and date posted, and get clean JSON, CSV or Excel with salaries, companies, locations and (optionally) the full job description.

**Pricing: from US$0.40 per 1,000 jobs.** Full job details are an optional add-on at US$1.50 per 1,000.

### What you get

**Every job (search data):** title, advertiser (employer or recruitment agency) with profile link and logo, location and county, **salary range with period** (per year, month, week, day or hour) when the ad shows figures, contract type (permanent, contract, temporary), full-time or part-time, on-site / hybrid / remote tag, Reed occupation group, a short snippet, posted and expiry dates, Easy Apply, promoted and external-application flags, and the job URL.

**With `includeDetails` (add-on):** the full description as plain text, the salary text as shown on the page, yearly-equivalent salary figures, negotiable / OTE / pro-rata flags, town, region, postcode district, specialism and sub-specialism, who posted it (employer, agency or Reed), and the right-to-work requirement.

### How it works

The Actor reads the data the Reed website itself ships with each page (its embedded JSON and the job structured data), so it is fast and does not need a browser. Each search returns at most 10,000 jobs on Reed; for bigger crawls the Actor automatically splits the search by specialism, contract type, poster type and working option and removes duplicates.

### Input examples

Newest software jobs in London (the default):

```json
{ "keywords": ["software developer"], "locations": ["London"], "distance": 10, "maxItems": 50 }
```

Permanent accountancy jobs paying £30k-£50k within 20 miles of Manchester, posted this week:

```json
{
  "keywords": ["accountant"],
  "locations": ["Manchester"],
  "distance": 20,
  "salaryFrom": 30000,
  "salaryTo": 50000,
  "contractTypes": ["permanent"],
  "postedWithin": "lastweek",
  "maxItems": 500
}
```

Remote data jobs from employers only, with full descriptions:

```json
{ "keywords": ["data engineer"], "workingOption": "remote", "postedBy": "employer", "includeDetails": true, "maxItems": 200 }
```

You can also paste reed.co.uk search URLs you built on the website into `searchUrls`.

### Input fields

| Field | Description |
|---|---|
| `keywords` | Job titles or skills, one search each |
| `locations`, `distance` | UK towns, counties or postcodes and the radius in miles |
| `salaryFrom`, `salaryTo`, `salaryType` | Salary range, per year or per hour |
| `contractTypes` | permanent, contract, temporary |
| `hours` | full-time, part-time |
| `postedWithin` | any time, today, last 3 days, last week, last 2 weeks |
| `workingOption` | on-site, hybrid, remote |
| `specialisms` | Reed specialisms by name, e.g. `IT & Telecoms`, `Engineering`, `Banking` |
| `postedBy` | employers only or agencies only |
| `onlyWithSalary`, `graduate`, `visaSponsorship`, `easyApply`, `earlyBird` | Extra filters |
| `searchUrls` | Full Reed search URLs |
| `includeDetails` | Add full description and page details (add-on price) |
| `maxItems` | Exact limit (default 50) |
| `proxyConfiguration` | Apify Proxy; the Actor switches to a UK residential proxy automatically if Reed blocks datacenter IPs |

### Output example

```json
{
  "id": "57452596",
  "url": "https://www.reed.co.uk/jobs/software-engineer-london/57452596",
  "title": "Software Engineer- London",
  "company": "FDM Group",
  "location": "London",
  "salaryMin": 45000,
  "salaryMax": 60000,
  "salaryCurrency": "GBP",
  "salaryPeriod": "year",
  "contractType": "contract",
  "hours": "full-time",
  "workingOption": "hybrid",
  "category": "Engineer",
  "postedAt": "2026-10-13T09:23:08.030Z",
  "expiresAt": "2026-11-10T23:59:59.000Z",
  "isPromoted": true
}
```

With `includeDetails` each item also has `description`, `salaryDisplay`, `salaryAnnualMin`, `salaryAnnualMax`, `town`, `region`, `sector`, `postedBy`, `validThrough` and more.

### Pricing

| Event | Price |
|---|---|
| Job scraped (`job-result`) | US$0.40 per 1,000 |
| Job details (`job-details`, only with `includeDetails`) | US$1.50 per 1,000 |

Platform compute is included in these prices.

### FAQ

**Do I need a Reed API key?** No. The Actor uses the public website data.

**Does it return recruiter names, e-mails or phone numbers?** No. Company data only. E-mail addresses, phone numbers, personal profile links and named recruiter contacts found in descriptions are removed.

**Why is the salary empty for some jobs?** Many ads say "competitive" or "negotiable". Use `onlyWithSalary` to skip them.

**How do I get new jobs every day?** Schedule the Actor with `postedWithin: "today"`.

**Why do I see the same company many times?** Recruitment agencies post many ads. `postedBy: "employer"` keeps direct employers only.

### Use cases

UK salary benchmarking, labour-market dashboards, recruitment-agency and direct-employer lead lists, job aggregators, tracking demand for skills by region, monitoring remote and hybrid trends.

### Legal

The Actor collects publicly visible job ads and is not affiliated with Reed. Use the data in line with the site's terms and applicable law (including UK GDPR).

***

### En español

Scraper de **ofertas de trabajo del Reino Unido** desde Reed.co.uk, sin API key ni login. Filtra por palabra clave, ubicación y distancia, rango de sueldo, tipo de contrato, remoto/híbrido, especialidad y fecha. Entrega sueldo, empresa, ubicación y, opcionalmente, la descripción completa. Desde **US$0,40 por 1.000** ofertas. No entrega nombres, correos ni teléfonos de reclutadores.

# Actor input Schema

## `keywords` (type: `array`):

Job titles or skills, one search per entry (for example: accountant, nurse, software developer). Leave empty for all jobs.

## `locations` (type: `array`):

UK towns, cities, counties or postcodes, one search per entry (for example: London, Manchester, Yorkshire, SW1A). Leave empty for the whole UK.

## `distance` (type: `integer`):

Search radius around each location, in miles (0 to 50). Reed supports 0, 1, 3, 5, 10, 15, 20, 30 and 50; other values are rounded up to the nearest.

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

Only jobs paying at least this amount (GBP per year, or per hour when 'Salary type' is hourly).

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

Only jobs paying at most this amount (GBP per year, or per hour when hourly).

## `salaryType` (type: `string`):

Whether the salary range is per year or per hour.

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

Only these contract types. Leave empty for all.

## `hours` (type: `array`):

Full-time and/or part-time. Leave empty for both.

## `postedWithin` (type: `string`):

Only jobs posted in this period.

## `workingOption` (type: `string`):

Working pattern tagged by the advertiser.

## `specialisms` (type: `array`):

Only these Reed specialisms, by name (for example: IT & Telecoms, Engineering, Banking, Accountancy, Healthcare) or numeric ID.

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

Only direct employers or only recruitment agencies.

## `onlyWithSalary` (type: `boolean`):

Skip jobs that show no salary.

## `graduate` (type: `boolean`):

Only graduate-level jobs.

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

Only jobs offering visa sponsorship.

## `easyApply` (type: `boolean`):

Only jobs that accept applications directly on Reed.

## `earlyBird` (type: `boolean`):

Only jobs flagged 'early bird' (posted within the last hours).

## `searchUrls` (type: `array`):

Optional: full reed.co.uk search URLs you built on the website (filters in the URL are kept). Added to the searches above.

## `includeDetails` (type: `boolean`):

Open each job page to add the full description, salary text, sector, region and expiry. Charged as an extra 'job-details' event per job (one extra request each). Turn off for the fastest, cheapest run.

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

Stop after this many jobs. The default run returns 50.

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

Apify Proxy settings. If Reed blocks datacenter IPs the Actor switches to a UK residential proxy automatically.

## Actor input object example

```json
{
  "keywords": [
    "software developer"
  ],
  "locations": [
    "London"
  ],
  "distance": 10,
  "salaryType": "annual",
  "postedWithin": "anytime",
  "workingOption": "any",
  "postedBy": "any",
  "onlyWithSalary": false,
  "graduate": false,
  "visaSponsorship": false,
  "easyApply": false,
  "earlyBird": false,
  "includeDetails": false,
  "maxItems": 50,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `jobs` (type: `string`):

All jobs collected during the run

# 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 = {
    "keywords": [
        "software developer"
    ],
    "locations": [
        "London"
    ],
    "maxItems": 50,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("fabrikit/reed-jobs-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 = {
    "keywords": ["software developer"],
    "locations": ["London"],
    "maxItems": 50,
    "proxyConfiguration": { "useApifyProxy": True },
}

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

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

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

```

## CLI example

```bash
echo '{
  "keywords": [
    "software developer"
  ],
  "locations": [
    "London"
  ],
  "maxItems": 50,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call fabrikit/reed-jobs-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,fabrikit/reed-jobs-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/UuQeAfSdi9zZFEF7H/builds/VLIn3o3B67J1zJvJB/openapi.json
