Jobs.ac.uk Job Scraper
Pricing
$1.49 / 1,000 result scrapeds
Jobs.ac.uk Job Scraper
Scrapes academic job listings from jobs.ac.uk — the UK's leading higher education job board. Extracts rich structured data. JobPosting schema. No proxy required. Supports keyword, location, discipline, and job-type filtering.
Pricing
$1.49 / 1,000 result scrapeds
Rating
0.0
(0)
Developer
Unfenced Group
Maintained by CommunityActor stats
1
Bookmarked
13
Total users
6
Monthly active users
a day ago
Last modified
Categories
Share

Extract job listings from jobs.ac.uk at scale, in a clean, consistent structure ready for analysis, job boards, recruiting tools and market research. No API key required.
Why this scraper?
🎯 Built for the United Kingdom
A dedicated UK academic scraper, not a global tool with a country dropdown. Search, locations and currency (GBP) are tuned for jobs.ac.uk.
📄 Complete job data
Full job title and description, direct listing URL and publish date for every record.
💶 Salary data
Salary information parsed from the listing where the employer publishes it, in GBP. Missing salaries are returned as null, never guessed.
📍 Location fields
Structured location data for every listing, ready for filtering and analysis.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
searchQuery | string | (empty) | Job title, skills, or keywords to search for. |
location | string | (empty) | City or region to search in (e.g. London, Cambridge, Edinburgh). |
distance | string | (empty) | Search radius in miles from the specified location. Options: 0, 1, 2, 5, 10, 15, 20, 30, 40, 50, 75, 100. |
discipline | string | (empty) | Academic discipline slug (e.g. computer-science, biology, economics). See jobs.ac.uk facets for valid values. |
jobType | string | (empty) | Employment type filter (e.g. academic, research, professional, technical). |
employer | string | (empty) | Filter by employer name. |
maxJobs | integer | 100 | Maximum number of jobs to scrape. Default is 100. Set to 0 for unlimited (caution: may be slow for broad searches). |
fetchDetails | boolean | false | If true, fetches each job detail page for rich data (description, structured salary, employment type). If false, returns only listing-level data (faster, cheaper). |
pageSize | integer | 25 | Number of results per search page. Max 25. |
concurrency | integer | 5 | Number of detail pages to fetch in parallel. |
maxResults | integer | 100 | Maximum number of results to return. |
Output schema
Every field below is present on every record. Fields the source does not publish for a given job are returned as null rather than omitted.
| Field | Type | Description |
|---|---|---|
advertId | string | list |
title | string | list + JSON-LD |
url | string | list |
department | string | list |
employer | string | JSON-LD |
employerUrl | string | JSON-LD |
location | string | list |
locationCity | string | JSON-LD |
locationCountry | string | JSON-LD |
isRemote | boolean | JSON-LD |
jobLocationType | string | JSON-LD |
salaryRaw | string | list |
salaryMin | number | JSON-LD |
salaryMax | number | JSON-LD |
salaryCurrency | string | JSON-LD |
salaryUnit | string | JSON-LD |
datePlaced | string | list |
datePosted | string | JSON-LD |
closingDate | string | list |
validThrough | string | JSON-LD |
employmentType | array | JSON-LD |
description | string | JSON-LD |
descriptionMarkdown | string | Full description converted to Markdown. |
descriptionText | string | JSON-LD |
detailFetched | boolean | — |
Example record
{"advertId": "1080649","title": "Lecturer in Mathematics","url": "https://www.jobs.ac.uk/job/DSD100/lecturer-in-mathematics","department": "Mathematics","employer": "UCL","employerUrl": "http://www.ucl.ac.uk","location": "London, Hybrid","locationCity": "London","locationCountry": "United Kingdom","isRemote": true,"jobLocationType": "TELECOMMUTE","salaryRaw": "£54,931 to £62,903","salaryMin": 54931,"salaryMax": 62903,"salaryCurrency": "GBP","salaryUnit": "YEAR","datePlaced": "02 Jul","datePosted": "2026-07-02T00:00:00+00:00","closingDate": "14 Jul","validThrough": "2026-07-14T00:00:00+00:00","employmentType": ["Full Time","Fixed-Term/Contract"],"description": "<p><strong>About the role</strong></p>\n<p>Applications are invited for a full-time Lecturer in Mathematics. This post is available from 1<sup>st</sup> September 2026 or as soon as possible thereafter. …","descriptionMarkdown": "**About the role**\n\nApplications are invited for a full-time Lecturer in Mathematics. This post is available from 1st September 2026 or as soon as possible thereafter.\n\n**About you**\n\nAn outstanding c …","descriptionText": "About the role Applications are invited for a full-time Lecturer in Mathematics. This post is available from 1 st September 2026 or as soon as possible thereafter. About you An outstanding candidate w …","detailFetched": true}
Examples
Search for lecturer roles in London:
{"searchQuery": "lecturer","location": "London","maxResults": 100}
Filter by contract type:
{"searchQuery": "lecturer","location": "London","maxResults": 100,"jobType": "FULL_TIME"}
Larger run with a hard cap:
{"searchQuery": "lecturer","location": "London","maxResults": 500}
Daily feed (run on a schedule):
{"searchQuery": "lecturer","maxResults": 500}
Schedule this input in the Apify Scheduler (for example daily at 07:00) to keep an always-fresh feed of the newest listings.
💰 Pricing
$1.49 per 1,000 results — you only pay for successfully retrieved listings. Failed retries are never charged.
| Results | Cost |
|---|---|
| 100 | ~$0.15 |
| 1,000 | ~$1.49 |
| 10,000 | ~$14.9 |
| 100,000 | ~$149 |
Flat-rate alternatives typically charge $29–$49/month regardless of usage.
Subscription tiers lower the rate further, down to $0.89 per 1,000 at the highest tier. Use the Max results cap in the input to control your spend exactly.
Performance
| Run size | Typical time |
|---|---|
| 100 results | under 1 minute |
| 1,000 results | 2–4 minutes |
| 10,000 results | 20–35 minutes |
Known limitations
- Salary is only returned when the employer publishes it — many listings carry
nullsalary fields. - Company details vary per listing; the scraper returns what the source publishes and never invents data.
- Very large result sets are bounded by the source's own paging limits.
- Listings can be removed by the source at any time, so a small share of URLs may expire shortly after scraping.
Technical details
- Source: jobs.ac.uk — the United Kingdom job listings
- Coverage: everything the public search exposes, filterable via the input parameters above
- Retry: automatic retry on network errors with exponential backoff
Need a custom scraper?
Unfenced Group builds Apify actors for any website — for free.
If the site you need isn't in our portfolio yet, just ask. We scope, build, and publish it at no cost to you. You only pay for results — we absorb the compute and proxy costs ourselves. Same pay-per-result pricing, same quality, same standards as every actor in this portfolio.
Get in touch: www.unfencedgroup.nl