CWjobs UK Tech Jobs Scraper [Only $1.5] (/w EMAILS)
Pricing
from $1.50 / 1,000 results
CWjobs UK Tech Jobs Scraper [Only $1.5] (/w EMAILS)
🇬🇧 [Only $1.5] Scrape every UK tech job on cwjobs.co.uk — JavaScript, DevOps, data, software engineering. Get parsed salary bands (£min–£max), employer names + logos, geo-coords (lat/lng), industries, posting dates. 14 fields per row from JobPosting JSON-LD. Auto-paginates. JSON + CSV.
Pricing
from $1.50 / 1,000 results
Rating
5.0
(2)
Developer
Muhamed Didovic
Maintained by CommunityActor stats
0
Bookmarked
31
Total users
3
Monthly active users
7 days ago
Last modified
Categories
Share
CWjobs UK Tech Jobs Scraper
Scrape UK tech / IT job postings from CWjobs.co.uk — JavaScript developer, DevOps engineer, data engineer, software architect, cybersecurity analyst. Every row carries title, employer + logo, location with lat/lng, structured salary band (min / max / currency / period — including contractor day-rates), datePosted, validThrough, employment type, industry, and a populated applyUrl when the role is direct-apply. One flat row per job from rich JobPosting JSON-LD plus structured salary metadata.

