CWJobs Scraper: UK Tech Jobs, Salaries & Geo
Pricing
from $0.89 / 1,000 jobs
CWJobs Scraper: UK Tech Jobs, Salaries & Geo
Scrape every UK tech / IT job on cwjobs.co.uk. Extract titles, employers with logos, full JobPosting JSON-LD, parsed salary bands (min/max/period), geo-coords (lat/lng), industries, and posting dates. Auto-paginate listings or paste direct detail URLs. $1.50 per 1,000 jobs.
Pricing
from $0.89 / 1,000 jobs
Rating
0.0
(0)
Developer
GetAScraper
Maintained by CommunityActor stats
1
Bookmarked
7
Total users
2
Monthly active users
2.9 hours
Issues response
2 minutes ago
Last modified
Categories
Share
πΌ CWJobs Scraper: UK tech jobs, salaries & employers
| UK JOBS DATA SUITE Choose focused job data for UK tech, Scotland, or the Highlands and Islands. | ||
| πΌ CWJobs Scraper β€ You are here | π΄ S1 Jobs Scraper Scotland jobs and salaries | ποΈ HIJOBS Scraper Highlands and Islands jobs |
| Turn current CWJobs vacancies into a clean UK tech hiring dataset Collect job titles, employers, locations, salary ranges, contract types, posting dates, and full descriptions in one run. |
| π Focused searches Target skills, cities, remote work, and contract types. | π· Salary context Compare published pay ranges across roles and locations. | π’ Employer signals See which companies are hiring and where demand is growing. | π― Exact run limits Control the maximum unique jobs saved across the whole run. |
CWJobs Scraper collects current public UK technology vacancies from cwjobs.co.uk. Use it for recruitment research, salary benchmarking, job feeds, and employer hiring analysis.
π What can you collect?
- Job title, direct source link, posting date, and closing date when published.
- Employer name, profile link, and logo when available.
- Location, region, postcode, and published map coordinates.
- Salary minimum, maximum, currency, period, and original salary text.
- Employment type, industry, remote status, and application route.
- Full job description when you choose the optional detail-page mode.
Missing optional values are left empty. The Actor does not invent employer, salary, or location data.
π― Who uses this data?
- I am a recruiter tracking new UK data, software, cloud, and security roles by city and contract type.
- I am a salary analyst comparing published pay ranges across skills, employers, and regions.
- I am a job-data product manager adding current UK technology vacancies to an existing feed.
- I am a market-intelligence analyst following employer hiring activity as an early business signal.
π How to use it
| STEP 1 Choose your search Enter keywords and locations, or paste CWJobs links. | STEP 2 Set the scope Filter by contract, remote status, posting age, and result limit. | STEP 3 Use the results Open the matching output dataset, export the data, or schedule another run. |
The cost-efficient Cheap listing cards mode is selected by default. It collects the useful search-card fields without opening every vacancy page. Choose Full job details when you need descriptions and structured detail fields; that mode makes one additional page request per saved vacancy and therefore costs more.
The maxItems setting applies to the entire run. The Actor continues through unsuitable or duplicate pages until it reaches the limit or exhausts the available listings.
π Input
| Field | Type | Required | Description |
|---|---|---|---|
startUrls | array of URLs | No | Paste CWJobs search or job links when you want to use an exact source page. These links take priority over guided search fields. |
keywords | array of strings | No | Add job titles, skills, or categories such as data-engineer, devops, or cyber-security. Leave empty for a wider search. |
locations | array of strings | No | Add UK cities or regions such as london, manchester, or edinburgh. Leave empty to avoid a location filter. |
scrapeMode | enum | No | Use listings for the lower-cost search-card feed (default), or full_details to open each vacancy page for enriched fields. |
contractType | enum | No | Choose all jobs, permanent, contract, temporary, or part-time roles. |
remoteOnly | boolean | No | Return remote roles only. Leave locations empty when this option is enabled. |
includeDescription | boolean | No | Include the full published job description. Turn it off when a shorter employer and vacancy record is enough. |
dateWithinDays | integer | No | Return jobs posted within the selected number of days. Use 0 to keep all available posting dates. |
maxItems | integer | No | Set the maximum number of unique jobs saved across every search and direct job link in the run. |
maxConcurrency | integer | No | Control how many job pages are processed at the same time. The supplied setting is suitable for most runs. |
maxRequestRetries | integer | No | Control how many times a temporarily unavailable page is tried again. |
proxyConfiguration | object | No | Keep the supplied UK residential connection for the most reliable results. |
π€ Output example
Each saved item represents one genuine CWJobs vacancy.
{"rowType": "job","listingUrl": "https://www.cwjobs.co.uk/jobs/data-engineer/in-london/contract","jobId": "107812345","jobUrl": "https://www.cwjobs.co.uk/job/data-engineer/example-employer-job107812345","title": "Data Engineer","datePosted": "2026-08-03","employmentType": "CONTRACTOR","industry": "Information Technology","employer": {"name": "Example Employer Ltd"},"location": {"text": "London","country": "GB"},"salary": {"rawText": "Β£500 to Β£600 per day","min": 500,"max": 600,"currency": "GBP","period": "day"},"scrapedAt": "2026-08-04T13:27:00.000Z"}
π Data table
| Field | Type | Description |
|---|---|---|
rowType | string | Identifies the item as a job record. |
listingUrl | string | Search page where the vacancy was found. |
jobId | string | Stable CWJobs vacancy identifier. |
jobUrl | string | Direct link to the public vacancy. |
title | string | Published job title. |
description | string | Full published description when requested and available. |
datePosted | string | Published posting date. |
validThrough | string | Closing date when the source provides one. |
employmentType | string | Published employment type, such as FULL_TIME or CONTRACTOR. |
industry | string | Published industry classification. |
directApply | boolean | Indicates whether the vacancy supports direct application. |
jobLocationType | string | Published remote or location arrangement when available. |
applicantLocationRequirements | array | Published location requirements for remote applicants. |
employer | object | Employer name, profile link, and logo when available. |
location | object | Published address and map details. |
salary | object | Original and normalized salary details. |
applyType | string | Indicates whether the application stays on CWJobs or continues elsewhere. |
scrapedAt | string | Time when the job was saved. |
ποΈ Output datasets
- All saved CWJobs rows: The canonical paid dataset for the run. It contains every saved listing-card or enriched job-detail row.
- Listing cards: Card-level rows from Cheap listing cards mode only; no job-detail page was requested for these vacancies.
- Enriched job details: Full JobPosting rows from Full job details mode only, with recruitment-lead and compensation perspectives.
The focused datasets mirror accepted canonical rows after they are saved, so they do not add paid results or charges.
π° Pricing
Pricing is pay per saved job, with a small run-start charge. You are not charged for pages that are filtered out or fail to produce a saved result. Listing mode is the lower-cost choice; full-detail mode uses an additional vacancy-page request for each saved job. There is no fixed subscription.
β Enjoying CWJobs Scraper?
| β β β β β Spend less time collecting vacancies and more time using UK tech hiring data. A rating takes a few seconds and helps recruiters, analysts, and job-data teams find this Actor. Your feedback also guides future improvements. |
| β Β Β Rate this Actor on Apify |
β FAQ
Can maxItems return exactly the number I request?
Yes, when enough matching vacancies are available. Duplicate, outdated, or mismatched jobs do not consume the limit. The run continues until it saves the requested number or exhausts the available listings.
Can I collect contract or remote jobs only?
Yes. Choose the relevant contract type or enable remote-only search. Each saved row keeps the employment type published by CWJobs.
How fresh is the CWJobs data?
Each run reads the public vacancies available at that time. Use the posting-age filter and Apify schedules for recurring searches.
What happens when a page is unavailable or lacks optional details?
Temporarily unavailable pages are tried again. Jobs with a genuine ID and title can still be saved when optional fields are missing. Missing values are never fabricated.
π Support and responsible use
This Actor collects public job-posting data and is not affiliated with CWJobs or the StepStone Group. Follow applicable terms, privacy rules, and local laws when using the results.
If a run does not match your search, open the Issues tab and share the run link. This makes it easier to reproduce the problem without exposing your dataset publicly.
π Other actors
- S1 Jobs Scraper: Scotland Jobs, Salaries & Employers β - Collect Scotland vacancies, salaries, locations, and employer details.
- HIJOBS Scraper: Scotland's Highlands & Islands Jobs β - Track jobs across Scotland's Highlands and Islands.
- NoFluffJobs Scraper: Tech Jobs & Salaries β - Compare technology roles with published salary ranges.
- TeamBlind Reviews Scraper: Employer Monitor β - Follow public employee reviews and employer sentiment.