Hiring.Cafe Jobs - 100+ Fields, Salaries & Company Insights avatar

Hiring.Cafe Jobs - 100+ Fields, Salaries & Company Insights

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Hiring.Cafe Jobs - 100+ Fields, Salaries & Company Insights

Hiring.Cafe Jobs - 100+ Fields, Salaries & Company Insights

From $1/1K. Unlock powerful Hiring.Cafe job data extraction. Use advanced filters or URLs to get 100+ fields per job, including salary, company insights, and benefits. Fast, scalable, and built for serious data collection. Only $1 for Gold discount.

Pricing

from $1.00 / 1,000 results

Rating

3.0

(1)

Developer

Abot API

Abot API

Maintained by Community

Actor stats

3

Bookmarked

28

Total users

3

Monthly active users

10 days ago

Last modified

Share

Hiring Cafe Scraper: Job Listings, Salaries, Skills & Company Data

Hiring Cafe scraper turns Hiring Cafe job search into a clean data feed. Get job titles, salary ranges and currency, seniority and workplace type, required skills, certifications, visa sponsorship, benefits, and the hiring company's size, funding and headquarters, for roles indexed from company career sites. Search by keyword and filters, or paste search links and single job links, then export to JSON, CSV or Excel, or pull the results straight into your app through the API.

Why This Scraper?

  • Two ways to search. Filter by keyword, location, workplace type, employment type and seniority, or paste Hiring Cafe search links and single job links directly.
  • 100+ structured attributes per job. The complete nested payload the site publishes, plus a curated flat view for filtering and sorting.
  • Full job descriptions on request. Switch on Fetch full job descriptions to pull each posting's complete text; leave it off for a fast, listing only crawl.
  • Company context on every job. Employee count, founding year, headquarters country, funding stage and stock ticker, when the posting publishes them.
  • Pay, requirements and benefits at a glance. Salary range and frequency, minimum years of experience, required education, certifications, visa sponsorship, security clearance, benefits and schedule flags.
  • Built for schedules. Incremental mode returns only new and changed jobs on recurring runs, and a run that cannot connect at all fails loudly instead of returning an empty dataset.
  • Send results into your apps. Optional MCP connectors pipe a summary of each job into Notion, Linear or Airtable right after the scrape.

Use Cases

  • Job boards and aggregators: mirror Hiring Cafe postings with structured salary, benefits and requirement fields ready to filter and republish.
  • Recruiting and sourcing teams: track new roles at target companies, along with funding stage and headcount, to time outreach.
  • Compensation and market research: build salary benchmarks by title, seniority, location and workplace type.
  • Job seekers and career tools: power a personal alert feed for a keyword and location search, refreshed daily with incremental mode.
  • Labor market analysis: study hiring trends across employment types, seniority levels, required skills and certifications over time.

Data You Get

Sample shape: values are illustrative placeholders, not from a live record.

FieldExample
id"abc123XYZ"
job_title"Senior Backend Engineer"
company_name"Sample Robotics Inc."
employment_types"Full Time"
seniority"Senior Level"
workplace_type"Remote"
location"United States"
remote_worldwidetrue
salary_min / salary_max120000 / 160000
salary_currency / salary_frequency"USD" / "yearly"
salary_transparenttrue
posted_at"2026-09-20"
min_years_experience5
education_required["bachelors"]
certifications / technical_tools["AWS Certified Solutions Architect"] / ["Python", "Kubernetes"]
visa_sponsorship / security_clearance"No" / "Not required"
benefits["retirement_plan", "generous_paid_time_off"]
schedule["four_day_work_week"]
company_employees / company_founded"51-200" / 2015
views_on_site / applies_on_site340 / 28
job_url / apply_urlHiring Cafe link to the job / the employer's own application link

Every record also carries the complete nested payload the site publishes: job_information, v5_processed_job_data (85+ structured attributes), the company record (v5_processed_company_data), and _geoloc coordinates, so no source field is ever dropped. With Fetch full job descriptions on, records also carry description (HTML) and description_text (plain text). Incremental mode runs add changeType, changedFields, firstSeenAt and lastSeenAt to every record.

How to Use

  1. Pick a way to search: paste Start URLs (Hiring Cafe search links or single job links), or fill in Search keyword and the filters below it.
  2. Turn Fetch full job descriptions on or off; it is on by default.
  3. Set Maximum jobs to control run size and cost, then click Start.
  4. Download the dataset as JSON, CSV or Excel, or read it through the API.

Search by keyword and location:

{
"keyword": "data scientist",
"location": "Germany",
"workplaceType": "Remote",
"maxItems": 50
}

Filter by employment type, seniority and recency:

