VOOZH about

URL: https://apify.com/abotapi/jobs-nhs-uk-scraper

⇱ NHS UK $0.8πŸ’° URL | Keyword | Deep Search Scraper Β· Apify


πŸ‘ NHS UK $0.8πŸ’° URL | Keyword | Deep Search Scraper avatar

NHS UK $0.8πŸ’° URL | Keyword | Deep Search Scraper

Pricing

from $0.08 / 1,000 results

Go to Apify Store

NHS UK $0.8πŸ’° URL | Keyword | Deep Search Scraper

From $0.8/1k. Scrape nhs.uk Jobs listings into a flat dataset. Extract 50+ fields, including pay band, salary, full description, essential and desirable criteria, PDFs, sponsorship, DBS, employer details, contacts, and apply URL. Search by filters or use any URL.

Pricing

from $0.08 / 1,000 results

Rating

0.0

(0)

Developer

πŸ‘ AbotAPI

AbotAPI

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

2

Monthly active users

16 days ago

Last modified

Share

NHS Jobs UK Scraper

Scrape every public job advert on jobs.nhs.uk into a clean, flat dataset. Handles 50+ fields per listing including pay band, salary range parsed into numbers, full job description (HTML and plain text), person specification with essential AND desirable criteria split out (the official NHS Jobs structure most other scrapers flatten away), supporting PDF download IDs, sponsorship + UK registration + DBS flags, employer address, contact details, and the direct apply URL. Search by keyword, location, distance, pay band, staff group, contract type, working pattern, salary band, OR paste any jobs.nhs.uk URL refined in your browser.

Why This Scraper?

  • 50+ fields per record, including fields most NHS Jobs scrapers drop: desirable person-spec criteria, supporting PDF document IDs, sponsorship eligibility, UK registration requirement, DBS check requirement, salary parsed into salaryMin / salaryMax / salaryPeriod, full address split into postcode / town / county / lines.
  • Two modes: search builder (keyword + location + 7 facet filters) OR paste any jobs.nhs.uk URL.
  • Concurrent enrichment: 6 detail-page workers run in parallel and push records as soon as each one is parsed. A 50-card page completes in around 10 seconds, and a mid-run abort still flushes everything that finished.
  • Forward pagination: walks ?page=N from any starting URL. URL mode honors the page in the pasted URL.
  • Robust error reporting: when a run returns zero results, an error record explains the proxy upgrade path so users see it in the dataset preview, not just the run log.
  • Cost discipline: efficient fetch path keeps proxy bandwidth around Β£0.0001 per page, so a 1000-listing run typically lands well under Β£2 in compute + proxy.

Data You Get

Sample shape, values are illustrative placeholders, not from a live listing.

FieldExample
idC0000-00-0000
urlhttps://www.jobs.nhs.uk/candidate/jobadvert/C0000-00-0000
referenceNumber000-X000-XXX
titleSample Job Title
employerSample NHS Foundation Trust
employerWebsitehttps://example.org/working-with-us
employerLogoDataUridata:image/png;base64,iVBOR...
locationLondon SW1A 1AA
postcodeSW1A 1AA
addressLine1Sample Hospital
addressTownLondon
addressLines["Sample Hospital", "London", "SW1A 1AA"]
salaryΒ£00,000 to Β£00,000 a year
salaryMin00000
salaryMax00000
salaryPeriodper annum
salaryQualifierinclusive of HCAS
paySchemeAgenda for change
gradeBand 0
contractTypePermanent
contractDuration12 months
workingPatternFull-time
datePosted01 January 2026
datePostedIso2026-01-01
closingDate15 January 2026
closingDateIso2026-01-15
applyUrlhttps://www.jobs.nhs.uk/candidate/jobadvert/C0000-00-0000/ats-direct-apply
contactNameJane Doe
contactJobTitleRecruitment Lead
contactEmailrecruitment@example.org
contactPhone+44 0000 000000
jobOverviewTextSample short job overview text appears here.
mainDutiesTextSample main duties text appears here.
aboutOrganisationTextSample about-us text appears here.
jobDescriptionTextSample full job description text appears here.
personSpecification[0]{"category": "Qualifications", "essentials": ["Sample essential criterion"], "desirables": ["Sample desirable criterion"]}
supportingDocuments[0]{"name": "Job Description.pdf", "sizeText": "PDF, 000 KB", "documentId": "0000000"}
sponsorshipAvailabletrue
ukRegistrationRequiredtrue
dbsCheckRequiredtrue
privacyPolicyUrlhttps://example.org/privacy
basicInfo{"id": "...", "title": "...", ...} (drop-in compat with rival schemas)
scrapedAt2026-01-01T00:00:00.000Z

