CV-Library Scraper
Pricing
from $1.60 / 1,000 results
CV-Library Scraper
Scrape structured job data from CV-Library.co.uk — one of the UK's largest job boards. Returns titles, companies, salaries, full descriptions and geo-data.
Pricing
from $1.60 / 1,000 results
Rating
0.0
(0)
Developer
Unfenced Group
Maintained by CommunityActor stats
1
Bookmarked
21
Total users
8
Monthly active users
12 hours ago
Last modified
Categories
Share

Extract job listings from cv-library.co.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 British scraper, not a global tool with a country dropdown. Search, locations and currency (GBP) are tuned for cv-library.co.uk.
📄 Clean job records
Job title, direct listing URL and publish date for every record, in a consistent structure.
💶 Salary data
Salary information parsed from the listing where the employer publishes it, in GBP. Missing salaries are returned as null, never guessed.
🏢 Company details
Hiring company name plus the profile details the source publishes, such as logo and company page.
📍 Location fields
Structured location data for every listing, ready for filtering and analysis.
🔁 Repost & change detection
Every record carries isRepost and changeStatus, so daily feeds return genuinely new jobs instead of reposted duplicates.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
searchQuery | string | "developer" | Job title, keywords, or job reference. Example: "nurse", "software engineer". |
location | string | (empty) | City, postcode, or county. Example: "London", "M1 1AA", "West Yorkshire". |
maxResults | integer | 100 | Maximum number of job listings to return. |
fetchDetails | boolean | false | ON: fetches full job description, salary, company info, and all details. OFF: returns basic listing info only (faster, lower cost). |
skipReposts | boolean | false | Skip job listings already seen in previous runs (90-day deduplication window). |
daysOld | integer | (empty) | Only return listings posted within this many days. Leave empty for no limit. |
contractType | string | (empty) | Filter by contract type. Accepted values: permanent, contract, temporary, part-time, apprenticeship. |
proxyConfiguration | object | {"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]} | Apify proxy configuration. CV-Library blocks datacenter IPs — use RESIDENTIAL proxy (country: GB recommended). |
startUrls | array | (empty) | Optional list of CV-Library search or category URLs to scrape directly. |
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 |
|---|---|---|
id | string | Unique listing ID from the source. |
url | string | Direct link to the listing. |
applyUrl | string | Direct application link. |
title | string | Job title as published. |
company | string | Hiring company name. |
location | string | Location as displayed on the listing. |
city | string | City of the position. |
country | string | Country of the position. |
contractType | string | Contract type as published. |
workSchedule | string | Work schedule. |
industry | string | Industry as published. |
salaryRaw | string | Salary raw. |
salaryMin | string | Minimum salary (null if not published by the employer). |
salaryMax | string | Maximum salary (null if not published by the employer). |
salaryCurrency | string | Currency code of the salary. |
salaryPeriod | string | Pay period the salary refers to (e.g. year, month, hour). |
publishDate | string | Publish date. |
publishDateISO | string | Publish date iso. |
isFeatured | boolean | Is featured. |
source | string | Source. |
scrapedAt | string | Timestamp when this record was scraped. |
summary | string | Summary. |
contentHash | string | Stable hash of the listing content, used for repost and change detection. |
isRepost | boolean | true when the listing is a repost of an earlier job (detected by content hash). |
changeStatus | string | NEW, CHANGED or UNCHANGED compared to the previous time this job was seen. |
originalPublishDate | string | Original publish date. |
originalUrl | string | Original url. |
Example record
{"id": "216281554","url": "https://www.cv-library.co.uk/job/216281554/paid-emails-work-from-home","applyUrl": "https://www.cv-library.co.uk/job/216281554/paid-emails-work-from-home/apply","title": "Paid Emails - Work From Home","company": "Opinion Groups","location": "Nationwide","city": "Nationwide","country": "GB","contractType": "permanent","workSchedule": null,"industry": null,"salaryRaw": null,"salaryMin": null,"salaryMax": null,"salaryCurrency": null,"salaryPeriod": null,"publishDate": "2026-06-29","publishDateISO": "2026-06-29T03:16:10.000Z","isFeatured": false,"source": "cv-library.co.uk","scrapedAt": "2026-06-30T04:53:21.514Z","summary": "Paid Emails - Work From Home · Opinion Groups · Nationwide","contentHash": "13be258b8688fbec","isRepost": true,"changeStatus": "UNCHANGED","originalPublishDate": "2026-06-29","originalUrl": "https://www.cv-library.co.uk/job/216281554/paid-emails-work-from-home"}
Examples
Search for warehouse operative roles in Manchester:
{"searchQuery": "warehouse operative","location": "Manchester","maxResults": 100}
Filter by contract type:
{"searchQuery": "warehouse operative","location": "Manchester","maxResults": 100,"contractType": "FULL_TIME"}
Scrape a specific search URL:
{"startUrls": [{"url": "https://www.cv-library.co.uk/"}],"maxResults": 200}
Daily feed (run on a schedule):
{"searchQuery": "warehouse operative","daysOld": 1,"skipReposts": true,"maxResults": 500}
Schedule this input to run once a day in the Apify Scheduler — each run returns only jobs posted in the last 24 hours.
💰 Pricing
$2 per 1,000 results — you only pay for successfully retrieved listings. Failed retries are never charged.
| Results | Cost |
|---|---|
| 100 | ~$0.2 |
| 1,000 | ~$2 |
| 10,000 | ~$20 |
| 100,000 | ~$200 |
Flat-rate alternatives typically charge $29–$49/month regardless of usage.
Subscription tiers lower the rate further, down to $1.2 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: cv-library.co.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