# Jobs.ac.uk Scraper - UK Academic & Research Jobs (`studio-amba/jobs-ac-uk-scraper`) Actor

Scrape academic, research and higher-education job listings from Jobs.ac.uk, the UK's leading dedicated academic jobs board. Extract job titles, institutions, departments, salaries, contract types, and application deadlines. No login required.

- **URL**: https://apify.com/studio-amba/jobs-ac-uk-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 $1.20 / 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.
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 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

## Jobs.ac.uk Scraper

### What does Jobs.ac.uk Scraper do?

**Jobs.ac.uk Scraper** extracts job listings from [jobs.ac.uk](https://www.jobs.ac.uk), the UK's leading dedicated academic, research and higher-education jobs board. Give it a keyword and it returns structured data for every matching vacancy: job title, hiring institution, department or school, location, salary, contract type, posted date, closing date, and a direct link to the listing. It reads each job's own schema.org `JobPosting` structured data plus the public search results, so there is no login, no cookies, and no browser automation required.

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

### How to scrape Jobs.ac.uk data

1. Go to the Jobs.ac.uk 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. "lecturer", "postdoctoral", "research fellow", "professor"). Leave it empty to browse all live academic and higher-education listings.
4. Set the maximum number of results you want (default: 50).
5. Leave the proxy configuration on the default Apify proxy — jobs.ac.uk serves server-rendered HTML with no WAF, so no residential proxy is needed.
6. Click **Start** and wait for the run to finish.
7. Download your data as JSON, CSV, Excel, or HTML from the Output tab, or pull it via the Apify API.

### Why use Jobs.ac.uk Scraper?

- **Academic salary benchmarking** — most listings publish a structured salary range, so you can compare pay across roles, universities, and departments.
- **Recruitment intelligence** — see which universities and research institutes are hiring, for what roles, and in which departments. Spot hiring waves before they're widely known.
- **Higher-education workforce research** — clean, structured data for studies on academic vacancy rates, contract types, and sector trends.
- **Lead generation** — find institutions actively hiring to target with recruitment, relocation, or HR software services.
- **Job aggregation** — feed structured academic listings into your own job board, career site, or candidate-alert system.
- **Career and relocation planning** — track vacancies for a specific role or field across UK institutions, including salary and closing-date data.

### About jobs.ac.uk

Jobs.ac.uk is the UK's dedicated academic, research and higher-education jobs board, used by universities, research institutes and HE-sector employers to advertise vacancies. Key characteristics:

- **Coverage**: UK universities and research institutions, plus some international and HE-professional-services roles.
- **Roles**: Academic (lectureships, postdoctoral posts, research fellowships, professorships) and non-academic HE professional-services roles (administration, library, IT, estates).
- **Salary data**: Many listings carry a structured salary range pulled from the site's own schema.org `JobPosting` data; some show "not specified".
- **Contract types**: Full time and part time, permanent and fixed-term/contract positions.

### Input

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `searchQuery` | string | No | English search keyword (e.g. `lecturer`, `postdoctoral`, `research fellow`, `professor`). Leave empty to browse all live academic/HE listings. |
| `maxResults` | integer | No | Maximum number of job listings to scrape. Each result costs one listing-page request plus one detail-page request. Default `50`. |
| `proxyConfiguration` | object | No | Apify proxy settings. Jobs.ac.uk works reliably over Apify's default proxy. |

#### Example input

```json
{
  "searchQuery": "lecturer",
  "maxResults": 50,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

### Output

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

| Field | Type | Example |
|-------|------|---------|
| `jobTitle` | string | `Lecturer in Computer Science` |
| `institution` | string | null | `University of Manchester` |
| `department` | string | null | `Department of Computer Science` |
| `location` | string | null | `Manchester, England` |
| `salary` | string | null | `£45,163 to £55,295 per annum` |
| `salaryMin` | number | null | `45163` |
| `salaryMax` | number | null | `55295` |
| `salaryCurrency` | string | null | `GBP` |
| `contractType` | string | null | `Full Time, Permanent` |
| `postedDate` | string | null | `2026-07-14T00:00:00.000Z` |
| `closingDate` | string | null | `2026-08-25T00:00:00.000Z` |
| `description` | string | null | Full job description text (HTML stripped) |
| `logoUrl` | string | null | URL of the hiring institution's logo, if available |
| `jobId` | string | `DSK047` |
| `url` | string | `https://www.jobs.ac.uk/job/DSK047/lecturer-in-computer-science` |
| `scrapedAt` | string | `2026-08-10T09:12:54.779Z` |

