Hays Jobs Scraper: 8 Countries, Salary, Descriptions
Pricing
from $3.00 / 1,000 serp job results
Hays Jobs Scraper: 8 Countries, Salary, Descriptions
Scrape Hays jobs from 8 country sites (UK, US, CA, IE, NL, ES, PT, AE). Returns title, location, salary parsed from the advert text, full description, work arrangement, employment type and industry. Search by keyword, URL or job link. Filter by job type, working pattern, industry.
Pricing
from $3.00 / 1,000 serp job results
Rating
0.0
(0)
Developer
NanoScrape
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Hays Scraper - UK, US, CA, IE, NL, ES, PT, AE Jobs
Pull live job listings from Hays, one of the largest specialist recruitment agencies, by keyword, search URL or direct job URL. Each row has the title, canonical job URL, location, structured salary (min, max, currency, period), employment and contract type, industry, publish and expiry dates, and the full description as text, HTML and Markdown. No API key, no login.
Supported Hays sites: United Kingdom, United States, Canada, Ireland, Netherlands, Spain, Portugal and the United Arab Emirates. These are the sites that run the Hays job portal; each was tested against the live site.
Sample output
{"id": "4831598","title": "Management Accountant","job_url": "https://www.hays.co.uk/job-detail/management-accountant-warrington_4831598","company_name": "Hays","location": "Warrington","city": "Warrington","region": "North West","country": "GB","employment_type": "Full-time","contract_type": "permanent","industry": "Manufacturing & Production","category": "Part Qualified Accountant","salary_text": "£30,000 - £35,000","salary_min": 30000,"salary_max": 35000,"salary_currency": "GBP","salary_period": "year","salary_source": "text","work_arrangement": "hybrid","remote_option": "hybrid","description_snippet": "Management Accountant Location: Warrington (Hybrid Working) ...","description_md": "Management Accountant\nLocation: Warrington (Hybrid Working)\n...","posted_at_datetime": "2026-09-29T00:00:00Z","posted_at_text": "2026-09-29","expires_at": "2026-12-27","headline": "Manufacturing Accountant | Warrington | £35K + Study Support | Hybrid","contact_name": "Lauren Taylor","contact_office": "Liverpool, Part 2nd Floor, 5 St Paul’s Square","job_status": "online","source_platform": "hays","search_query": "accountant"}
Pricing
| Event | Price |
|---|---|
| Actor start | $0.001 per run start |
| Search result (every job returned) | $0.003 per job returned (about $3 per 1,000) |
| Detail result (added when the description was parsed) | +$0.005 per job enriched with full details (about $8 per 1,000 jobs with details) |
Every returned job is billed the search result. A job whose description was parsed is billed the detail result on top of it. Jobs dropped by the strict keyword match are not billed.
New to Apify? Every account gets a $5 free monthly platform credit, enough for hundreds of results before you commit to paying anything. Test with a small maxResults first.
Input
| Field | Type | Description | Example |
|---|---|---|---|
searchQueries | array | Job title or skill keywords. Each runs as its own search and rows are tagged with search_query. | ["accountant", "site manager"] |
searchUrls | array | Hays search URLs. The keyword (q=) and location are read from the URL, the country from the domain. | ["https://www.hays.co.uk/job-search?q=accountant"] |
directUrls | array | Hays job-detail URLs for still-alive checks or specific vacancies. Removed vacancies come back as offline rows and are not billed. | ["https://www.hays.co.uk/job-detail/management-accountant-warrington_4831598"] |
country | string | Site for keyword searches: uk, us, ca, ie, nl, es, pt, ae. Default uk. | "uk" |
location | string | City or region, for example Manchester. Empty searches the whole country. | "Manchester" |
jobType | string | any (default), permanent, contract or temporary. Applied by the Hays search. | "permanent" |
workingPattern | string | any (default), flexible, fullTime or partTime. Applied by the Hays search. | "flexible" |
industry | string | Client industry exactly as the site labels it, for example Accountancy Firms. Labels differ per country site. | "Accountancy Firms" |
sortBy | string | newest (default, publish date descending), relevance or title. | "newest" |
postedWithinDays | number | Only jobs published in the last N days. Empty means no limit. | 7 |
maxResults | integer | Total cap across everything. Default 10, 0 means no cap. | 100 |
maxResultsPerQuery | integer | Cap per keyword or URL. Default 50, 0 means no cap. | 50 |
scrapeDetails | boolean | Include the full description in four formats. Default true. | true |
strictKeywordMatch | boolean | Title-first relevance filter: keep only jobs where every keyword word (stemmed) appears in the title. Single-word keywords also match the category. Description-only matches are dropped. Default true. | true |
maxPages | integer | Safety limit on result pages per keyword (10 jobs per page). Default 50. | 50 |
maxConcurrency | integer | Keywords or URLs processed in parallel, each with its own session. Default 3. | 3 |
An empty input ({}) browses the newest 10 jobs on the UK site.
Example
{"searchQueries": ["accountant", "nurse"],"country": "uk","sortBy": "newest","postedWithinDays": 14,"maxResults": 100,"maxResultsPerQuery": 50}
Output fields
Core
id,job_ref: Hays job reference number, unique per posting.title: Job title.headline: Advert headline shown above the description, for example "Manufacturing Accountant | Warrington | £35K + Study Support | Hybrid".job_url: Canonical Hays job page URL.source_urlcarries the same value.apply_url: Apply link on the Hays site.company_name: Always "Hays". Hays advertises on behalf of its clients and normally does not name the hiring company.companyis a deprecated duplicate.source_platform: Always "hays".search_query: Keyword that produced the row. Null for browse runs and direct URLs.job_status:online, orofflinefor direct URLs that no longer exist.scraped_at: ISO timestamp.
Location
location,city,region(duplicates removed;stateis a duplicate),country(ISO alpha-2),latitude,longitude.
Role
employment_type: Full-time, Part-time, Temporary or Contract.contract_type:permanent,contractortemporary.flexible_working: True when Hays marks the job as flexible.industry: Client industry from Hays.work_arrangementandremote_option(same value):remote,hybridoronsite, detected from the headline, the flexible working flag and the description. Null when nothing is stated.category: Hays specialism, for example "Senior Finance Qualified".
Salary
salary_text: Salary text as displayed on the site.salary_min,salary_max: Numeric bounds parsed fromsalary_text(handlesk, ranges, "up to", per hour, day or year), insalary_periodunits. "Up to" adverts have only a max. Text without numbers ("Competitive", "To £££") gives null.salary_source:textwhen the numbers come fromsalary_text,bandwhen the advert has no salary text and the Hays internal band is used.salary_currency: ISO 4217 code such as GBP, USD, EUR.salary_period:hour,day,week,monthoryear. Taken from the salary text ("per hour", "per day", "per annum", "p/h"), otherwise inferred from the amount scale.
Description (when scrapeDetails is true)
description_full: Full plain text.description_snippet: First 300 characters, including the trailing ellipsis.description_html: Full description as HTML.description_md: Full description as Markdown.
Dates and contact
posted_at_datetime,posted_at_text: Publish date.posted_atis a duplicate of the text form. The site publishes a date, so the time part is always midnight UTC.expires_at: Posting expiry date.contact_name,contact_email,contact_phone,contact_office: The Hays consultant named on the job page and their office (city and address), when shown.
Deprecation notes
company, state, source_url and posted_at are legacy aliases kept for one year (until 2027-09-29). Migrate to company_name, region, job_url and posted_at_text. Both forms are emitted in every row during the window.
Use with AI Agents (MCP)
Connect this actor to any MCP-compatible AI client: Claude Desktop, Claude.ai, Cursor, VS Code, LangChain, LlamaIndex, or custom agents.
Configure the MCP server with the Hays Scraper preconfigured at mcp.apify.com?tools=santamaria-automations/hays-scraper.
{"mcpServers": {"apify": {"command": "npx","args": ["mcp-remote","https://mcp.apify.com/?tools=santamaria-automations/hays-scraper","--header","Authorization: Bearer <YOUR_API_TOKEN>"]}}}
For per-tool schemas and copy-paste snippets for MCP clients, see the MCP tab.
See the auto-generated API tab for language-specific examples (cURL, JS, Python, .NET, Ruby, PHP).
Why this actor
- Reads the same data feed the Hays job pages use, so descriptions are complete and salary bands are structured rather than parsed from text.
- Eight Hays country sites behind one input, with sort by newest and a posted-within-days cutoff for scheduled runs.
- Strict keyword match is title-first: it removes the jobs the Hays search adds only because the words appear in the description, and you are not billed for them.
- Consultant contact name, email and phone on every row where Hays shows them.
Common use cases
- Refresh a daily list of new finance, tax or technology vacancies in a UK region and push them to a CRM.
- Track day-rate and hourly contract pay for a skill across Hays UK, IE and NL.
- Feed job descriptions into an LLM pipeline for skills extraction.
- Check whether saved Hays vacancies are still online with direct URLs.
Notes and limits
- Hays search returns loosely related jobs for some keywords. With
strictKeywordMatchon (default) only jobs whose title contains every keyword word are kept (stemmed, so "accountant" matches "accounting"; single-word keywords also match the category), so rare keywords can return fewer rows thanmaxResults. A nonsense keyword returns nothing. - Jobs are advertised by Hays. The end client is normally not named, so
company_nameis always "Hays". - Salary numbers are read from the salary text shown on the advert, because the Hays internal band often contradicts it. The band is used only when an advert has no salary text.
- Sites that do not run the Hays job portal (Germany, Austria, Switzerland, France, Australia and others) are not supported. Search URLs from those sites are skipped with a warning.
- Offline direct URLs are returned with
job_status: "offline", the id taken from the URL, and are not billed. - Filters the Hays site shows but this actor does not offer: minimum and maximum pay (
minPay,maxPay) and the pay-type facet are not applied by the Hays search backend (the result count does not change), so they are not supported.sortTypeand the other filter parameters in a pasted search URL are ignored too: use thesortBy,jobType,workingPatternandindustryinputs instead.
Related actors
- Website Job Extractor: extract jobs from any company careers page.
- Indeed Jobs Scraper: jobs from Indeed across many countries.
- Glassdoor Scraper: jobs, salaries and company ratings.
- Reed UK Scraper: UK job board listings.
- Totaljobs Scraper: UK jobs and salaries.
Support
- Questions or issues? Email contact@nanoscrape.com, we typically reply within 6 hours. You can also open a ticket in the Issues tab on the actor page.
- Feature request for this actor? Open a ticket in the Issues tab or email contact@nanoscrape.com with the field you need and, if possible, a URL that shows the data live.
- Need a scraper for a job board we don't cover yet? Email contact@nanoscrape.com with the target site and your rough usage volume. We ship new boards regularly.