CV-Library Scraper [$1/1K💰] | UK Jobs | Salary Data avatar

CV-Library Scraper [$1/1K💰] | UK Jobs | Salary Data

Pricing

from $0.90 / 1,000 results

Go to Apify Store
CV-Library Scraper [$1/1K💰] | UK Jobs | Salary Data

CV-Library Scraper [$1/1K💰] | UK Jobs | Salary Data

Scrape UK job listings from cv-library.co.uk: titles, companies, locations + geo-coordinates, parsed salaries, contract types, dates, full descriptions and apply URLs (up to 10,000 jobs/run). Automatic Cloudflare warm-up. Pay-per-event.

Pricing

from $0.90 / 1,000 results

Rating

0.0

(0)

Developer

Ahmed Jasarevic

Ahmed Jasarevic

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

19 days ago

Last modified

Categories

Features

Limited permissions

Share

CV-Library Scraper - UK Job Listings, Salaries and Recruiter Data

The CV-Library Scraper extracts public UK job listings from cv-library.co.uk into structured JSON. Collect job titles, companies, advertiser type, locations with coordinates, parsed salary ranges, contract type, posting dates, descriptions, apply URLs and company details.

Use it for UK recruitment lead generation, salary benchmarking, hiring-trend tracking, job-feed APIs or labour-market research. Search by keyword and location, combine several queries, or supply CV-Library search and job URLs directly. The Actor handles up to 10,000 jobs per run and includes an automatic Cloudflare warm-up on a UK residential connection.

Main Use Cases for CV-Library Job Data

  • UK job market research - analyze vacancies by keyword, region, salary and contract type.
  • Salary benchmarking - compare published salary minimums and maximums across roles.
  • Recruitment lead generation - identify companies and whether an ad comes from an agency or a direct employer.
  • Hiring trend tracking - schedule runs and compare posting and expiry dates over time.
  • Job feed and board products - load normalized UK listings into an app, database or alerting pipeline.
  • Candidate sourcing research - map demand by city, region, postcode, industry and contract type.
  • AI job assistants - provide an LLM with structured vacancies, salaries and apply links.

How It Works

CV-Library Scraper workflow: UK searches and job URLs become records with salary, location, contract type and company data

At run start, the Actor launches a real Chromium browser once through a UK residential sticky session. That warm-up solves the public Cloudflare challenge and establishes the IP and user-agent pair. The crawl then uses a plain HTTP Cheerio crawler on the same sticky session and cookie jar, so it can read search pages without rendering every page in a browser.

Search pages expose the site's own backend records inside Next.js flight data. Each record can include the job ID, title, company account, location and centroid, salary object, contract type, posting date, category, featured flag, logo, apply URLs and a description. The Actor reads those records directly and paginates with page_number; it can also fall back to the visible job cards if the flight payload is absent.

By default, the Actor returns list-level data: one search request can cover 100 jobs, which is fast and less likely to trigger rate limits. With includeDescription: true, it opens each job page for the full description, expiry date, contract length, employment type and direct-apply flag. Detail requests are slower and more likely to be blocked; if one fails, the Actor keeps the list-level record instead of dropping the job.

The warm-up is fixed; all requests use the UK residential route. Direct job URLs are supported, but a direct job URL is handled as a detail request - with includeDescription: false it produces no row in the current build. Use a search URL or the keyword fields for list mode.

Input

