NHS Job Extractor avatar

NHS Job Extractor

Pricing

from $4.99 / 1,000 results

Go to Apify Store
NHS Job Extractor

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.

Pricing

from $4.99 / 1,000 results

Rating

0.0

(0)

Developer

Kawsar

Kawsar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

NHS Jobs Scraper

NHS Jobs Scraper collects job listings from jobs.nhs.uk. Enter one or more keyword+location pairs, and the actor runs each search independently, collecting up to your item limit per pair. All results land in a single dataset with each record tagged by the keyword and location that produced it.

How pairing works

Keywords and locations are matched line by line:

KeywordsLocationsPair
nurseLondonnurse + London
doctorManchesterdoctor + Manchester
radiographerradiographer + all UK

If you provide fewer locations than keywords, the remaining keywords search across all UK locations. Filters (contract type, working pattern, salary range) apply to every pair in the run.

maxItems is the limit per pair, not a global total. Three keywords with maxItems: 100 can return up to 300 jobs.

What it collects

For every matching job listing, the actor returns:

  • Job title and direct link to the full advert
  • NHS Jobs reference number (e.g. C9152-26-0547)
  • Hiring employer or NHS Trust name
  • Location and postcode
  • Salary range or salary description
  • Date posted and application closing date
  • Contract type: Permanent, Fixed-Term, Locum, Apprenticeship, and more
  • Working pattern: Full time, Part time, Flexible, Remote, and more
  • Search keyword and location that produced the result
  • Timestamp of when the record was collected

Features

  • Multiple keyword+location pairs in a single run
  • Per-pair item limit -- each search is independent
  • Filter every pair by contract type, working pattern, employer, and salary range
  • Automatic pagination across hundreds of result pages per pair
  • Resume from any page number if a previous run was interrupted
  • Covers all NHS job categories: nursing, clinical, administrative, and support roles
  • Clean structured output with searchKeyword and searchLocation fields for easy filtering
  • Exports to JSON, CSV, or Excel via the Apify dataset

Use cases

  • Recruitment pipelines: pull live NHS vacancies for multiple roles and cities in one run
  • Salary benchmarking: compare pay bands for the same role across different regions
  • Closing date monitoring: track application deadlines for dozens of roles without daily manual checks
  • Job board population: feed structured NHS listings into a custom healthcare job board
  • Research and analysis: study NHS hiring by contract type, working pattern, or geography across roles
  • Alert automation: combine with Zapier or Make to send notifications when new roles appear

How it works

  1. You enter one or more keywords and optionally one location per keyword.
  2. The actor pairs each keyword with its corresponding location (extras default to all UK).
  3. For each pair, it builds a search URL using your keyword, location, and filter settings.
  4. It fetches the first page of results and parses each job listing.
  5. If more pages exist and the per-pair limit has not been reached, it fetches the next page.
  6. Each job record is tagged with searchKeyword and searchLocation before being stored.
  7. When all pairs are done, the full dataset is available to download.

Input

ParameterTypeDefaultDescription
keywordsstring listnurseOne keyword per line. Paired line-by-line with locations
locationsstring listOne location per line (town, city, or postcode). Optional

Filters

These apply to every keyword+location pair in the run.

ParameterTypeDefaultDescription
distanceinteger10Search radius in miles from each location (5, 10, 20, 30, 50, or 100)
employerstringFilter to a specific employer or NHS Trust name
contractTypestringPermanent, Fixed-Term, Locum, Apprenticeship, Voluntary, Training, Secondment, Honorary, Bank
workingPatternstringfull-time, part-time, job-share, flexible-working, remote-working, compressed-hours, term-time-hours, annualised-hours
salaryFrominteger0Minimum annual salary. Use 0 for no lower limit
salaryTointeger0Maximum annual salary. Use 0 for no upper limit

Limits

ParameterTypeDefaultDescription
startPageinteger1Page to begin scraping from. Applies to every pair
maxItemsinteger100Maximum jobs per keyword+location pair (up to 1000)
requestTimeoutSecsinteger30Per-request timeout in seconds

Example inputs