{
"keyword": "product manager",
"commitmentType": "Full Time",
"seniorityLevel": "Senior Level",
"postedWithinDays": 7,
"salaryTransparentOnly": true
}

Start from URLs (a search link plus a single job link):

{
"startUrls": [
"https://hiringcafe.com/?searchState=%7B%22searchQuery%22%3A%22nurse%22%7D",
"https://hiringcafe.com/job/1234567"
],
"fetchDetails": true
}

Fast listing only crawl, no descriptions:

{
"keyword": "warehouse associate",
"location": "Chicago",
"fetchDetails": false,
"maxItems": 200
}

Run it from your code

Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("abotapi/hiring-cafe-scraper").call(run_input={"keyword": "data scientist", "location": "Germany"})
for job in client.dataset(run["defaultDatasetId"]).iterate_items():
print(job["job_title"], job["company_name"], job.get("salary_min"))

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('abotapi/hiring-cafe-scraper').call({ keyword: 'data scientist', location: 'Germany' });
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Or connect it to Make, Zapier, n8n, Google Sheets or webhooks from the Integrations tab.

Start URLs take priority

If Start URLs is set, the filters (Search keyword, Location, Workplace type, Employment type, Seniority level, Posted within, Salary transparent only) are ignored for that run. Clear Start URLs to search by filters instead.

Resume and recurring updates

  • Resume (resumeFromRunId) continues one interrupted run: paste its run or dataset ID and the actor skips every job already collected there, so you don't pay twice.
  • Incremental mode (incrementalMode) is for running the same search again and again, for example daily. The first run returns everything as NEW. Later runs return only NEW, UPDATED (with changedFields) and REAPPEARED jobs; UNCHANGED jobs are suppressed and not billed unless emitUnchanged is on, and EXPIRED jobs are only produced after a run that scanned the tracked search all the way through, and only with emitExpired. stateKey names or shares the stored state. With incremental mode off, output is exactly as before.

Send results into your apps (MCP connectors)

Optionally pipe the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. This is an extra delivery step after the scrape: the Apify dataset is never changed.

