NHS UK Jobs Scraper
Pricing
Pay per usage
NHS UK Jobs Scraper
Efficiently extract vacancies from the UK's official health job board. This lightweight actor is designed for speed and reliability. For the best performance and to avoid blocking, using residential proxies is highly recommended. Streamline your healthcare recruitment data today!
Pricing
Pay per usage
Rating
0.0
(0)
Developer

Shahid Irfan
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Extract comprehensive job listings from NHS Jobs UK with advanced search capabilities. This scraper automatically uses JSON API when available and seamlessly falls back to HTML parsing for maximum reliability and data quality.
What does NHS UK Jobs Scraper do?
This scraper helps you extract structured job data from NHS Jobs UK, the official recruitment platform for National Health Service positions across the United Kingdom.
Key capabilities:
- 🔍 Search by keyword, location, contract type, and working pattern
- 📊 Extract comprehensive job details including salary, closing dates, and descriptions
- ⚡ Fast and efficient with dual extraction methods (JSON API + HTML parsing)
- 🎯 Filter by NHS staff groups and pay bands
- 📍 Location-based search with configurable distance radius
- 🔄 Automatic pagination handling
- ✅ Clean, structured output ready for analysis
Why use NHS UK Jobs Scraper?
- Dual Extraction Method: Prioritizes JSON API for speed, automatically falls back to HTML parsing for reliability
- Comprehensive Data: Captures job title, organisation, location, salary, contract details, descriptions, and more
- Flexible Search: Multiple filter options to find exactly the jobs you need
- Production Ready: Built with modern best practices, error handling, and deduplication
- No Setup Required: Run directly on Apify platform with zero configuration
Use Cases
Input Configuration
The scraper accepts various input parameters to customize your job search:
Search Parameters
| Field | Type | Description | Example |
|---|---|---|---|
keyword | String | Search by job title, skill, or keyword | "nurse", "doctor", "administrator" |
location | String | City, town, or postcode to search near | "London", "Manchester", "SW1A 1AA" |
distance | String | Search radius in miles from location | "10", "20", "50" |
contractType | String | Filter by contract type | "Permanent", "Fixed-Term", "Locum" |
workingPattern | String | Filter by working pattern | "Full time", "Part time", "Flexible working" |
staffGroup | String | NHS staff group filter | "Nursing and Midwifery" |
payRange | String | Salary range or NHS pay band | "Band 5", "Band 6" |
Advanced Options
| Field | Type | Description | Default |
|---|---|---|---|
startUrl | String | Start from a specific NHS Jobs search URL (overrides search parameters) | - |
collectDetails | Boolean | Visit each job page for full descriptions (slower but more complete) | true |
results_wanted | Integer | Maximum number of jobs to extract | 100 |
max_pages | Integer | Maximum search result pages to process | 50 |
proxyConfiguration | Object | Proxy settings (residential recommended) | Apify Proxy |
Input Example
{"keyword": "registered nurse","location": "London","distance": "15","contractType": "Permanent","workingPattern": "Full time","staffGroup": "Nursing and Midwifery","payRange": "Band 5","collectDetails": true,"results_wanted": 50,"max_pages": 10,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Quick Start Example
Minimal configuration to get started quickly:
{"keyword": "nurse","location": "Manchester","results_wanted": 20}
Using Start URL
Skip the search form and start from a specific NHS Jobs URL:
{"startUrl": "https://www.jobs.nhs.uk/candidate/search/results?keyword=paramedic&location=Birmingham","collectDetails": true,"results_wanted": 30}
Output Data
The scraper provides comprehensive, structured job data in JSON format:
Output Schema
{"title": "Senior Staff Nurse - Emergency Department","company": "NHS Greater Manchester Integrated Care","location": "Manchester Royal Infirmary, Manchester M13 9WL","salary": "£35,392 to £42,618 a year","contract_type": "Permanent","working_pattern": "Full time","date_posted": "05 December 2024","closing_date": "02 January 2025","reference": "MRI-2024-12345","description_html": "<p>We are seeking an experienced...</p>","description_text": "We are seeking an experienced...","url": "https://www.jobs.nhs.uk/candidate/jobadvert/MRI-2024-12345"}
Field Descriptions
| Field | Type | Description |
|---|---|---|
title | String | Job title/position name |
company | String | NHS trust or organisation name |
location | String | Job location with postcode |
salary | String | Salary range or rate (may include NHS band) |
contract_type | String | Employment contract type (Permanent, Fixed-Term, Locum, Bank, etc.) |
working_pattern | String | Working hours pattern (Full time, Part time, Flexible, etc.) |
date_posted | String | Date the job was posted |
closing_date | String | Application deadline |
reference | String | Job reference number |
description_html | String | Full job description in HTML format (when collectDetails is true) |
description_text | String | Plain text version of job description (when collectDetails is true) |
url | String | Direct link to job posting |
How It Works
- Smart Search Construction: Builds optimized search URLs based on your input parameters
- Dual Extraction Strategy:
- First attempts JSON API extraction for maximum speed
- Automatically falls back to HTML parsing if API unavailable
- Ensures data quality through multiple extraction methods
- Pagination Handling: Automatically processes multiple pages until reaching your desired result count
- Detail Collection: Optionally visits each job page to extract complete descriptions and metadata
- Data Enrichment: Attempts to extract structured data from JSON-LD when available
- Deduplication: Prevents duplicate job listings in results
- Clean Output: Provides consistently formatted, structured data ready for immediate use
Performance & Limits
- Speed: Processes 50-100 jobs per minute (varies with detail collection settings)
- Concurrency: Optimized at 5 concurrent requests for reliable extraction
- Rate Limiting: Respects NHS Jobs server capacity with automatic retry logic
- Memory Efficient: Streams data to dataset, suitable for large-scale extractions
Performance Tips
Common Questions
Can I scrape all NHS jobs?
Yes, set results_wanted to a high number (e.g., 10000) and max_pages accordingly. Be aware this may take longer and consume more compute units.
What if NHS Jobs changes their website?
The scraper uses multiple extraction methods (JSON API, JSON-LD, HTML parsing) to ensure continued functionality even if one method breaks.
Can I filter by specific NHS pay bands?
Yes, use the payRange parameter with values like "Band 5", "Band 6", "Band 7", etc.
How do I search for jobs near a specific location?
Set both location (city/postcode) and distance (radius in miles) parameters:
{"location": "Leeds","distance": "20"}
Can I export data to CSV or Excel?
Yes, Apify platform provides built-in export to CSV, Excel, JSON, XML, and more formats.
Cost Optimization
- Use specific search parameters to reduce unnecessary pages
- Set
collectDetails: falseif you don't need full descriptions - Adjust
max_pagesto limit scope - Use
results_wantedto stop when you have enough data
Error Handling
The scraper includes robust error handling:
- Automatic retry on failed requests (up to 3 attempts)
- Session management for consistent scraping
- Graceful fallback between extraction methods
- Detailed logging for troubleshooting
Integration & Export
Apify Platform
Access your data directly from the Apify platform:
- Download in multiple formats (JSON, CSV, Excel, XML, RSS, HTML)
- Access via Apify API
- Set up scheduled runs
- Configure webhooks for automation
API Access
Retrieve scraped data programmatically:
$curl https://api.apify.com/v2/datasets/[DATASET_ID]/items
Integration Examples
Works seamlessly with:
- Google Sheets (via Apify integration)
- Make (Integromat)
- Zapier
- Power BI, Tableau (via CSV/API)
- Custom applications (via REST API)
Support & Updates
This scraper is actively maintained to ensure compatibility with NHS Jobs website. If you encounter any issues or have feature requests, please report them through the Apify platform.
Legal & Compliance
Important: Always ensure your use of this scraper complies with NHS Jobs' Terms of Service and applicable data protection regulations including GDPR. This tool is designed for legitimate business purposes such as job aggregation, market research, and career planning.
Best Practices
- Respect rate limits and use reasonable concurrency settings
- Do not scrape personal data beyond publicly available job listings
- Use data responsibly and in accordance with UK data protection laws
- Consider contacting NHS Jobs for official data access if you need large-scale extraction
Technical Requirements
- Runs on Apify platform (no local setup needed)
- Uses Apify Proxy (included with platform)
- Memory: 1024-2048 MB recommended
- Timeout: 60-300 seconds per request
About This Scraper
Built with modern web scraping best practices:
- Reliable extraction with multiple fallback methods
- Clean, maintainable code architecture
- Comprehensive error handling
- Optimized for Apify platform
- Regular updates and maintenance
Ready to extract NHS Jobs data? Click the "Try for free" button to start scraping immediately!