Why this actor
CWjobs.co.uk is the UK's dominant tech-vertical job board — IT, software engineering, DevOps, data, and cybersecurity roles. ~6,500 live London tech postings at any time, server-side scoped to the tech vertical so you get exactly what CWjobs.co.uk's web UI shows.
- Tech-only result set — the actor's request is scoped to IT/tech roles (software, DevOps, data, cybersecurity, IT support) so you don't pay for irrelevant general-UK rows
- Efficient JSON listing pagination at 50 items per page, with
totalItemsreported up-front so we know exactly when we've reached the end - Server-side filters —
postedWithin(1 / 3 / 7 / 14 days),companyTypes(direct employer / agency),salary(minimum), andjobType(permanent / contract / temporary / part-time / work-from-home) all honoured server-side - Apify Residential GB for the per-job detail fetch — the only proxy pool that consistently returns 200 OK on UK job-board detail pages
- JobPosting JSON-LD parsing — every row carries the full 14-field JSON-LD detail PLUS structured salary metadata. Tech contractor day-rates (£500–£900/day typical) and permanent annual salaries (£40k–£120k typical) are both captured cleanly with the structured
periodfield applyUrlpopulated whendirectApply: true(≈ 60–70 % of jobs) — the candidate-facing apply URL, not just the search-page URL- Defence in depth — built-in upstream-credential rotation safeguards keep runs flowing even during brief upstream auth hiccups
- Mixed input — listing URLs auto-paginate + emit one row per detail; direct detail URLs scrape one row each
Use cases
- Tech recruitment market intelligence — salary benchmarking for software, DevOps, data, and cybersecurity roles across UK regions
- Sales prospecting for B2B SaaS — find tech companies hiring in your target verticals + locations, with employer details + Apify-extracted geo-coordinates
- HR competitive analysis — compare your engineering / data salary bands against UK tech market signal
- Contractor market analysis — day-rate trends for software contractors (
salary.period === "day"filtering surfaces this cleanly) - ATS / job-aggregator integration — clean structured input for downstream pipelines
- Geospatial analytics — every row carries
location.lat+location.lngfrom JSON-LDPostalAddress.geo
Input
| Field | Type | Required | Notes |
|---|---|---|---|
startUrls | string[] | yes | Mix of listing URLs (https://www.cwjobs.co.uk/jobs/javascript, /jobs/devops/in-london, /jobs/in-remote) and direct detail URLs. Filters supported in the query string: ?postedWithin=1|3|7|14, ?companytypes=1|2, ?salary={int}, ?jobType=permanent|contract|temporary|partTime|workFromHome. |
maxItems | integer | no | Maximum job rows emitted per listing URL. Each row = one paid dataset item. Default 1000. Free-tier users have a hidden global ceiling of 100 rows. |
maxConcurrency | integer | no | Parallel HTTP requests for detail-page fetches. Sweet spot 3–5 via Apify Residential GB. Default 4. |
maxRequestRetries | integer | no | Per-URL retry budget on proxy CONNECT failures, HTTP/2 stream resets, and network errors. Default 6. |
proxy | object | no | Apify Residential GB required for the detail-page fetch. Default is wired correctly — don't override unless you know what you're doing. |
Example input
{"startUrls": ["https://www.cwjobs.co.uk/jobs/javascript/in-london","https://www.cwjobs.co.uk/jobs/devops/in-manchester","https://www.cwjobs.co.uk/jobs/in-remote?postedWithin=7&salary=60000"],"maxItems": 200,"maxConcurrency": 4,"proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "GB" }}
Output schema
Every row has rowType: "job". 14 fields from JSON-LD + structured salary band (annual or day-rate for contractors) + lat/lng + applyUrl.
{"rowType": "job","sourceSearchUrl": "https://www.cwjobs.co.uk/jobs/javascript/in-london","jobId": "107380088","jobUrl": "https://www.cwjobs.co.uk/job/product-consultant-ii-insurance/verisk-analytics-job107380088","sourceSite": "cwjobs.co.uk","title": "Product Consultant II (Insurance)",// ── JobPosting JSON-LD ──"description": "<p>Verisk Analytics is looking for a Product Consultant…</p>","datePosted": "2026-05-20T09:14:32.000Z","validThrough": "2026-06-30T09:14:32.000Z","employmentType": "CONTRACTOR","industry": "Insurance, Insurance-Information Technology","directApply": true,"jobLocationType": "TELECOMMUTE","applicantLocationRequirements": ["United Kingdom"],// ── Employer ──"employer": {"name": "Verisk Analytics","url": "https://www.cwjobs.co.uk/jobs/verisk-analytics?cmpId=…","logoUrl": "https://www.cwjobs.co.uk/CompanyLogos/…verisk.png"},// ── Location ──"location": {"text": "London, GB","locality": "London","region": "London","postalCode": null,"country": "GB","lat": 51.50735,"lng": -0.12776},// ── Salary (often DAY rates for contractors, ANNUAL for permanent) ──"salary": {"rawText": "£650 - £700 per day","min": 650,"max": 700,"currency": "GBP","period": "day"},// ── Apply flow ──"applyUrl": "https://www.cwjobs.co.uk/job/product-consultant-ii-insurance/verisk-analytics-job107380088","applyType": "internal","scrapedAt": "2026-05-21T20:25:31.012Z"}
Apply flow — what applyUrl and applyType mean
directApply | applyType | applyUrl | Meaning |
|---|---|---|---|
true | "internal" | = jobUrl | CWjobs hosts a one-click apply form on the job page itself. |
false | "external" | null | External recruiter ATS (e.g. Greenhouse, Workday, the company's own careers portal). Open jobUrl in a browser and click Apply to be redirected. |
| missing | "unknown" | null | JSON-LD didn't surface the flag. Treat the same as "external". |
Practical rule of thumb: ≈ 60–70 % of CWjobs listings are directApply: true.
Notes & limitations
- Day-rates are common for contractor roles. UK tech contracting is rate-per-day (£500–£900/day typical for senior software engineering contracts). The structured
salary.period: "day"field captures that — use it to separate contractor day-rates from permanent annual salaries in analysis. employmentTypefill is higher than average (≈ 80%) because UK tech has clearer permanent-vs-contract distinctions.jobLocationType: "TELECOMMUTE"is common for tech roles (remote / hybrid working is mainstream in IT).- Apify Residential GB is mandatory for the per-job detail fetch.
- No radius-based filter. Use a tighter
where=location instead. - No maximum-salary filter. Only minimum (
?salary=N). - CWjobs editorial mix is broader than pure software. Their definition of "tech" includes IT operations, industrial automation, analytics, insurance-tech, and adjacent engineering. Expect some "Instrument Control Automation Technician" or "Product Consultant" alongside the pure software roles.
FAQ
Which CWjobs URLs work?
Two types: listing URLs (/jobs/javascript, /jobs/devops/in-london, /jobs/in-remote, /jobs/{company-slug}-jobs) which auto-paginate, and direct detail URLs (/job/{title-slug}/{org-slug}-job{id}) which scrape one row each.
Why is my salary £650 instead of £65,000?
Tech contractor jobs are paid by day. The salary.period field is the source of truth: "day" = daily rate (contractor), "annum" = annual salary (permanent), "hour" = hourly (uncommon in tech, more usual in support roles). The min/max numbers are in the unit indicated by period. For a clean salary analysis, group by period first.
Are remote / hybrid jobs included?
Yes. UK tech is heavily remote-friendly. Use ?jobType=workFromHome to filter to remote-only roles, or check the jobLocationType === "TELECOMMUTE" field on each row.
What does each dataset-item charge cover?
One tech job row with all 14 JSON-LD fields plus the structured salary band (with period correctly identifying day-rate vs annual) and structured location (lat/lng). maxItems is per-listing-URL.
Support
- Bugs / feature requests — open an issue on the GitHub repo
- Custom exports / tailored fields — drop a note via the Apify Store contact form
- Other actors — see my Apify Store profile
🤖 For AI Agents & LLM Apps
Compact reference for AI agents calling this actor via the Apify MCP server or the Apify API (actor: memo23/cwjobs-scraper).
Purpose: Extract UK tech / IT job postings from CWjobs.co.uk — one flat row per job from JobPosting JSON-LD plus a structured salary band (annual or contractor day-rate), lat/lng, and a populated applyUrl for direct-apply roles.
Minimal input:
{"startUrls": ["https://www.cwjobs.co.uk/jobs/in-london"],"maxItems": 25,"maxConcurrency": 4,"maxRequestRetries": 6,"enrichEmails": false,"qualifyByPayment": false,"proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "GB" }}
Output: one row per job — rowType, sourceSearchUrl, jobId, jobUrl, sourceSite, title, description, datePosted, validThrough, employmentType, industry, directApply, jobLocationType, applicantLocationRequirements, employer {name, url, logoUrl}, location {text, locality, region, postalCode, country, lat, lng}, salary {rawText, min, max, currency, period}, applyUrl, applyType, scrapedAt.
Behaviors an agent should know:
startUrlsmixes listing URLs (auto-paginate) and direct detail URLs (one row each). Query filters honored server-side:?postedWithin=1|3|7|14,?companytypes=1|2,?salary={int},?jobType=permanent|contract|temporary|partTime|workFromHome.maxItemsis per listing URL; default1000. Free-tier users are capped at 100 total rows.salary.perioddistinguishes contractor day-rates ("day") from permanent annual pay ("annum") — group by it before analysis.- Apify Residential GB is required for the per-job detail fetch; keep
maxConcurrencyat 3–5. enrichEmails(opt-in) adds employer contact-email fields, billed per email found (never for misses);qualifyByPaymentrequires it and adds payment-stack fields at no extra charge.- Each job row is one paid dataset item (pay-per-result); see the Pricing tab on the actor page.
⚠️ Disclaimer
This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by CWjobs.co.uk or any of its parent / sister companies. All trademarks mentioned are the property of their respective owners.
The scraper extracts only publicly visible tech job postings from CWjobs.co.uk — no login, no CAPTCHA solving, no credential forgery. The actor uses a conservative concurrency cap (default 4 parallel requests) to avoid burdening CWjobs's infrastructure.
Users are responsible for:
- Complying with CWjobs.co.uk's Terms of Service
- Following UK GDPR + your jurisdiction's data-protection laws when storing or processing scraped postings
- Not contacting candidates listed by employers in scraped postings
- Not republishing scraped data in a way that competes commercially with CWjobs
SEO Keywords
cwjobs scraper, cwjobs.co.uk scraper, scrape cwjobs, uk tech jobs scraper, it jobs scraper uk, software engineer jobs scraper, javascript jobs scraper, devops jobs scraper, data engineer jobs scraper, cybersecurity jobs scraper, uk tech salary data, contractor day rate data uk, uk it recruitment data, tech recruitment scraper, uk tech market intelligence, uk it salary benchmark, software contractor rates uk, remote tech jobs scraper, london tech jobs, manchester tech jobs, edinburgh tech jobs, uk it employer data, b2b sales prospecting tech