How to Use

Search by keyword + location:

{
"mode":"search",
"keywords":["nurse"],
"location":"Manchester",
"distance":"10",
"maxPages":2,
"fetchDetails":true
}

Search by pay band + contract type:

{
"mode":"search",
"keywords":["doctor"],
"location":"London",
"distance":"20",
"payBands":["CONSULTANT","SPECIALTY_DOCTOR"],
"contractTypes":["Permanent","Fixed-Term"],
"workingPatterns":["full-time"],
"maxPages":3,
"maxListings":100
}

Browse a whole staff group across the UK:

{
"mode":"search",
"keywords":[],
"location":"",
"distance":"",
"staffGroups":["NURSING_AND_MIDWIFERY_REGD"],
"sortBy":"publicationDateDesc",
"maxPages":5
}

Paste any jobs.nhs.uk URL:

{
"mode":"url",
"urls":[
"https://www.jobs.nhs.uk/candidate/search/results?keyword=physiotherapist&location=Birmingham&distance=20",
"https://www.jobs.nhs.uk/candidate/jobadvert/C0000-00-0000"
],
"maxPages":2,
"fetchDetails":true
}

Input Parameters

ParameterTypeDefaultDescription
modeenumsearchsearch or url. The other mode's fields are ignored.
keywordsarray of strings["doctor"]Free-text job-title or skill keywords. One scrape per keyword. Empty = browse without a keyword filter.
locationstringLondonTown, city, county, or postcode. Empty = nationwide.
distanceenum10Search radius in miles (5/10/20/30/50/100) or empty for all UK.
payBandsarray of enum[]Multi-select. BAND_2..BAND_9 (Agenda for Change), CONSULTANT, SPECIALTY_DOCTOR, etc.
staffGroupsarray of enum[]Multi-select. MEDICAL_AND_DENTAL, NURSING_AND_MIDWIFERY_REGD, ALLIED_HEALTH_PROF, etc.
contractTypesarray of enum[]Multi-select. Permanent / Fixed-Term / Locum / Apprenticeship / Bank / Voluntary / etc.
workingPatternsarray of enum[]Multi-select. full-time / part-time / job-share / flexible-working / remote-working / etc.
payRangesarray of enum[]Salary bands in thousands GBP (0-10, 10-20, ..., 100).
employerNamestringnullFilter by NHS Trust name (partial match).
covidJobsOnlybooleanfalseLimit to roles tagged COVID-related.
sortByenum"" (Best Match)publicationDateDesc / closingDate / salaryDesc / salaryAsc.
urlsarray of stringsone example URLURL mode only. Paste any jobs.nhs.uk search-results or jobadvert URL.
maxPagesinteger2Hard cap on SERP pages walked per keyword (1..200). 50 listings per page.
maxListingsinteger0Total listings cap across all searches. 0 = no cap.
fetchDetailsbooleantrueFetch each advert's detail page for the full 50+ fields. OFF returns SERP-only fields.
proxyobjectUK residentialProxy config. Default groups: ["RESIDENTIAL"], country: "GB".

Send results into your apps (MCP connectors)

Optionally pipe the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. This is an extra delivery step after the scrape β€” the Apify dataset is never changed.

