# Reed Jobs Scraper - UK Hiring Data (`benthepythondev/reed-jobs-scraper`) Actor

Scrape Reed.co.uk job listings: title, company, location, salary, work type, posted date, badges, logo and listing URL.

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

## Pricing

from $3.00 / 1,000 results

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

## Reed Jobs Scraper - UK Hiring Data

Scrape job listings from **Reed.co.uk**, one of the UK's best-known employment marketplaces. Get job title, hiring company, company profile URL, location, salary label, work type, posted date, badges, logo URL and direct job URL. Export the data to JSON, CSV or Excel, run it on a schedule, call it through the API, or connect it to Make, Zapier, n8n, Airtable, Google Sheets, a recruiting CRM or your own job-board backend.

### What is the Reed Jobs Scraper?

Reed.co.uk is a major UK job board used by employers, recruiters and staffing agencies across technology, finance, healthcare, education, sales, customer support, construction, logistics, public sector and professional services. For recruiters, analysts and B2B sales teams, Reed listings are a live signal of which companies are hiring, what roles they need, and where demand is concentrated across the UK.

This actor extracts Reed search results from the server-rendered job cards on the public search page. It does not need a browser, account, proxy or paid unblocker. That makes it fast, low-cost and reliable for Apify schedules, daily auto-tests and production data pipelines.

### What data does it extract?

- **Job ID**
- **Job title**
- **Hiring company**
- **Company profile URL**
- **Location**
- **Salary label** when shown
- **Work type** such as permanent, contract, full-time or part-time
- **Posted date / posted label**
- **Badges** such as promoted, featured or easy apply
- **Company logo URL**
- **Direct Reed job URL**
- **Search URL used**

### Input

| Field | Type | Description |
|-------|------|-------------|
| `keyword` | string | Role, skill or job-title keyword. |
| `location` | string | Optional UK city, county or region such as London, Manchester or Surrey. |
| `maxResults` | integer | Maximum Reed jobs returned. |

### Example input