FieldTypeRequiredDefaultWhat it does
searchQuerystringNosoftware developerJob title, keywords or skills. Empty means browse all jobs.
keywordsstring[]No[]Extra queries. Each runs its own search and shares the maxResults budget.
locationstringNo-City, town, county or postcode, such as London, M1 1AA or West Yorkshire.
distanceintegerNo15Radius in miles, 0-750. Applies only with a location.
contractTypestringNoanyany, permanent, contract, temporary, part-time or apprenticeship.
daysOldintegerNo14Posted-within filter. CV-Library uses 1, 3, 7 and 14-day bands; other values round up.
salaryMinintegerNo20000Minimum annual salary in GBP.
salaryMaxintegerNo100000Maximum annual salary in GBP.
startUrlsarrayNo[]CV-Library search or job URLs. Each item is { "url": "..." }. These bypass search construction.
maxResultsintegerNo100Maximum jobs, 1-10,000. Free accounts receive a 10-job preview.
maxPagesintegerNo50Present in the schema, but the current build derives its page cap from maxResults and does not read this value.
includeDescriptionbooleanNofalseFetch each job page for the full description and extra detail fields.

searchQuery and keywords are combined: each keyword runs a separate search and all searches share the same result budget. startUrls take priority over the search fields. The daysOld, distance, salary and contract filters are applied only to searches the Actor builds; they are not added to a supplied URL.

Output

The dataset contains 35 fields per job. Fields the listing does not publish are null.

Field groupFieldsWhat you get
Identityid, url, applyUrl, title, source, isFeatured, directApplyJob ID, public URL, apply URL, title and source flags. directApply requires detail mode.
Companycompany, companyId, companyUrl, companyLogo, advertiserTypeCompany identity and agency/direct-employer signal.
Locationlocation, city, region, postcode, country, latitude, longitudeDisplay location, parsed geography and coordinates.
SalarysalaryRaw, salaryMin, salaryMax, salaryCurrency, salaryPeriodOriginal salary text, parsed values, GBP and period.
EmploymentcontractType, contractLength, employmentType, industryContract and industry fields; the last three are often detail-only.
DatespostedText, postedDate, postedDateISO, expiryDate, scrapedAtPosting text and dates, expiry in detail mode, extraction time.
DescriptiondescriptionHtml, descriptionTextList-level teaser or full description, depending on mode.

advertiserType comes from the backend account type when available and falls back to a text heuristic on the page. Treat it as a research signal, not a legal classification. salaryMin and salaryMax are numbers only when CV-Library publishes a usable salary; otherwise they are null. contractLength, employmentType, expiryDate and directApply are detail-mode fields and remain null in list mode.

Pricing

The Actor uses pay-per-event pricing: a start event per run, a result event for list rows and a detail event for full-detail rows.

EventFREEBRONZESILVERGOLDPLATINUMDIAMOND
Actor start, per run$0.00005$0.00005$0.00005$0.00005$0.00005$0.00005
result per job$0.001$0.001$0.00095$0.0009$0.0009$0.0009
detail per job$0.0014$0.0014$0.00135$0.0013$0.0013$0.0013

List mode is $1.00 per 1,000 jobs on the FREE tier. Detail mode additionally uses the detail event; the live pricing panel shows the current total for your run. Free accounts receive a 10-job preview, and preview rows are billed. UK residential proxy traffic is billed separately through Apify's proxy accounting.

Example Input

{
"searchQuery": "care assistant",
"location": "Leeds",
"distance": 15,
"contractType": "permanent",
"maxResults": 200,
"includeDescription": false
}

Example Output

{
"id": "3494812",
"url": "https://www.cv-library.co.uk/job/3494812/care-assistant-leeds",
"applyUrl": "https://www.cv-library.co.uk/job/3494812/care-assistant-leeds/apply",
"title": "Care Assistant - Days",
"company": "Example Care Homes",
"companyId": "100234",
"companyUrl": "https://www.cv-library.co.uk/company/100234",
"advertiserType": "Recruitment Agency",
"location": "Leeds, West Yorkshire",
"city": "Leeds",
"region": "West Yorkshire",
"postcode": "LS1 4AP",
"country": "GB",
"latitude": 53.801,
"longitude": -1.548,
"salaryRaw": "GBP 22,000 - 26,000 per annum",
"salaryMin": 22000,
"salaryMax": 26000,
"salaryCurrency": "GBP",
"salaryPeriod": "YEAR",
"contractType": "Permanent",
"industry": "Healthcare",
"postedText": "2 days ago",
"postedDate": "2026-10-08",
"postedDateISO": "2026-10-08T08:00:00Z",
"isFeatured": false,
"source": "cv-library.co.uk",
"scrapedAt": "2026-10-10T10:00:00.000Z"
}