What gets written to the connector: a condensed, human-readable summary of each record β€” not the full JSON. Each item becomes one entry with a title and its key fields flattened to plain text. The complete record always stays in the Apify dataset.

  1. Authorize a connector once under Apify β†’ Settings β†’ Integrations (Notion, Linear, Airtable, or Apify).
  2. Select it in the "Pipe results into your apps" input field. (If the picker is empty, you haven't authorized a connector yet.)
  3. For Notion, also set notionParentPageUrl to the page where items should be created.

The connection is mediated by Apify's MCP proxy, so this actor never sees your third-party credentials. Leave the field empty to skip.

Output Example

Sample shape, values are illustrative placeholders, not from a live listing.

{
"id":"C0000-00-0000",
"url":"https://www.jobs.nhs.uk/candidate/jobadvert/C0000-00-0000",
"referenceNumber":"000-X000-XXX",
"title":"Sample Job Title",
"employer":"Sample NHS Foundation Trust",
"employerWebsite":"https://example.org/working-with-us",
"employerLogoDataUri":"data:image/png;base64,...",
"location":"London SW1A 1AA",
"postcode":"SW1A 1AA",
"addressLine1":"Sample Hospital",
"addressLine2":null,
"addressTown":"London",
"addressCounty":null,
"addressLines":["Sample Hospital","London","SW1A 1AA"],
"salary":"Β£00,000 to Β£00,000 a year",
"salaryQualifier":"inclusive of HCAS",
"salaryMin":00000,
"salaryMax":00000,
"salaryPeriod":"per annum",
"payScheme":"Agenda for change",
"grade":"Band 0",
"contractType":"Permanent",
"contractDuration":"12 months",
"workingPattern":"Full-time",
"datePosted":"01 January 2026",
"datePostedIso":"2026-01-01",
"closingDate":"15 January 2026",
"closingDateIso":"2026-01-15",
"interviewDate":null,
"applyUrl":"https://www.jobs.nhs.uk/candidate/jobadvert/C0000-00-0000/ats-direct-apply",
"contactName":"Jane Doe",
"contactJobTitle":"Recruitment Lead",
"contactEmail":"recruitment@example.org",
"contactPhone":"+44 0000 000000",
"contactDetails":{
"jobTitle":"Recruitment Lead",
"name":"Jane Doe",
"email":"recruitment@example.org",
"phone":"+44 0000 000000"
},
"employerDetails":{
"name":"Sample NHS Foundation Trust",
"website":"https://example.org/working-with-us",
"address":["Sample Hospital","London","SW1A 1AA"],
"postcode":"SW1A 1AA"
},
"jobOverviewHtml":"<p>Sample short job overview HTML appears here.</p>",
"jobOverviewText":"Sample short job overview text appears here.",
"mainDutiesHtml":"<p>Sample main duties HTML appears here.</p>",
"mainDutiesText":"Sample main duties text appears here.",
"aboutOrganisationHtml":"<p>Sample about-us HTML appears here.</p>",
"aboutOrganisationText":"Sample about-us text appears here.",
"jobDescriptionHtml":"<p>Sample full job description HTML appears here.</p>",
"jobDescriptionText":"Sample full job description text appears here.",
"personSpecification":[
{
"category":"Qualifications",
"essentials":["Sample essential criterion"],
"desirables":["Sample desirable criterion"]
},
{
"category":"Experience",
"essentials":["Sample essential criterion"],
"desirables":[]
}
],
"supportingDocuments":[
{"name":"Job Description.pdf","sizeText":"PDF, 000 KB","documentId":"0000000","downloadFormUrl":"https://www.jobs.nhs.uk/candidate/search/save-job"}
],
"privacyPolicyUrl":"https://example.org/privacy",
"sponsorshipAvailable":true,
"ukRegistrationRequired":true,
"dbsCheckRequired":true,
"saveJobUrl":"https://www.jobs.nhs.uk/candidate/search/save-job/C0000-00-0000",
"basicInfo":{
"id":"C0000-00-0000",
"title":"Sample Job Title",
"url":"https://www.jobs.nhs.uk/candidate/jobadvert/C0000-00-0000",
"employer":"Sample NHS Foundation Trust",
"location":"London SW1A 1AA",
"salary":"Β£00,000 to Β£00,000 a year",
"datePosted":"01 January 2026",
"closingDate":"15 January 2026",
"contractType":"Permanent",
"workingPattern":"Full-time"
},
"scrapedAt":"2026-01-01T00:00:00.000Z"
}

Plan Requirement

The upstream edge filter on jobs.nhs.uk rejects datacenter IPs. UK residential routing is required. The actor's default proxy config is groups: ["RESIDENTIAL"], country: "GB", which covers paid Apify plans (Starter and above include residential).

If you are on the Apify Free plan, residential is not included. Two options:

  1. Upgrade your Apify plan to Starter or above.
  2. Uncheck "Use Apify proxy" in the proxy field and paste your own UK residential proxy URLs (Bright Data, Oxylabs, SmartProxy, IPRoyal, etc.).

When a run returns zero results due to proxy issues, the actor pushes a single { error: true, code: "ZERO_RESULTS", message: "..." } record to the dataset so you see the upgrade hint in the dataset preview as well as the run log.

You might also like

NHS Jobs Scraper

crawlerbros/nhs-jobs-scraper

Extract UK NHS job vacancies from jobs.nhs.uk including title, employer, salary, band, pay scheme, location, contract type, closing date, full description, and more.

15

NHS UK Jobs Scraper πŸ₯πŸ‡¬πŸ‡§πŸ“Š - Cheap

scrapestorm/nhs-uk-jobs-scraper---cheap

Looking to extract NHS job listings across the UK? πŸ” The NHS UK Jobs Scraper πŸ₯ lets you collect jobs by keyword & location, including employer, salary, contract type, location, and closing dates. Fast, structured, and ready for analysis. 🚫 No proxy needed.

6

$1/1K πŸ”₯ Jobs.nhs.uk Scraper (By Search URL)

azzouzana/nhs-uk-jobs-scraper-pay-per-result

#1 πŸš€ Lightning-fast & affordable NHS UK jobs scraper & pay-per-result πŸ₯! Extract search results from jobs.nhs.uk and export them to EXCEL, CSV, JSON, HTML, and more. πŸ”₯ Simply provide your search URL, and you're good to go! πŸ‘€ Start now and stay ahead!

63

5.0

NHS Jobs Scraper β€” Job Listings & Career Data Extractor

scrapepilot/nhs-uk-public-job-board-scraper

Scrape NHS job listings from jobs.nhs.uk. Get title, employer, salary, NHS band, location, contract type, closing date, job description, main duties, and structured person specification. Auto-pagination. Checkpoint resume. $2 per 1,000 jobs.

NHS Jobs Scraper

unfenced-group/nhsjobs-uk-scraper

Scrape NHS Jobs for structured UK healthcare listings. Filter by pay band, staff group, contract type, location. No API key needed.

πŸ‘ User avatar

Unfenced Group

3

NHS Job Extractor

kawsar/nhs-job-extractor

NHS Jobs Scraper that pulls vacancy listings from jobs.nhs.uk by keyword, location, and filter, so recruiters and analysts get clean structured job data without manual searching.

NHS UK Jobs Scraper - Low-costπŸ’²πŸ”₯πŸ‡ΊπŸ‡ΈπŸ’Ό

delectable_incubator/nhs-uk-jobs-scraper-low-cost

πŸ₯πŸ” Extract NHS UK job listings by keyword, location, or search URL. Collect job titles, employers, salaries, contract types, locations, posting dates, closing dates and application URLs. Ideal for recruitment intelligence, healthcare hiring analysis, HR analytics, and UK labor market research πŸ“ŠπŸš€

Finn.no $0.8πŸ’° URL | Keyword | Deep Search Scraper

abotapi/finn-no-jobs-scraper

From $0.8/1K. Scrape active Finn.no ads via search builder or URL. Returns 30+ fields per ad, including full HTML description, employer details, deadline, contacts, languages, sector, industries, keywords, and apply URL.

NHS UK [$0.85πŸ’°] Jobs Scraper Richest Output

memo23/nhs-scraper

πŸ’° $0.85 per 1,000 results. Collects NHS Jobs listings with metadata like vacancy IDs, employer details, pay scheme/band, normalized closing & posting dates, narrative sections (summary, duties, about us), contact info, person specification, documents, and privacy links.

πŸ‘ User avatar

Muhamed Didovic

46

5.0

Reed.co.uk Jobs Scraper β€” UK Salaries & Details

scrapersdelight/reed-jobs-scraper

From $0.50 per 1,000 jobs β€” full details included, one flat per-job price. Scrape Reed.co.uk UK jobs by keyword, location, salary band, contract type & date posted: parsed salary, recruiter, full description, remote flag. Saved-search monitor with Slack/email/webhook alerts. No login or API key.

πŸ‘ User avatar

Scrapers Delight

2