# HiringCafe Jobs Scraper (`automly/hiringcafe-jobs-scraper`) Actor

Extract job listings from HiringCafe with titles, companies, locations, apply links, salary ranges, experience, skills, and company details for recruiting intelligence and job market research.

- **URL**: https://apify.com/automly/hiringcafe-jobs-scraper.md
- **Developed by:** [Automly](https://apify.com/automly) (community)
- **Categories:** Automation, Developer tools, Jobs
- **Stats:** 3 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.50 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## HiringCafe Jobs Scraper

The **HiringCafe Jobs Scraper** extracts job listings from HiringCafe and returns clean, structured job data including titles, companies, locations, apply links, salary ranges, skills, experience requirements, and company details. Use it for recruiting intelligence, job market research, compensation benchmarking, and lead generation.

### Features

- Search HiringCafe by keyword, title, company, industry, location, workplace type, and commitment type
- Extract transparent salary ranges when available
- Return annualized and hourly compensation fields
- Filter for remote, hybrid, onsite, or field roles
- Filter by recent jobs, salary transparency, and salary range
- Capture apply URLs, ATS source, skills, requirements summaries, and company metadata
- Optional raw data output for advanced workflows

### Input example

```json
{
  "searchQuery": "software engineer",
  "locations": ["Singapore"],
  "workplaceTypes": ["Remote"],
  "commitmentTypes": ["Full Time"],
  "transparentSalaryOnly": true,
  "minYearlySalary": 100000,
  "sortBy": "compensation_desc",
  "maxItems": 100
}
````

### Main input fields

- `searchQuery` — keyword search, such as `software engineer` or `product manager`
- `locations` — location labels such as `Singapore`, `Tokyo`, or `United States`
- `workplaceTypes` — `Remote`, `Hybrid`, `Onsite`, `Field`
- `commitmentTypes` — `Full Time`, `Part Time`, `Contract`, `Internship`, `Temporary`, `Seasonal`, `Volunteer`
- `transparentSalaryOnly` — only return jobs with detected salary data
- `minYearlySalary` / `maxYearlySalary` — salary filters
- `sortBy` — `default`, `date`, `date_asc`, `compensation_desc`, `compensation_asc`, `experience_asc`, `experience_desc`
- `maxItems` — maximum number of records to save

### Output example

```json
{
  "jobId": "workday___example",
  "title": "Software Engineer",
  "companyName": "Example Inc",
  "location": "United States",
  "workplaceType": "Remote",
  "commitmentType": "Full Time",
  "applyUrl": "https://example.com/apply",
  "salaryCurrency": "USD",
  "salaryListedFrequency": "Yearly",
  "salaryIsTransparent": true,
  "yearlyMinSalary": 70000,
  "yearlyMaxSalary": 86000,
  "hourlyMinSalary": 33.65,
  "hourlyMaxSalary": 41.34,
  "requirementsSummary": "Bachelor's degree and software engineering experience...",
  "technicalTools": ["Python", "SQL"],
  "source": "workday"
}
```

### Salary data

When salary is available, the actor returns:

- `salaryIsTransparent`
- `salaryCurrency`
- `salaryListedFrequency`
- `yearlyMinSalary` / `yearlyMaxSalary`
- `hourlyMinSalary` / `hourlyMaxSalary`
- full nested `salary` object with yearly, monthly, weekly, bi-weekly, daily, and hourly values when present

Some jobs do not publish compensation. Those records will have null salary values unless `transparentSalaryOnly` is enabled.

### Use cases

- Build job boards and role monitors
- Track remote job openings
- Benchmark software engineering salaries
- Monitor company hiring trends
- Enrich recruiting lead lists
- Analyze market demand by skill, title, or location

### Pricing

Suggested event: `result-item-produced` — charged per job record saved to the dataset.

### Notes

This actor extracts public job listing data. Availability and fields may vary by job posting. Salary fields are returned when HiringCafe has detected or normalized compensation information.

# Actor input Schema

## `searchQuery` (type: `string`):

Keyword or phrase to search for, e.g. software engineer, product manager, registered nurse.

## `locations` (type: `array`):

Location labels to search, e.g. Singapore, Tokyo, Japan, United States. Leave empty for HiringCafe defaults.

## `workplaceTypes` (type: `array`):

Allowed values: Remote, Hybrid, Onsite, Field. Leave empty to include all.

## `commitmentTypes` (type: `array`):

Allowed values: Full Time, Part Time, Contract, Internship, Temporary, Seasonal, Volunteer. Leave empty to include all.

## `dateFetchedPastNDays` (type: `integer`):

Return jobs fetched by HiringCafe within the past N days. Common values: 1, 3, 7, 14, 30, 121.

## `sortBy` (type: `string`):

Allowed values: default, date, date\_asc, compensation\_desc, compensation\_asc, experience\_asc, experience\_desc.

## `transparentSalaryOnly` (type: `boolean`):

Only return jobs where HiringCafe has detected a salary range.

## `minYearlySalary` (type: `integer`):

Minimum yearly salary filter. Leave empty/null to disable.

## `maxYearlySalary` (type: `integer`):

Maximum yearly salary filter. Leave empty/null to disable.

## `salaryCurrency` (type: `string`):

Currency code for salary filtering, e.g. USD, EUR, GBP. Used when salary filters are provided.

## `jobTitleQuery` (type: `string`):

Optional boolean query applied to job titles, e.g. (ios AND engineer) AND NOT android.

## `technologyKeywordsQuery` (type: `string`):

Optional boolean query for technical tools/skills, e.g. Python AND SQL.

## `requirementsKeywordsQuery` (type: `string`):

Optional boolean query for requirements text.

## `companyNames` (type: `array`):

Company names to include. Leave empty for all companies.

## `excludedCompanyNames` (type: `array`):

Company names to exclude.

## `industries` (type: `array`):

Industries to include, using HiringCafe facet labels. Leave empty for all industries.

## `maxItems` (type: `integer`):

Maximum number of job records to save to the dataset.

## `startPage` (type: `integer`):

Zero-based results page to start from.

## `useApifyProxy` (type: `boolean`):

Route requests through Apify Proxy when available. Useful for cloud runs or stricter network environments.

## `proxyGroups` (type: `array`):

Optional Apify Proxy groups to use, such as RESIDENTIAL. Leave empty to use the account's default proxy pool.

## `includeRawData` (type: `boolean`):

Include the original HiringCafe job object in each dataset item. Useful for debugging or advanced enrichment.

## Actor input object example

```json
{
  "searchQuery": "software engineer",
  "locations": [],
  "workplaceTypes": [],
  "commitmentTypes": [],
  "dateFetchedPastNDays": 121,
  "sortBy": "default",
  "transparentSalaryOnly": false,
  "salaryCurrency": "USD",
  "jobTitleQuery": "",
  "technologyKeywordsQuery": "",
  "requirementsKeywordsQuery": "",
  "companyNames": [],
  "excludedCompanyNames": [],
  "industries": [],
  "maxItems": 100,
  "startPage": 0,
  "useApifyProxy": false,
  "proxyGroups": [],
  "includeRawData": false
}
```

# Actor output Schema

## `records` (type: `string`):

All jobs produced by this run.

## `overview` (type: `string`):

Dataset presented using the overview view.

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("automly/hiringcafe-jobs-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("automly/hiringcafe-jobs-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 '{}' |
apify call automly/hiringcafe-jobs-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "HiringCafe Jobs Scraper",
        "description": "Extract job listings from HiringCafe with titles, companies, locations, apply links, salary ranges, experience, skills, and company details for recruiting intelligence and job market research.",
        "version": "1.0",
        "x-build-id": "T174sxdOdtYhL6Ckk"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/automly~hiringcafe-jobs-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-automly-hiringcafe-jobs-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/automly~hiringcafe-jobs-scraper/runs": {
            "post": {
                "operationId": "runs-sync-automly-hiringcafe-jobs-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/automly~hiringcafe-jobs-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-automly-hiringcafe-jobs-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "searchQuery": {
                        "title": "Search query",
                        "type": "string",
                        "description": "Keyword or phrase to search for, e.g. software engineer, product manager, registered nurse.",
                        "default": "software engineer"
                    },
                    "locations": {
                        "title": "Locations",
                        "type": "array",
                        "description": "Location labels to search, e.g. Singapore, Tokyo, Japan, United States. Leave empty for HiringCafe defaults.",
                        "items": {
                            "type": "string"
                        },
                        "default": []
                    },
                    "workplaceTypes": {
                        "title": "Workplace types",
                        "type": "array",
                        "description": "Allowed values: Remote, Hybrid, Onsite, Field. Leave empty to include all.",
                        "items": {
                            "type": "string"
                        },
                        "default": []
                    },
                    "commitmentTypes": {
                        "title": "Commitment types",
                        "type": "array",
                        "description": "Allowed values: Full Time, Part Time, Contract, Internship, Temporary, Seasonal, Volunteer. Leave empty to include all.",
                        "items": {
                            "type": "string"
                        },
                        "default": []
                    },
                    "dateFetchedPastNDays": {
                        "title": "Posted within days",
                        "minimum": 1,
                        "maximum": 365,
                        "type": "integer",
                        "description": "Return jobs fetched by HiringCafe within the past N days. Common values: 1, 3, 7, 14, 30, 121.",
                        "default": 121
                    },
                    "sortBy": {
                        "title": "Sort by",
                        "type": "string",
                        "description": "Allowed values: default, date, date_asc, compensation_desc, compensation_asc, experience_asc, experience_desc.",
                        "default": "default"
                    },
                    "transparentSalaryOnly": {
                        "title": "Transparent salary only",
                        "type": "boolean",
                        "description": "Only return jobs where HiringCafe has detected a salary range.",
                        "default": false
                    },
                    "minYearlySalary": {
                        "title": "Minimum yearly salary",
                        "type": "integer",
                        "description": "Minimum yearly salary filter. Leave empty/null to disable."
                    },
                    "maxYearlySalary": {
                        "title": "Maximum yearly salary",
                        "type": "integer",
                        "description": "Maximum yearly salary filter. Leave empty/null to disable."
                    },
                    "salaryCurrency": {
                        "title": "Salary currency",
                        "type": "string",
                        "description": "Currency code for salary filtering, e.g. USD, EUR, GBP. Used when salary filters are provided.",
                        "default": "USD"
                    },
                    "jobTitleQuery": {
                        "title": "Job title boolean query",
                        "type": "string",
                        "description": "Optional boolean query applied to job titles, e.g. (ios AND engineer) AND NOT android.",
                        "default": ""
                    },
                    "technologyKeywordsQuery": {
                        "title": "Technology keywords boolean query",
                        "type": "string",
                        "description": "Optional boolean query for technical tools/skills, e.g. Python AND SQL.",
                        "default": ""
                    },
                    "requirementsKeywordsQuery": {
                        "title": "Requirements keywords boolean query",
                        "type": "string",
                        "description": "Optional boolean query for requirements text.",
                        "default": ""
                    },
                    "companyNames": {
                        "title": "Company names",
                        "type": "array",
                        "description": "Company names to include. Leave empty for all companies.",
                        "items": {
                            "type": "string"
                        },
                        "default": []
                    },
                    "excludedCompanyNames": {
                        "title": "Excluded company names",
                        "type": "array",
                        "description": "Company names to exclude.",
                        "items": {
                            "type": "string"
                        },
                        "default": []
                    },
                    "industries": {
                        "title": "Industries",
                        "type": "array",
                        "description": "Industries to include, using HiringCafe facet labels. Leave empty for all industries.",
                        "items": {
                            "type": "string"
                        },
                        "default": []
                    },
                    "maxItems": {
                        "title": "Maximum items",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of job records to save to the dataset.",
                        "default": 100
                    },
                    "startPage": {
                        "title": "Start page",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Zero-based results page to start from.",
                        "default": 0
                    },
                    "useApifyProxy": {
                        "title": "Use Apify Proxy",
                        "type": "boolean",
                        "description": "Route requests through Apify Proxy when available. Useful for cloud runs or stricter network environments.",
                        "default": false
                    },
                    "proxyGroups": {
                        "title": "Apify Proxy groups",
                        "type": "array",
                        "description": "Optional Apify Proxy groups to use, such as RESIDENTIAL. Leave empty to use the account's default proxy pool.",
                        "items": {
                            "type": "string"
                        },
                        "default": []
                    },
                    "includeRawData": {
                        "title": "Include raw data",
                        "type": "boolean",
                        "description": "Include the original HiringCafe job object in each dataset item. Useful for debugging or advanced enrichment.",
                        "default": false
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