What gets written to the connector: a condensed, human readable summary of each job, not the full JSON. Each job becomes one entry with a title and its key fields flattened to plain text. The complete record always stays in the Apify dataset.

  1. Authorize a connector once under Apify → Settings → Integrations (Notion, Linear, Airtable, or Apify).
  2. Select it in the "Pipe results into your apps" input field. (If the picker is empty, you haven't authorized a connector yet.)
  3. For Notion, also set notionParentPageUrl to the page where jobs should be created.

The connection is mediated by Apify's MCP proxy, so this actor never sees your third party credentials. Leave the field empty to skip.

Input Parameters

ParameterTypeDefaultDescription
startUrlsarray(none)Hiring Cafe search links (with ?searchState=…) and/or single job links (…/job/…). If set, the filters below are ignored.
keywordstring(none)Job title, skill, or company name. Used only when Start URLs is empty. The input form pre-fills software engineer as a starting example; the actor itself has no keyword unless you set one.
locationstring(none)Country or city. Combined with the keyword; leave empty for worldwide results.
workplaceTypestringAnyAny, Remote, Hybrid, or Onsite.
commitmentTypestringAnyAny, Full Time, Part Time, Contract, or Internship.
seniorityLevelstringAnyAny, No Prior Experience Required, Entry Level, Mid Level, or Senior Level.
postedWithinDaysinteger30Only jobs published in the last N days (maximum 365).
salaryTransparentOnlybooleanfalseReturn only jobs whose pay is publicly disclosed.
maxItemsinteger1000Stop after this many jobs (0 = unlimited). The input form pre-fills 20 as a light starting run; raise it for a full pull. Each results page carries up to ~100 jobs.
resumeFromRunIdstring(none)Paste a previous run ID or dataset ID to continue a large search without returning or charging for jobs already collected there.
incrementalModebooleanfalseTurn on for daily or recurring monitoring of the same search: returns only new and changed jobs on later runs.
stateKeystring(none)Name this monitoring campaign, or deliberately share state across differently configured runs. Left empty, the actor derives a key from the search/filters/URLs automatically.
emitUnchangedbooleanfalseAlso return (and bill) jobs that have not changed since the last run, marked UNCHANGED. Incremental mode only.
emitExpiredbooleanfalseAlso return (and bill) jobs no longer found after a complete scan of the tracked search, marked EXPIRED. Incremental mode only.
proxyobjectResidential (Apify Proxy)Connection settings. Hiring Cafe blocks datacenter IP ranges, so a residential connection is strongly recommended.
mcpConnectorsarray(none)Optional: send a summary of each job to apps you authorized under Integrations.
notionParentPageUrlstring(none)Notion connector only: page under which job pages are created.
maxNotifyListingsinteger50Cap on jobs written to each connector per run. Does not affect the dataset.
fetchDetailsbooleantrueRead each matched job's own page for the full description and the freshest view/apply counts. Turn off for a fast, listing only crawl.

Output Example

Sample shape: values are illustrative placeholders, not from a live record.

{
"id": "abc123XYZ",
"requisition_id": "REQ-4821",
"source": "greenhouse",
"job_title": "Senior Backend Engineer",
"company_name": "Sample Robotics Inc.",
"employment_types": "Full Time",
"seniority": "Senior Level",
"workplace_type": "Remote",
"location": "United States",
"remote_worldwide": true,
"salary_min": 120000,
"salary_max": 160000,
"salary_currency": "USD",
"salary_frequency": "yearly",
"salary_transparent": true,
"posted_at": "2026-09-20",
"min_years_experience": 5,
"education_required": ["bachelors"],
"certifications": ["AWS Certified Solutions Architect"],
"technical_tools": ["Python", "Kubernetes"],
"visa_sponsorship": "No",
"benefits": ["retirement_plan", "generous_paid_time_off"],
"company_employees": "51-200",
"company_founded": 2015,
"company_hq_country": "United States",
"views_on_site": 340,
"applies_on_site": 28,
"description_text": "We are looking for a Senior Backend Engineer to join our platform team...",
"job_url": "https://hiringcafe.com/job/REQ-4821",
"apply_url": "https://sample-robotics.example.com/careers/req-4821/apply",
"job_information": {},
"v5_processed_job_data": {},
"v5_processed_company_data": {},
"_geoloc": { "lat": 37.77, "lng": -122.41 }
}

Plan Requirement

The default connection setting works out of the box. Hiring Cafe blocks datacenter IP ranges, so a residential connection is strongly recommended for reliable results; select the Residential group under Connection. A run without residential credit still executes on a backup connection, but may return fewer results, or none.

FAQ

How much does it cost?

You pay per job returned. The Pricing tab shows the current rates. Use Maximum jobs to cap the cost of any run.

This actor collects only publicly available job listings. You are responsible for how you use it: follow Hiring Cafe's terms and the laws that apply to you, and get legal advice if you plan commercial redistribution. Job descriptions and company details may carry the original poster's rights.

Can I get only new or changed jobs on a schedule?

Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. The first run returns every matching job as NEW; later runs return only NEW, UPDATED and REAPPEARED jobs, classified against a fingerprint of each job's own content, and unchanged jobs are not billed unless you turn on Emit unchanged.

Why do my filters seem to have no effect?

Start URLs takes priority over the filters below it. If any Start URL is set, keyword, location, workplace type, employment type, seniority and posted within days are all ignored for that run. Clear Start URLs to search by filters instead.

Why did my run fail instead of returning an empty dataset?

A run fails only when it cannot connect at all before loading a single page, when every Start URL is unrecognized (neither a Hiring Cafe search link nor a job link), when Resume from a previous run points at an id that cannot be read, or when Resume from a previous run is combined with Incremental mode for a search that already has saved incremental state; each of these stops the run with a clear message. If the connection works but an individual page is later refused, or your filters simply match nothing, the run finishes normally and returns fewer jobs, or none, with the reason logged.

Can I use it with AI agents or MCP?

Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear or Airtable.

🔗 Want more jobs data?

Pair this actor with these related scrapers from the same team:

💼 CareerBuilder Scraper
Scrape CareerBuilder.com job listings by search or URL. Returns title, company profile...
💼 ZipRecruiter Scraper
From $1/1K. Scrape ZipRecruiter jobs with titles, companies, salaries, locations...
💼 Jobs.cz
Scrape Czech job listings from Jobs.cz. Search builder (keyword, location, field, salary...
💼 Wellfound Jobs Scraper
Scrape startup jobs from Wellfound.com by keyword, location, role, or remote status...
💼 NIJobs Scraper
Scrape NIJobs.com listings across Northern Ireland by keyword, location, salary, posted...
💼 Nofluffjobs
From $1/1K. Extract IT jobs from NoFluffJobs.com across Poland, Czechia, Slovakia...

👉 Browse all abotapi scrapers

💬 Support & custom scrapers

  • 🐞 Found a bug or a missing field? Open a ticket on the Issues tab. We usually reply within hours.
  • 🛠️ Need another site, extra fields or a private build? Email contact@abotapi.com or message Telegram @abotapi.
  • ⭐ Enjoying it? A quick review on the actor page helps other users find it.