HiringCafe Jobs Scraper
Pricing
from $0.48 / 1,000 job extracteds
HiringCafe Jobs Scraper
Search HiringCafe and export structured job identity, company, location, remote, compensation, posting, requirements context, and application data for recruiting feeds.
Pricing
from $0.48 / 1,000 job extracteds
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Search public HiringCafe job results and export structured hiring data for recruiting and labor-market feeds.
HiringCafe Jobs Scraper returns one dataset row per unique job.
Each row can include job identity, title, company, location, workplace type, compensation, posting date, requirements context, technical tools, and application URLs.
The Actor accepts ordinary keyword searches and HiringCafe URLs with encoded search filters.
What does HiringCafe Jobs Scraper do?
The Actor turns HiringCafe searches into reusable datasets.
Use it to:
- find jobs for a role, skill, or company;
- refresh a recruiting feed on a schedule;
- export hiring data to JSON, CSV, Excel, or another integration;
- analyze remote, location, seniority, and compensation signals;
- collect stable job IDs and source URLs for downstream comparison.
The Actor reads HiringCafe's public structured search data.
It does not require a HiringCafe account.
Who is it for?
Recruiters can build focused role or company searches.
Talent sourcing teams can export openings for candidate research.
Labor-market analysts can collect repeatable samples of current hiring demand.
Sales and research teams can identify companies with relevant open roles.
Data engineers can schedule runs and load normalized rows into a warehouse.
Job-feed builders can retain source attribution and direct application links.
Why use this HiringCafe scraper?
HiringCafe exposes rich search-result metadata across many employer career sites.
This Actor normalizes the useful fields without requiring a browser for every run.
It provides:
- keyword and filtered-URL inputs;
- deterministic pagination;
- within-run deduplication by stable job ID;
- explicit maximum-item control;
- typed, integration-ready dataset rows;
- bounded retries for transient upstream failures;
- non-zero failure status for challenge pages or changed response shapes.
The Actor does not silently treat a blocked response as an empty search.
What HiringCafe job data can I extract?
| Field | Meaning |
|---|---|
jobId | Stable HiringCafe job identity |
requisitionId | Source or employer requisition identity when shown |
title | Published job title |
companyName | Hiring company |
companyWebsite | Company website when available |
companySize | Estimated employee count when available |
companyIndustry | Company sector or industry |
companyTagline | Short company context from HiringCafe enrichment |
location | Formatted workplace location |
countries | Workplace countries |
workplaceType | Remote, hybrid, onsite, or related classification |
employmentTypes | Full time, contract, internship, or other commitments |
seniority | Seniority level when available |
salaryMin / salaryMax | Yearly normalized compensation range |
salaryCurrency | Listed currency |
salaryFrequency | Frequency used in the original compensation statement |
compensationTransparent | Whether compensation is marked transparent |
datePosted | Estimated publication timestamp |
sourcePlatform | Original ATS or career-site platform |
sourceUrl | Public source or application URL |
applyUrl | Direct application URL |
canonicalUrl | Canonical URL retained for the exported record |
descriptionText | Description, requirements, or company context available in search results |
requirements | HiringCafe requirements summary |
technicalTools | Tools and technologies associated with the role |
roleActivities | Normalized role activities |
languages | Language requirements |
benefits | Benefits indicated in job metadata |
visaSponsorship | Visa-sponsorship signal when available |
relocationAssistance | Relocation-assistance signal when available |
isExpired | HiringCafe expiration status |
searchQuery | Query that produced the row |
scrapedAt | Export timestamp |
Fields can be null or empty when an employer did not publish that information.
How to scrape HiringCafe jobs
- Open the Actor in Apify Console.
- Enter one or more role, skill, or company terms in Search queries.
- Optionally add HiringCafe search URLs with filters you configured on the site.
- Set Maximum jobs to control output and cost.
- Run the Actor.
- Review the HiringCafe jobs dataset view.
- Export the rows or connect the dataset to your workflow.
Start with 10–50 jobs to inspect coverage for your search.
Input parameters
searchQueries
An array of non-empty role, skill, or company searches.
Examples:
software engineerdata scientistAI engineerAmazonproduct manager
Multiple queries are processed in order.
Duplicate jobs are saved only once within a run.
startUrls
Optional public HiringCafe search URLs.
The Actor accepts hiringcafe.com and legacy hiring.cafe hosts.
It preserves the URL's encoded searchState object.
A URL with a simple q parameter is also supported.
Other domains are rejected before any scraping begins.
maxItems
The maximum number of unique jobs saved across all inputs.
Allowed range: 1–1,000.
Default: 50.
The Actor stops as soon as this limit is reached.
includeDescriptionHtml
When enabled, the Actor adds descriptionHtml if HiringCafe exposes raw HTML.
Search results often contain a requirements summary rather than a full job-description body.
descriptionText therefore falls back to available requirements or company context.
Example input
{"searchQueries": ["software engineer", "data scientist"],"maxItems": 25,"includeDescriptionHtml": false}
Example output
This representative shape is based on a current local run.
{"jobId": "ashby___sample-company___96c74af4-b3d7-4960-a666-212ce4debac8","requisitionId": "96c74af4-b3d7-4960-a666-212ce4debac8","title": "Software Engineer, Integrations","companyName": "Sample AI Company","companyWebsite": "https://sample-ai.example","location": "Toronto or San Francisco or New York City or London","countries": ["Canada", "United States", "United Kingdom"],"workplaceType": "Remote","employmentTypes": ["Full Time"],"seniority": "Mid Level","salaryMin": 150000,"salaryMax": 270000,"salaryCurrency": "USD","salaryFrequency": "Yearly","compensationTransparent": true,"sourcePlatform": "ashby","applyUrl": "https://jobs.example.org/sample-company/96c74af4","requirements": "Production software engineering and external API integration experience.","technicalTools": ["Python", "TypeScript"],"isExpired": false,"searchQuery": "software engineer","scrapedAt": "2025-01-15T12:00:00.000Z"}
Example values are anonymized; actual runs return current public source values.
How much does it cost to export HiringCafe jobs?
The Actor uses pay-per-event pricing.
A one-time start event is charged when a run begins.
A job event is charged only for each unique job saved to the default dataset.
Rejected, duplicate, empty, and failed records are not charged as jobs.
The one-time start event costs $0.00005.
The per-job prices are $0.00092 FREE, $0.0008 BRONZE, $0.000624 SILVER, $0.00048 GOLD, $0.00032 PLATINUM, and $0.000224 DIAMOND.
The six prices decrease by Apify account tier.
At BRONZE pricing, a 10-job preview costs $0.00805: one start plus 10 jobs.
At BRONZE pricing, a 100-job feed costs $0.08005: one start plus 100 jobs.
Set the maximum-jobs input to place a predictable upper bound on job-event charges.
A naturally empty search incurs the start event but produces no job events.
Build recurring recruiting feeds
Use Apify schedules to run a stable input daily or weekly.
Store jobId, isExpired, and scrapedAt in your destination.
Compare each new dataset with your prior snapshot to identify additions or removals.
The Actor itself does not maintain cross-run history or send alerts.
Use Apify integrations, webhooks, or your own database for that layer.
Export to spreadsheets and data pipelines
Apify datasets can be downloaded as JSON, CSV, Excel, XML, or RSS.
Common workflows include:
- send a scheduled dataset to Google Sheets;
- load rows into BigQuery, Snowflake, or PostgreSQL;
- trigger an automation from a run-finished webhook;
- enrich company domains in a downstream process;
- join snapshots by
jobIdfor labor-market analysis.
Preserve sourceUrl or applyUrl when publishing or reviewing results.
JavaScript API example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/hiringcafe-jobs').call({searchQueries: ['AI engineer'],maxItems: 25,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python API example
from apify_client import ApifyClientclient = ApifyClient("MY-APIFY-TOKEN")run = client.actor("automation-lab/hiringcafe-jobs").call(run_input={"searchQueries": ["data scientist"],"maxItems": 25,})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(items)
cURL API example
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~hiringcafe-jobs/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"searchQueries":["product manager"],"maxItems":25}'
Fetch the resulting default dataset after the run succeeds.
Do not commit API tokens into code or input files.
Use HiringCafe Jobs Scraper with MCP
Add this Actor to Claude Code:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/hiringcafe-jobs"
Claude Desktop, Cursor, and VS Code MCP setup
Claude Desktop, Cursor, and VS Code can use this HTTP MCP configuration:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/hiringcafe-jobs"}}}
Example prompts for MCP usage
After connecting the MCP server, ask your MCP client:
- “Use the HiringCafe Jobs Scraper MCP tool to find 20 remote software engineer jobs and show company, location, and salary.”
- “Use MCP to export Amazon-related HiringCafe jobs with stable IDs and apply URLs.”
- “Use the MCP tool to create a table of AI engineer jobs that show transparent compensation.”
Reliability and pagination
The Actor first resolves HiringCafe's current Next.js build identifier.
It then requests structured search pages in sequence.
A changed build identifier is refreshed once after a 404.
Transient network, 403, 429, and server responses receive bounded retries.
The Actor validates status, challenge shape, JSON, and expected result fields.
Unexpected challenge or payload changes fail the run instead of returning misleading empty data.
Limits and data freshness
Results reflect HiringCafe's public search data at run time.
The Actor does not log in or access saved-user data.
A search may return fewer rows than maxItems because of source availability or deduplication.
HiringCafe controls enrichment, publication dates, salary normalization, and expiration flags.
Some fields can be inferred by HiringCafe rather than supplied directly by an employer.
Search-result context is not guaranteed to include the full original job description.
The maximum output is 1,000 jobs per run.
Troubleshooting
Why did my search return no jobs?
Try the same query on HiringCafe and verify that public results currently exist.
Use a broader role name or a filtered HiringCafe URL.
An empty valid search succeeds with zero job rows.
Why are salary fields null?
Many employers do not publish compensation.
The Actor returns salary only when HiringCafe exposes normalized compensation data.
Why did the run fail instead of returning zero rows?
The Actor detected an upstream challenge, HTTP failure, invalid JSON, or unexpected response shape.
Inspect the run log and retry later rather than treating that failure as a valid empty feed.
Why was a start URL rejected?
Only public HiringCafe URLs containing searchState or q are accepted.
This prevents accidental requests to unrelated domains or non-search pages.
Responsible use and legality
This Actor extracts public job-search information.
You are responsible for complying with applicable laws, source terms, and employer-site requirements.
Use reasonable schedules and result limits.
Retain source attribution when appropriate.
Do not use the output for spam, unlawful discrimination, or intrusive profiling.
Avoid republishing copyrighted job text beyond what your use permits.
Related Automation Lab Actors
Combine this Actor with related public recruiting data sources when that improves coverage:
- Remote OK Jobs Feed Scraper
- Company Career Page Jobs Scraper
- Breezy HR Jobs Scraper
- Gupy Jobs Scraper
Each source has different fields and coverage.
Use stable IDs and source URLs when combining feeds.
FAQ
Can I search multiple terms in one run?
Yes. Add multiple strings to searchQueries.
The Actor deduplicates matching jobs by job ID.
Can I reuse filters from HiringCafe?
Yes. Add the public HiringCafe URL to startUrls.
The Actor preserves its encoded searchState object.
Does the Actor need residential proxies?
No automatic proxy or browser fallback is enabled.
The current public structured route works through direct HTTP and avoids unnecessary proxy transfer.
Does it include full descriptions?
It returns description context available in search results, usually a requirements summary.
Enable includeDescriptionHtml to retain HTML only when HiringCafe exposes it.
Can I export CSV or Excel?
Yes. Use the default dataset export options in Apify Console or API.
Can I schedule the Actor?
Yes. Save a Task with stable input and attach an Apify schedule.
Does it compare runs automatically?
No. Store snapshots in your destination and compare them by jobId.
Are duplicate jobs charged twice?
Not within one run. A stable job ID is saved and charged only once per run.