#### Example output

```json
{
  "jobTitle": "Lecturer in Computer Science",
  "institution": "University of Manchester",
  "department": "Department of Computer Science",
  "location": "Manchester, England",
  "salary": "£45,163 to £55,295 per annum",
  "salaryMin": 45163,
  "salaryMax": 55295,
  "salaryCurrency": "GBP",
  "contractType": "Full Time, Permanent",
  "postedDate": "2026-07-14T00:00:00.000Z",
  "closingDate": "2026-08-25T00:00:00.000Z",
  "description": "We are seeking to appoint a Lecturer in Computer Science...",
  "logoUrl": "https://www.jobs.ac.uk/logos/university-of-manchester.png",
  "jobId": "DSK047",
  "url": "https://www.jobs.ac.uk/job/DSK047/lecturer-in-computer-science",
  "scrapedAt": "2026-08-10T09:12:54.779Z"
}
```

### Cost estimate

This actor is billed on Apify's Pay Per Result model, with one listing-page request plus one detail-page request per result. Usage cost only settles once a run reports SUCCEEDED, so a mid-run dataset read will show a cost far below the final total. Check the actor's pricing tab for the exact current per-result rate.

### Limitations and known issues

- **Full description included** — unlike a listing-only scraper, this actor visits each job's detail page to pull the full description and structured salary data from the site's own schema.org `JobPosting` markup, so runs take one extra request per result.
- **Salary as published** — most listings publish a structured salary range; institutions that don't disclose a figure return `null` for `salaryMin`/`salaryMax` and the raw display text (if any) in `salary`.
- **UK academic/HE sector only** — jobs.ac.uk is scoped to UK academic, research and higher-education vacancies. It does not cover general commercial job boards.
- **Session cookie handling** — the site occasionally serves a short-lived JS cookie-wall page instead of real content; the actor retries automatically with the session cookie set, so this is transparent to the caller.

### Related scrapers

- **Reed Scraper** — the UK's largest general job board, with salary ranges and sectors.
- **NHS Jobs Scraper** — official NHS England and Wales healthcare vacancy listings.
- **Irish Jobs Scraper** — Ireland's leading job board, including academic and research roles.
- Browse the Studio AMBA profile on the Apify Store for more European job and marketplace scrapers.

### FAQ

**Do I need a jobs.ac.uk account or API key?**
No. This actor reads the public search results and job detail pages. There is no login, no cookies, and no API key required.

**Can I filter by salary, contract type, or institution?**
The current version filters by keyword only. Salary, contract type, institution, and department are returned on every result so you can filter them yourself after scraping.

**Does it cover international academic jobs?**
Jobs.ac.uk is UK-focused, though some listings are for international institutions advertising to a UK/academic audience. Coverage reflects whatever is live on the site.

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

# Actor input Schema

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

English search keyword (e.g. 'lecturer', 'postdoctoral', 'research fellow', 'professor'). Leave empty to browse all live academic/HE listings.

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

Maximum number of job listings to scrape. Each result costs one listing-page request plus one detail-page request.

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

Proxy settings. Jobs.ac.uk works reliably over Apify's default datacenter proxy.

## Actor input object example

```json
{
  "searchQuery": "lecturer",
  "maxResults": 20,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# 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": "lecturer",
    "maxResults": 20,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("studio-amba/jobs-ac-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 = {
    "searchQuery": "lecturer",
    "maxResults": 20,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("studio-amba/jobs-ac-uk-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 '{
  "searchQuery": "lecturer",
  "maxResults": 20,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call studio-amba/jobs-ac-uk-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,studio-amba/jobs-ac-uk-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/icgOMr2jHaUVsrYry/builds/ZLgXwmSGxYFGhGgYT/openapi.json
