# Hays Jobs Search Scraper (`alexist/hays-jobs-search-scraper`) Actor

Scrape job search results from Hays.com with precision. Extract 49 data fields including compensation, location, qualifications, and application URLs — perfect for recruiters, talent analytics platforms, and job aggregators.

- **URL**: https://apify.com/alexist/hays-jobs-search-scraper.md
- **Developed by:** [Alex](https://apify.com/alexist) (community)
- **Categories:** Automation, Developer tools, Jobs
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Hays Jobs Search Scraper: Extract Engineering & Recruitment Job Data at Scale

***

### What Is Hays.com?

Hays.com is a global recruitment platform specializing in professional and technical job placements across industries like engineering, IT, finance, and healthcare. With millions of active listings and advanced search filters, it's a goldmine for talent data — but manually extracting structured information is inefficient. The **Hays Jobs Search Scraper** automates this, turning search results into clean, analyzable records.

***

### Overview

The **Hays Jobs Search Scraper** captures job listings from Hays.com search result pages and extracts 49+ data fields per job. It supports filtered searches (by specialization, location, job type, salary range) and scales from single pages to bulk harvesting operations.

**Ideal for:**

- Recruitment firms and staffing agencies building talent databases
- Job aggregator platforms syncing Hays listings
- Market researchers analyzing compensation trends by role and region
- Career platforms enhancing their job dataset
- HR departments tracking competitor hiring patterns

Key features include configurable item limits, fault-tolerant URL handling, and comprehensive field extraction covering compensation, qualifications, benefits, and application instructions.

***

### Input Format

The scraper accepts a JSON configuration with search URLs and processing options:

```json
{
  "urls": [
    "https://www.hays.com/job-search/engineering-jobs?q=Engineering&location=&specialismId=&subSpecialismId=&locationf=&industryf=&sortType=0&jobType=-1&flexiWorkType=-1&payTypefacet=-1&minPay=-1&maxPay=-1&jobSource=HaysGCJ"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}
```

#### Configuration Parameters

| Parameter | Type | Description | Example |
|---|---|---|---|
| `urls` | Array | Job search result page URLs from Hays.com. Include filter parameters for targeted scraping. | `["https://www.hays.com/job-search/..."]` |
| `max_items_per_url` | Integer | Maximum jobs to extract per URL (default: 20). Increase for larger datasets. | `50` or `100` |
| `ignore_url_failures` | Boolean | If `true`, scraper continues if some URLs fail. If `false`, stops on first error. | `true` or `false` |

**URL Construction Tips:**

- Use Hays.com's search interface to build filter URLs (location, salary range, job type, specialism)
- Copy the full URL including all query parameters for reproducible results
- Each URL represents one search result page; add multiple URLs for different queries or regions

***

### Output Format

**Sample output**

```json
{
  "allow_telecommute": null,
  "application_emails": {
    "emails": [
      "Michal.Mercier@hays.com"
    ]
  },
  "application_instructions": null,
  "application_url": "https://www.hays.com/job-detail/JOB_5391093&jobSource=GCJ",
  "benefits": null,
  "commute_info": null,
  "company_name": "projects/mineral-balm-174308/tenants/ab5d683d-f9a5-4b85-bfe0-eb74881e24cf/companies/204bea04-222b-4015-a4d2-122eae74670f",
  "company_title": "hays-gcj-v4-pd-online",
  "compensation_amount": {
    "currency_code": "USD",
    "nanos": null,
    "units": 26
  },
  "compensation_amount_max": {
    "currency_code": "USD",
    "nanos": null,
    "units": 28
  },
  "compensation_amount_min": {
    "currency_code": "USD",
    "nanos": null,
    "units": 25
  },
  "compensation_frequency": null,
  "compensation_type": null,
  "create_date": {
    "day": 30,
    "month": 4,
    "year": 2026
  },
  "department": "Pharma,Medical Technology",
  "description": "The final salary or hourly wage, as applicable, paid to each candidate/applicant for this position is ultimately dependent on a variety of factors, including, but not limited to, the candidate’s/applicant’s qualifications, skills, and level of experience as well as the geographical location of the position.<br><br>Applicants must be legally authorized to work in the United States. Sponsorship not available.<br><br>Our client is seeking a Engineering Technician I in Clarkston, GA<br><br>Role Description<br><br>Process Optimization<br>• Analyze existing manufacturing processes.<br>• Develop process flow maps (Value Stream Maps) Data Collection Conduct time studies and capacity analysis Identify and resolve inefficiencies.<br>Troubleshooting & Problem Solving<br>• Provide support for complex production issues.<br>• Support projects for the engineering team.<br>• Implement corrective and preventive actions.<br>Safety & Compliance<br>• Adhere to safety standards, environmental regulations, and quality management systems.<br>Documentation & Training<br>• Maintain detailed process documentation and SOPs.<br>• Train production personnel on process updates.<br>Collaboration<br>• Work cross-functionally with R&D, Quality, Production, Maintenance, and Supply Chain.<br>• Works with moderate work direction, and can identify issues/problems but may need assistance in resolving. Worker performs tasks to assist engineers such as preliminary research, conduct time studies and/or capacity analysis, develop detailed process maps. Worker maintains detailed process documentation, creates operating procedures and/or updates documents as needed. Works with cross-functional teams. Operates under direct supervision from an engineer or a senior technician.<br><br>Skills & Requirements<br><br>• 1 years of experience in specific manufacturing industries (chemical, electronics, medical device).<br>• Strong project management and multitasking abilities.<br>• Excellent communication and interpersonal skills.<br>• Bachelor's degree or higher in Industrial Engineering or related field.<br>• Recent college graduate or minimum of 1 years' relevant engineering experience.<br><br>Benefits/Other Compensation<br><br>This position is a contract/temporary role where Hays offers you the opportunity to enroll in full medical benefits, dental benefits, vision benefits, 401K and Life Insurance ($20,000 benefit).<br><br>Why Hays?<br><br>You will be working with a professional recruiter who has intimate knowledge of the industry and market trends. Your Hays recruiter will lead you through a thorough screening process in order to understand your skills, experience, needs, and drivers. You will also get support on resume writing, interview tips, and career planning, so when there’s a position you really want, you’re fully prepared to get it.<br><br>Nervous about an upcoming interview? Unsure how to write a new resume?<br><br>Visit the Hays Career Advice section to learn top tips to help you stand out from the crowd when job hunting.<br><br>Hays is committed to building a thriving culture of diversity that embraces people with different backgrounds, perspectives, and experiences. We believe that the more inclusive we are, the better we serve our candidates, clients, and employees. We are an equal employment opportunity employer, and we comply with all applicable laws prohibiting discrimination based on race, color, creed, sex (including pregnancy, sexual orientation, or gender identity), age, national origin or ancestry, physical or mental disability, veteran status, marital status, genetic information, HIV-positive status, as well as any other characteristic protected by federal, state, or local law. One of Hays’ guiding principles is ‘do the right thing’.<br> We also believe that actions speak louder than words.<br> In that regard, we train our staff on ensuring inclusivity throughout the entire recruitment process and counsel our clients on these principles. If you have any questions about Hays or any of our processes, please contact us.<br><br>In accordance with applicable federal, state, and local law protecting qualified individuals with known disabilities, Hays will attempt to reasonably accommodate those individuals unless doing so would create an undue hardship on the company. Any qualified applicant or consultant with a disability who requires an accommodation in order to perform the essential functions of the job should call or text 813.336.5570.<br><br>Drug testing may be required; please contact a recruiter for more information.<br><br>#LI-DNI<br> #1183923 - Michal Mercier",
  "distributor_company_id": "projects/mineral-balm-174308/tenants/ab5d683d-f9a5-4b85-bfe0-eb74881e24cf/companies/204bea04-222b-4015-a4d2-122eae74670f",
  "education_levels": null,
  "employment_types": [
    "CONTRACTOR"
  ],
  "end_date": {
    "day": 30,
    "month": 7,
    "year": 2026
  },
  "error_email": null,
  "filterable_custom_fields": {
    "x_industry_id": {
      "values": [
        "health"
      ]
    },
    "job_ref": {
      "values": [
        "1183923"
      ]
    },
    "x_specialism": {
      "values": [
        "LifeScience"
      ]
    },
    "full_time": {
      "values": [
        "False"
      ]
    },
    "part_time": {
      "values": [
        "False"
      ]
    },
    "flexible_working": {
      "values": [
        "False"
      ]
    },
    "xlocale": {
      "values": [
        "en-US"
      ]
    },
    "cross_country": {
      "values": [
        "en-US"
      ]
    },
    "4": {
      "values": [
        "C"
      ]
    },
    "x_industry": {
      "values": [
        "Healthcare & Medical"
      ]
    },
    "x_sub_specialism": {
      "values": [
        "PharmaXLifeSc"
      ]
    },
    "admin_job": {
      "values": [
        "N"
      ]
    },
    "compensation_type": {
      "values": [
        "hourly"
      ]
    },
    "job_owner_name": {
      "values": [
        "Michal Mercier"
      ]
    },
    "job_id": {
      "values": [
        "JOB_5391093"
      ]
    },
    "x_location_description": {
      "values": [
        "Georgia"
      ]
    }
  },
  "geo_location": null,
  "geo_locations": [
    {
      "admin_level_one_display": null,
      "admin_level_two_display": null,
      "city_level_display": null,
      "country_code": "US",
      "country_display": "Georgia, USA",
      "display": "Georgia, USA",
      "lat_lng": {
        "latitude": 32.1574351,
        "longitude": -82.90712300000001
      },
      "locality_display": null,
      "location_type": null,
      "neighborhood_display": null,
      "place_id": null,
      "postal_code": null,
      "radius": 0.14370392569421445,
      "street_display": null,
      "street_number": null,
      "sublocality_level1_display": null,
      "sublocality_level2_display": null
    }
  ],
  "incentives": "$25.00 - $28.00/hr",
  "job_level": null,
  "job_reference_url": null,
  "job_requisition_id": "https://www.hays.com/job-detail/JOB_5391093",
  "language_code": "en-US",
  "location": "Georgia",
  "locations": [
    "georgia, United States of America"
  ],
  "media_location_urls": [
    "https://www.hays.com/job-detail/JOB_5391093&jobSource=GCJ"
  ],
  "name": "projects/mineral-balm-174308/tenants/ab5d683d-f9a5-4b85-bfe0-eb74881e24cf/jobs/113395428002538182",
  "non_filterable_custom_fields": {
    "x_description": {
      "values": [
        "Engineering Technician I – Contract – Clarkston, GA – $25.00 - $28.00/hr"
      ]
    },
    "lat_long_level3": {
      "values": [
        "-95.7#37.0833"
      ]
    },
    "lat_long_level4": {
      "values": [
        "-82.9#32.15"
      ]
    },
    "flexible_working": {
      "values": [
        "False"
      ]
    },
    "salary_type": {
      "values": [
        "Hourly Rate"
      ]
    },
    "admin_job": {
      "values": [
        "N"
      ]
    },
    "site_locale": {
      "values": [
        "en-US"
      ]
    },
    "x_longitude": {
      "values": [
        "-82.9"
      ]
    },
    "search_text_snippet": {
      "values": [
        "Engineering Technician I – Contract – Clarkston, GA – $25.00 - $28.00/hr"
      ]
    },
    "application_method": {
      "values": [
        "Portal"
      ]
    },
    "content_type": {
      "values": [
        "JOB"
      ]
    },
    "is_oiland_gas_posting": {
      "values": [
        "N"
      ]
    },
    "hourly_salary_max": {
      "values": [
        "28.0"
      ]
    },
    "x_latitude": {
      "values": [
        "32.15"
      ]
    },
    "hourly_salary_min": {
      "values": [
        "25.0"
      ]
    },
    "job_owner": {
      "values": [
        "<JobOwner><name>Michal Mercier</name><location>New York City</location><address>200 West 41st St, 16th Floor</address><tel>6179368514</tel><fax /><email>Michal.Mercier@hays.com</email></JobOwner>"
      ]
    },
    "x_industry_id": {
      "values": [
        "health"
      ]
    },
    "job_ref": {
      "values": [
        "1183923"
      ]
    },
    "consultant_email": {
      "values": [
        "Michal.Mercier@hays.com"
      ]
    },
    "full_time": {
      "values": [
        "False"
      ]
    },
    "part_time": {
      "values": [
        "False"
      ]
    },
    "xmax_salary": {
      "values": [
        "28.0"
      ]
    },
    "x_locale_record_i_d": {
      "values": [
        "https://www.hays.com/job-detail/engineering-technician-i-georgia_1183923"
      ]
    },
    "is_adapt_record": {
      "values": [
        "Y"
      ]
    },
    "domain_id": {
      "values": [
        "32"
      ]
    },
    "cross_country": {
      "values": [
        "en-US"
      ]
    },
    "location_description_level3": {
      "values": [
        "USA"
      ]
    },
    "location_description_level4": {
      "values": [
        "Georgia"
      ]
    },
    "location_tree_id": {
      "values": [
        "2692764"
      ]
    },
    "display_closing_date": {
      "values": [
        "False"
      ]
    },
    "x_hays_location4": {
      "values": [
        "2692764"
      ]
    },
    "x_release_time": {
      "values": [
        "15:01:07"
      ]
    },
    "compensation_type": {
      "values": [
        "hourly"
      ]
    },
    "cont_salary_range_min": {
      "values": [
        "25.0"
      ]
    },
    "x_location_description": {
      "values": [
        "Georgia"
      ]
    },
    "x_hays_location3": {
      "values": [
        "2692746"
      ]
    },
    "xmin_salary": {
      "values": [
        "25.0"
      ]
    },
    "salary_currency": {
      "values": [
        "US$"
      ]
    },
    "current_job_status": {
      "values": [
        "1"
      ]
    },
    "xjob_type": {
      "values": [
        "C"
      ]
    },
    "x_specialism": {
      "values": [
        "LifeScience"
      ]
    },
    "record_ref": {
      "values": [
        "5391093"
      ]
    },
    "contact_id": {
      "values": [
        "10973"
      ]
    },
    "cont_salary_range_max": {
      "values": [
        "28.0"
      ]
    },
    "job_title": {
      "values": [
        "Engineering Technician I"
      ]
    },
    "consultant_first_name": {
      "values": [
        "Michal Mercier"
      ]
    },
    "xlocation": {
      "values": [
        "Georgia"
      ]
    },
    "salary_range_max": {
      "values": [
        "28.0"
      ]
    },
    "xlocale": {
      "values": [
        "en-US"
      ]
    },
    "display_contact": {
      "values": [
        "False"
      ]
    },
    "exp_date": {
      "values": [
        "2026-07-30"
      ]
    },
    "entity_type_id": {
      "values": [
        "JOBS"
      ]
    },
    "location_level": {
      "values": [
        "4"
      ]
    },
    "job_owner_name": {
      "values": [
        "Michal Mercier"
      ]
    },
    "is_cross_country": {
      "values": [
        "1"
      ]
    },
    "job_id": {
      "values": [
        "JOB_5391093"
      ]
    },
    "international": {
      "values": [
        "False"
      ]
    },
    "is_international_posting": {
      "values": [
        "N"
      ]
    },
    "salary_range_unit": {
      "values": [
        "Hourly Rate"
      ]
    },
    "x_release_date": {
      "values": [
        "2026-04-30"
      ]
    },
    "hourly_salary_unit": {
      "values": [
        "Hourly Rate"
      ]
    },
    "x_category": {
      "values": [
        "Pharma",
        "Medical Technology"
      ]
    },
    "location_id": {
      "values": [
        "2692764"
      ]
    },
    "email_me_on_application": {
      "values": [
        "True"
      ]
    },
    "show_job_owner": {
      "values": [
        "False"
      ]
    },
    "posting_type": {
      "values": [
        "1"
      ]
    },
    "x_non_nationals": {
      "values": [
        "N"
      ]
    },
    "x_industry": {
      "values": [
        "Healthcare & Medical"
      ]
    },
    "x_sub_specialism": {
      "values": [
        "PharmaXLifeSc"
      ]
    },
    "is_sponsored": {
      "values": [
        "N"
      ]
    },
    "x_salary_description": {
      "values": [
        "$25.00 - $28.00/hr"
      ]
    },
    "record_i_d": {
      "values": [
        "5391093"
      ]
    },
    "hot_job": {
      "values": [
        "False"
      ]
    },
    "salary_range_min": {
      "values": [
        "25.0"
      ]
    }
  },
  "posting_expiry_date": {
    "day": 30,
    "month": 7,
    "year": 2026
  },
  "posting_region": null,
  "process_flags": null,
  "promotion_value": null,
  "publish_date": {
    "day": 30,
    "month": 4,
    "year": 2026
  },
  "qualifications": null,
  "responsibilities": "Hays is committed to building a thriving culture of diversity that embraces people with different backgrounds, perspectives, and experiences. We believe that the more inclusive we are, the better we serve our candidates, clients, and employees. We are an equal employment opportunity employer, and we comply with all applicable laws prohibiting discrimination based on race, color, creed, sex (including pregnancy, sexual orientation, or gender identity), age, national origin or ancestry, physical or mental disability, veteran status, marital status, genetic information, HIV-positive status, as well as any other characteristic protected by federal, state, or local law. One of Hays’ guiding principles is ‘do the right thing’.",
  "search_text_snippet": "... <b>Engineering</b> Technician I in Clarkston, GA Role Description Process Optimization • Analyze existing manufacturing processes. • Develop process flow maps (Value Stream Maps) Data Collection Conduct&nbsp;...",
  "start_date": {
    "day": 30,
    "month": 4,
    "year": 2026
  },
  "summary": "Hays is committed to building a thriving culture of diversity that embraces people with different backgrounds, perspectives, and experiences. We believe that the more inclusive we are, the better we serve our candidates, clients, and employees. We are an equal employment opportunity employer, and we comply with all applicable laws prohibiting discrimination based on race, color, creed, sex (including pregnancy, sexual orientation, or gender identity), age, national origin or ancestry, physical or mental disability, veteran status, marital status, genetic information, HIV-positive status, as well as any other characteristic protected by federal, state, or local law. One of Hays’ guiding principles is ‘do the right thing’.",
  "title": "Engineering Technician I",
  "title_snippet": "<b>Engineering</b> Technician I.",
  "tracking_url": "https://www.hays.com/job-detail/JOB_5391093",
  "update_date": {
    "day": 30,
    "month": 4,
    "year": 2026
  },
  "version": null,
  "visibility": "ACCOUNT_ONLY",
  "record_id": null,
  "updated_timestamp": 0,
  "from_url": "https://www.hays.com/job-search/engineering-jobs?q=Engineering&location=&specialismId=&subSpecialismId=&locationf=&industryf=&sortType=0&jobType=-1&flexiWorkType=-1&payTypefacet=-1&minPay=-1&maxPay=-1&jobSource=HaysGCJ&searchPageTitle=Engineering%20Jobs%20in%20US%20%7C%20Hays%20Recruitment%20US&searchPageDesc=Explore%20Engineering%20job%20opportunities%20with%20Hays%20Recruitment%20US.%20Compare%20salaries%20and%20apply%20for%20a%20role%20online%20today!"
}
```

Each scraped job record contains up to 49 structured fields. Below is a complete reference with field meanings and use cases:

#### Job Identity & Reference

| Field | Meaning | Use Case |
|---|---|---|
| `Record ID` | Unique identifier for this job record | Deduplication, tracking |
| `Job Requisition ID` | Internal Hays job ID | Matching against Hays API data |
| `Job Reference URL` | Canonical link to the job listing | Direct job page navigation |
| `Tracking URL` | Unique tracking URL for analytics | Campaign attribution, click tracking |
| `Title` | Job title as displayed | Search, categorization |
| `Title Snippet` | Short title preview | Display in listings |
| `Name` | Job posting name in system | Database records |

#### Company & Organizational

| Field | Meaning | Use Case |
|---|---|---|
| `Company Name` | Employer organization name | Company-level filtering, analytics |
| `Company Title` | Official company trading name | Branding, verification |
| `Department` | Business unit or department | Role categorization |
| `Distributor Company ID` | Staffing agency/recruiter ID | Multi-agency tracking |
| `Posting Region` | Geographic region of the posting | Regional analytics, compliance |

#### Compensation & Benefits

| Field | Meaning | Use Case |
|---|---|---|
| `Compensation Type` | Salary type (e.g., annual, hourly) | Standardization, comparison |
| `Compensation Amount` | Single salary figure | Quick display |
| `Compensation Amount Min` | Minimum salary range | Budget analysis |
| `Compensation Amount Max` | Maximum salary range | Budget analysis |
| `Compensation Frequency` | Pay period (annual, monthly, hourly) | Rate normalization |
| `Benefits` | Benefits package description | Candidate value proposition |
| `Incentives` | Bonuses, commissions, perks | Total compensation modeling |
| `Promotion Value` | Career advancement potential | Engagement messaging |

#### Location & Remote Work

| Field | Meaning | Use Case |
|---|---|---|
| `Location` | Primary work location (city/region) | Candidate filtering |
| `Locations` | All job locations (for multi-site roles) | Geographic distribution |
| `Geo Location` | Geographic coordinates or geocode | Map-based search |
| `Geo Locations` | Multiple coordinates for multi-location | Advanced geo-filtering |
| `Commute Info` | Public transportation, parking details | Remote work context |
| `Allow Telecommute` | Remote work capability (yes/no/hybrid) | Work flexibility filtering |

#### Role Details & Requirements

| Field | Meaning | Use Case |
|---|---|---|
| `Summary` | Brief job overview | Quick candidate scan |
| `Description` | Full job description HTML/text | Complete role understanding |
| `Responsibilities` | Specific duties and tasks | Skills matching |
| `Qualifications` | Required skills, certifications, experience | Candidate screening |
| `Job Level` | Experience level (entry, mid, senior, c-suite) | Career stage filtering |
| `Education Levels` | Required degrees or certifications | Academic filtering |
| `Employment Types` | Full-time, part-time, contract, etc. | Job stability signals |

#### Application & Contact

| Field | Meaning | Use Case |
|---|---|---|
| `Application URL` | Direct link to apply | Candidate conversion |
| `Application Instructions` | How to submit applications | Candidate guidance |
| `Application Emails` | Email addresses for direct applications | Alternative contact channels |
| `Error Email` | Support contact for technical issues | Error resolution |

#### Metadata & Dates

| Field | Meaning | Use Case |
|---|---|---|
| `Create Date` | When job was posted in system | Freshness ranking |
| `Publish Date` | When job became publicly visible | Timeline tracking |
| `Update Date` | Last modification date | Currency validation |
| `Updated Timestamp` | Unix timestamp of last update | Automated sync scheduling |
| `Start Date` | Expected role start date | Candidate planning |
| `End Date` | Role end date (for contracts) | Contract duration |
| `Posting Expiry Date` | When the listing closes | Urgency signals |
| `Version` | Record version number | Change tracking |

#### Filtering & Categorization

| Field | Meaning | Use Case |
|---|---|---|
| `Search Text Snippet` | Key searchable text excerpt | Full-text indexing |
| `Filterable Custom Fields` | Searchable custom attributes | Platform-specific filtering |
| `Non Filterable Custom Fields` | Display-only custom attributes | Additional metadata |
| `Language Code` | Job posting language | Internationalization |
| `Visibility` | Public/private/restricted status | Access control |
| `Process Flags` | Internal processing markers | Workflow tracking |
| `Media Location URLs` | Images, videos, attachments | Rich content inclusion |

***

### How to Use

#### Step 1: Build Your Search URL

Navigate to Hays.com and use the job search interface to apply filters (job type, location, salary, specialization). Copy the resulting URL.

#### Step 2: Configure the Scraper

```json
{
  "urls": [
    "https://www.hays.com/job-search/your-filtered-search"
  ],
  "max_items_per_url": 50,
  "ignore_url_failures": true
}
```

#### Step 3: Run the Scraper

Start the actor and monitor progress. The scraper will extract all jobs from the search result page(s).

#### Step 4: Export & Integrate

Download results as JSON, CSV, or Excel. Import into your database, job board, or analytics platform.

**Best Practices:**

- Set `ignore_url_failures: true` for production runs to prevent interruptions
- Use targeted search filters to reduce data volume and improve relevance
- Schedule regular scrapes to keep job data fresh (Hays updates listings hourly)
- Validate `Posting Expiry Date` to exclude expired listings

**Common Issues:**

- If `max_items_per_url` returns fewer records than expected, the search may have limited results
- Some fields (e.g., `Compensation Amount`) may be empty if employers didn't disclose salary
- Use `Tracking URL` instead of `Job Reference URL` for analytics integration

***

### Use Cases & Business Value

- **Job Aggregation:** Feed Hays results into your own job search platform with real-time updates
- **Talent Intelligence:** Track hiring trends by role, location, and compensation across engineering and other sectors
- **Competitive Analysis:** Monitor what competitors are posting and hiring for
- **Salary Benchmarking:** Build compensation models using min/max salary data
- **Recruitment Automation:** Automatically surface matching roles to candidates
- **Market Research:** Analyze demand for specific job titles, skills, and geographies

By automating data extraction, you replace manual hours with systematic, scalable intelligence.

***

### Conclusion

The **Hays Jobs Search Scraper** transforms Hays.com into structured, actionable data. With 49 output fields and flexible filtering, it's a powerful tool for recruiters, data analysts, and job platforms. Start scraping today to unlock hiring trends and build smarter talent solutions.

# Actor input Schema

## `urls` (type: `array`):

Add the URLs of the Jobs list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

## `ignore_url_failures` (type: `boolean`):

If true, the scraper will continue running even if some URLs fail to be scraped.

## `max_items_per_url` (type: `integer`):

The maximum number of items to scrape per URL.

## Actor input object example

```json
{
  "urls": [
    "https://www.hays.com/job-search/engineering-jobs?q=Engineering&location=&specialismId=&subSpecialismId=&locationf=&industryf=&sortType=0&jobType=-1&flexiWorkType=-1&payTypefacet=-1&minPay=-1&maxPay=-1&jobSource=HaysGCJ&searchPageTitle=Engineering%20Jobs%20in%20US%20%7C%20Hays%20Recruitment%20US&searchPageDesc=Explore%20Engineering%20job%20opportunities%20with%20Hays%20Recruitment%20US.%20Compare%20salaries%20and%20apply%20for%20a%20role%20online%20today!"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "urls": [
        "https://www.hays.com/job-search/engineering-jobs?q=Engineering&location=&specialismId=&subSpecialismId=&locationf=&industryf=&sortType=0&jobType=-1&flexiWorkType=-1&payTypefacet=-1&minPay=-1&maxPay=-1&jobSource=HaysGCJ&searchPageTitle=Engineering%20Jobs%20in%20US%20%7C%20Hays%20Recruitment%20US&searchPageDesc=Explore%20Engineering%20job%20opportunities%20with%20Hays%20Recruitment%20US.%20Compare%20salaries%20and%20apply%20for%20a%20role%20online%20today!"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("alexist/hays-jobs-search-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "urls": ["https://www.hays.com/job-search/engineering-jobs?q=Engineering&location=&specialismId=&subSpecialismId=&locationf=&industryf=&sortType=0&jobType=-1&flexiWorkType=-1&payTypefacet=-1&minPay=-1&maxPay=-1&jobSource=HaysGCJ&searchPageTitle=Engineering%20Jobs%20in%20US%20%7C%20Hays%20Recruitment%20US&searchPageDesc=Explore%20Engineering%20job%20opportunities%20with%20Hays%20Recruitment%20US.%20Compare%20salaries%20and%20apply%20for%20a%20role%20online%20today!"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("alexist/hays-jobs-search-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "urls": [
    "https://www.hays.com/job-search/engineering-jobs?q=Engineering&location=&specialismId=&subSpecialismId=&locationf=&industryf=&sortType=0&jobType=-1&flexiWorkType=-1&payTypefacet=-1&minPay=-1&maxPay=-1&jobSource=HaysGCJ&searchPageTitle=Engineering%20Jobs%20in%20US%20%7C%20Hays%20Recruitment%20US&searchPageDesc=Explore%20Engineering%20job%20opportunities%20with%20Hays%20Recruitment%20US.%20Compare%20salaries%20and%20apply%20for%20a%20role%20online%20today!"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}' |
apify call alexist/hays-jobs-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=alexist/hays-jobs-search-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/732rO3qmIpwCyNpOC/builds/6zAjciVPhkQ1umv3c/openapi.json