```json
{
  "keyword": "python developer",
  "location": "London",
  "maxResults": 50
}
````

For a broader national search:

```json
{
  "keyword": "data analyst",
  "maxResults": 100
}
```

### Output

Each dataset item is one Reed job:

```json
{
  "job_id": "57041067",
  "title": "Python Developer",
  "company": "Noir",
  "company_profile_url": "https://www.reed.co.uk/jobs/noir/p10319",
  "location": "Newcastle Upon Tyne, Tyne and Wear",
  "salary": "£42,000 - £62,000 per annum",
  "work_type": "Permanent, full-time",
  "posted_date": "22 June",
  "badges": ["Easy Apply"],
  "company_logo_url": "https://resources.reed.co.uk/profileimages/logos/thumbs/...",
  "url": "https://www.reed.co.uk/jobs/python-developer/57041067",
  "search": "https://www.reed.co.uk/jobs/python-developer-jobs"
}
```

### Use cases

- **Recruiting market intelligence** - monitor UK hiring demand by role, location and employer.
- **Lead generation** - identify companies actively hiring, a strong buying signal for HR software, payroll, staffing, training, SaaS, IT services and outsourcing.
- **Salary research** - collect published salary labels for roles where Reed exposes compensation.
- **Job-board aggregation** - add Reed job cards to a niche job board, newsletter or internal talent portal.
- **Competitor hiring alerts** - schedule searches for specific companies, categories, skills or regions.
- **Regional workforce analytics** - compare hiring demand across London, Manchester, Birmingham, Leeds, Scotland, Wales and other UK regions.

### Why use this actor?

The actor is built around Reed's server-rendered job cards and stable `data-qa` attributes instead of brittle browser automation. A plain HTTP engine means lower compute usage, faster runs and fewer moving parts. The output is normalized into predictable columns, so you can filter by company, salary, location, work type or badge without building your own scraper.

It is also designed for store reliability. Defaults are small enough for Apify's daily auto-tests, while `maxResults` lets production users collect larger datasets when needed. Every row includes the exact search URL, so data pipelines remain auditable.

Because Reed is recruiter-heavy, the company field is useful for both employer monitoring and agency monitoring. Some listings are posted directly by employers, while others are posted by recruitment firms. Keeping the company profile URL in the output lets you separate direct employer demand from recruiter activity, enrich the company later, or build a lead list around the agencies that are repeatedly hiring for a role family.

For commercial workflows, the highest-value pattern is usually to run focused searches rather than one very broad crawl. For example, a payroll vendor might monitor `finance manager`, `payroll officer` and `HR manager`; an IT services company might track `python`, `devops`, `cyber security` and `data engineer`; a healthcare staffing company might monitor `nurse`, `care assistant` and `pharmacist`. Those focused searches produce cleaner buying signals and better downstream outreach lists.

### Tips

- Use specific role keywords for cleaner datasets, such as `python developer`, `data analyst`, `project manager`, `nurse`, `accountant` or `sales executive`.
- Add a `location` when you care about one UK market.
- De-duplicate downstream by `job_id` or `url`.
- Schedule the actor daily or weekly to track new postings over time.
- Combine this with contact-enrichment actors when building sales outreach lists from hiring signals.

### FAQ

**Does this require a Reed account?** No. It reads public search-result data.

**Does it use a browser or proxy?** No. It fetches the public search page and parses server-rendered job cards.

**Can I search by UK location?** Yes. Use the `location` input for a city, county or region.

**Does it include salary?** It returns Reed's salary label when the listing exposes one.

**Can I export the data?** Yes. Apify supports JSON, CSV, Excel, API access and webhooks.

**Is this useful for lead generation?** Yes. Active job postings are strong buying-signal data for many B2B services.

### You might also like

- [StepStone Scraper](https://apify.com/benthepythondev/stepstone-scraper) for European jobs.
- [SEEK Jobs Scraper](https://apify.com/benthepythondev/seek-jobs-scraper) for Australia and New Zealand jobs.
- [JobsDB Jobs Scraper](https://apify.com/benthepythondev/jobsdb-jobs-scraper) for Hong Kong and Thailand jobs.
- [HiringCafe Scraper](https://apify.com/benthepythondev/hiring-cafe-scraper) for enriched global jobs.
- [BuiltIn Jobs Scraper](https://apify.com/benthepythondev/builtin-jobs-scraper) for tech jobs and salary ranges.

### Keywords

Reed scraper, Reed jobs scraper, Reed.co.uk scraper, UK jobs scraper, Reed job listings API, scrape Reed jobs, export Reed jobs to CSV, UK recruitment data, hiring signals, UK job market data, Apify jobs scraper, Reed.co.uk job board data, salary data UK jobs, recruiter lead generation.

# Actor input Schema

## `keyword` (type: `string`):

Job title, skill or keyword to search on Reed.co.uk, e.g. 'python developer'.

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

Optional UK city, county or region, e.g. 'London', 'Manchester' or 'Surrey'.

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

Maximum number of Reed jobs to return.

## Actor input object example

```json
{
  "keyword": "python",
  "maxResults": 10
}
```

# 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 = {
    "keyword": "python",
    "maxResults": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("benthepythondev/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 = {
    "keyword": "python",
    "maxResults": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("benthepythondev/reed-jobs-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 '{
  "keyword": "python",
  "maxResults": 10
}' |
apify call benthepythondev/reed-jobs-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Reed Jobs Scraper - UK Hiring Data",
        "description": "Scrape Reed.co.uk job listings: title, company, location, salary, work type, posted date, badges, logo and listing URL.",
        "version": "1.0",
        "x-build-id": "Qd1fa3GGrsQqGZYci"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/benthepythondev~reed-jobs-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-benthepythondev-reed-jobs-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/benthepythondev~reed-jobs-scraper/runs": {
            "post": {
                "operationId": "runs-sync-benthepythondev-reed-jobs-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/benthepythondev~reed-jobs-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-benthepythondev-reed-jobs-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": {
                    "keyword": {
                        "title": "Keyword / job title",
                        "type": "string",
                        "description": "Job title, skill or keyword to search on Reed.co.uk, e.g. 'python developer'.",
                        "default": "python"
                    },
                    "location": {
                        "title": "Location",
                        "type": "string",
                        "description": "Optional UK city, county or region, e.g. 'London', 'Manchester' or 'Surrey'."
                    },
                    "maxResults": {
                        "title": "Max results",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum number of Reed jobs to return.",
                        "default": 50
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