Search for nurses in London and doctors in Manchester, up to 200 results per pair:

{
"keywords": ["nurse", "doctor"],
"locations": ["London", "Manchester"],
"maxItems": 200
}

Search for physiotherapists, radiographers, and paramedics across all UK locations:

{
"keywords": ["physiotherapist", "radiographer", "paramedic"],
"maxItems": 100
}

Search for permanent full-time nurses and midwives in Birmingham and Leeds, salary above £30,000:

{
"keywords": ["nurse", "midwife"],
"locations": ["Birmingham", "Leeds"],
"contractType": "Permanent",
"workingPattern": "full-time",
"salaryFrom": 30000,
"maxItems": 300
}

Output

Each job listing is one record in the Apify dataset. The searchKeyword and searchLocation fields identify which pair produced it.

Example output record

{
"jobTitle": "Staff Nurse - Registered Nurse",
"jobUrl": "https://www.jobs.nhs.uk/candidate/jobadvert/C9152-26-0547",
"referenceNumber": "C9152-26-0547",
"employer": "Dorset HealthCare University NHS Foundation Trust",
"location": "Weymouth DT40QE",
"salary": "£32,073 to £39,043 a year",
"datePosted": "21 May 2026",
"closingDate": "4 June 2026",
"contractType": "Permanent",
"workingPattern": "Full time",
"searchKeyword": "nurse",
"searchLocation": "London",
"scrapedAt": "2026-05-23T10:00:00+00:00"
}

Output fields

FieldTypeDescription
jobTitlestringJob title as listed on the portal
jobUrlstringDirect link to the full job advert page
referenceNumberstringNHS Jobs reference number (e.g. C9152-26-0547)
employerstringHiring organisation or NHS Trust name
locationstringTown, city, or postcode where the role is based
salarystringSalary range or description. May read "Depends on experience"
datePostedstringDate the listing was published on NHS Jobs
closingDatestringApplication closing date
contractTypestringPermanent, Fixed-Term, Locum, Apprenticeship, etc.
workingPatternstringFull time, Part time, Flexible working, etc.
searchKeywordstringThe keyword used in the search that returned this result
searchLocationstringThe location paired with the keyword. Null if no location was set
scrapedAtstringISO 8601 UTC timestamp of when this record was collected

Export formats

Download results from the Apify dataset in:

  • JSON -- for APIs, databases, and custom scripts
  • CSV -- for Excel, Google Sheets, or BI tools
  • XLSX -- direct Excel format
  • XML and other formats via the Apify API

Frequently asked questions

How many total results can I collect? Up to 1,000 per keyword+location pair. With 5 keywords, that is up to 5,000 jobs per run. NHS Jobs returns 10 listings per page.

Does it scrape the full job description? No. The actor collects data visible on search results pages: title, employer, location, salary, dates, contract type, and working pattern. Full job descriptions are on individual advert pages and are not included.

What if I have more keywords than locations? The extra keywords run without a location filter and search across all UK. For example, 3 keywords with 1 location gives pairs: (kw1, loc1), (kw2, all UK), (kw3, all UK).

What happens if a field is missing from a listing? Missing fields return null. Some listings omit salary or show "Depends on experience"; these are captured as-is.

How do I get results for just one keyword? Enter one keyword and leave locations blank. The actor runs a single search across all UK locations.

How often does NHS Jobs update? New listings appear daily. Schedule this actor on Apify Schedules to run every 24 hours to stay current.

Scheduling

Run this actor on a schedule via Apify Schedules to keep your dataset fresh. A daily run at midnight captures any listings posted in the previous 24 hours.

Integrations

Connect NHS Jobs Scraper with other apps using Apify integrations. Works with Make, Zapier, Slack, Airbyte, GitHub, Google Sheets, Google Drive, and more. Use webhooks to trigger downstream actions the moment results land.

Common integration patterns:

  • Send a Slack or email alert when a new role appears for a saved keyword
  • Append each new NHS listing to a Google Sheet for daily tracking
  • Trigger a Make or Zapier scenario to post vacancies to a job board
  • Sync results to a CRM or ATS via the Apify API