Integrations and Automation

Run the Actor through the Apify API, Apify MCP server, Zapier, Make, n8n or an Apify schedule. Send jobs to Google Sheets, Airtable, a CRM, a job board, a database or a Slack/email alert. Export the dataset as JSON, CSV, Excel, XML or HTML.

For monitoring, keep id as the stable key and snapshot runs on a schedule. Compare postedDateISO, salaryMin and salaryMax to spot new roles and salary changes. Store the search parameters separately because the output does not repeat the query or location.

FAQ

Does CV-Library have a public API?

CV-Library documents a partner Job View API, but it requires approved partner credentials. This Actor reads the public search pages and the site's own embedded backend records instead. It does not use a private API key.

Why do some rows lack descriptions or expiry dates?

List mode returns the teaser and fields available in the search payload. Set includeDescription: true to open each job page for the full description, contract length, employment type, expiry date and direct-apply flag. Detail mode is slower and costs an additional event.

Why does a direct job URL return nothing?

In the current build, a /job/<id>/... URL is treated as a detail request. When includeDescription is false, the detail handler has no list record to fall back to and emits no row. Use a search URL or keyword input for list mode, or enable detail mode for direct job URLs.

What does maxPages do?

It is present in the input schema for compatibility, but the current build calculates its page budget from maxResults and does not read the value. Use maxResults to control run size.

Are salaries always available?

No. The Actor returns salaryRaw and parsed salaryMin/salaryMax only when the employer publishes a salary. It never estimates or invents a missing range. salaryPeriod can be year, month, week, day or hour.

Can I use the listings for candidate outreach?

The listings are public job ads, but company contacts and any personal data still require a lawful basis under UK GDPR and the Data Protection Act. Do not use the Actor to scrape candidate profiles or to send unlawful unsolicited marketing.

For AI Agents and LLM Apps

The Actor is callable through the Apify API and Apify MCP server and returns one JSON row per UK job listing.

Minimal input

{
"searchQuery": "software developer",
"location": "London",
"maxResults": 10,
"includeDescription": false
}

Behavior an agent should know

  • One item represents one job ad, not a candidate or a guaranteed live vacancy.
  • includeDescription is the main cost and speed lever.
  • Salary fields can be null when no salary is published.
  • advertiserType is a research signal, not a verified legal status.
  • Direct job URLs require detail mode in the current build.
  • maxPages is currently ignored; use maxResults.
  • Free accounts are capped at 10 jobs.

Suggested tool description: "Collect UK CV-Library job listings with titles, companies, geo-located salaries, contract types, dates and apply URLs."

This Actor is an independent tool and is not affiliated with, endorsed by or sponsored by CV-Library Ltd. It accesses publicly available job listings and job pages. It does not bypass login, authentication or paywalls; the browser warm-up is used only to pass the site's public-facing Cloudflare challenge on a residential connection.

CV-Library's terms, robots guidance and applicable law still apply. UK GDPR and the Data Protection Act govern any personal data in listings or company records. Use the data for lawful recruitment, market research and salary analysis, keep only what you need, and do not use it for unlawful outreach or automated decisions about candidates.

SEO Keywords

CV-Library scraper, cv-library API, UK job scraper, UK jobs data, CV-Library jobs, UK job listings, job board scraper, salary benchmarking, UK salary data, recruitment lead generation, UK labour market data, hiring trends UK, job feed API, CV-Library salary data, contract jobs UK, permanent jobs UK, recruiter data, job posting monitor, UK job market analysis, candidate sourcing research, geo job data, job dataset