Hiring Cafe Jobs Scraper
Hiring Cafe Jobs Scraper
Scrape global job postings from Hiring Cafe — an AI-powered job search engine aggregating listings from Ashby, Greenhouse, Lever, and 100+ other boards. Returns job title, company details, salary, location, remote policy, visa sponsorship, seniority level, and more for thousands of live listings worldwide.
Hiring Cafe Scraper Features
- Extracts 30+ structured fields per job posting — title, salary, location, remote policy, seniority, and more
- Returns AI-normalised job titles alongside the raw listing title (useful when "Principal SWE III" means "Senior Engineer")
- Collects company metadata — employee count, industries, funding stage, HQ country, and website
- Captures salary data when disclosed — min/max range, currency, and original frequency (hourly, yearly)
- Flags visa sponsorship availability per posting, which most job board APIs bury or omit entirely
- Pure API scraping — no browser required. Fast, low-memory, no proxy needed
- Handles pagination automatically across 300+ pages of results
- Stops at
maxItemsso test runs don't bill you for the whole corpus
Who Uses Hiring Cafe Data?
- Recruiters — monitor which companies are actively hiring in target verticals before cold-outreach
- Salary researchers — aggregate disclosed compensation ranges by role, location, and seniority for benchmarking
- Job seekers and career coaches — track remote and visa-sponsoring positions at scale across dozens of ATS sources
- Market analysts — identify hiring trends by company size, funding stage, or sector
- HR tech teams — build curated job feeds from a single consolidated source rather than scraping 100+ boards separately
How It Works
- The scraper fetches the Hiring Cafe home page to extract the current Next.js build identifier — the key that unlocks the site's structured SSR data API.
- It requests the data API page by page, each response containing up to 150 job objects with full AI-processed metadata.
- Each job hit is transformed into a clean, flat record — company data merged in, salary normalised to yearly, list fields flattened to pipe-separated strings for easy CSV export.
- Records are saved until
maxItemsis reached or the feed is exhausted.
Hiring Cafe Scraper Input
{
"maxItems": 100
}
| Field | Type | Default | Description |
|---|---|---|---|
maxItems |
integer | required | Maximum number of job records to return. Set to a small number for testing. |
Hiring Cafe Scraper Output Fields
{
"job_id": "ashby___acme-corp___a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"job_url": "https://jobs.ashbyhq.com/acme-corp/a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"job_title": "Senior Software Engineer",
"job_title_raw": "Sr. Software Engineer (Backend) - Platform Team",
"company_name": "Acme Corp",
"company_website": "https://acmecorp.com",
"company_size": 500,
"company_industries": "Software | Cloud Infrastructure",
"company_hq_country": "US",
"company_funding_type": "Series B",
"company_funding_year": 2023,
"location_countries": "US | CA",
"location_states": "California, US | Ontario, CA",
"location_cities": "San Francisco, CA | Toronto, ON",
"location_formatted": "San Francisco, CA or Toronto, ON (remote)",
"remote_policy": "Hybrid",
"workplace_type": "Hybrid",
"seniority_level": "Senior Level",
"job_category": "Engineering",
"commitment": "Full Time",
"role_type": "Individual Contributor",
"visa_sponsorship": false,
"salary_min_yearly": 160000,
"salary_max_yearly": 220000,
"salary_currency": "USD",
"salary_listed_frequency": "Yearly",
"requirements_summary": "5+ years backend engineering; Go or Rust preferred; distributed systems experience; AWS; strong systems design skills.",
"technical_tools": "Go | Rust | AWS | Kubernetes | PostgreSQL",
"source": "ashby",
"board_token": "acme-corp",
"is_expired": false,
"scraped_at": "2026-06-02T10:30:00.000Z"
}
| Field | Type | Description |
|---|---|---|
job_id |
string | Unique job identifier (source + board_token + requisition id) |
job_url |
string | Direct application URL |
job_title |
string | AI-normalised core job title |
job_title_raw |
string | Original raw title from the posting |
company_name |
string | Company name |
company_website |
string | Company homepage URL |
company_size |
integer | Employee headcount (approximate) |
company_industries |
string | Industries (pipe-separated) |
company_hq_country |
string | HQ country code (ISO) |
company_funding_type |
string | Latest funding type (e.g. Series A, Bootstrapped) |
company_funding_year |
integer | Year of latest funding round |
location_countries |
string | Workplace countries (pipe-separated ISO codes) |
location_states |
string | Workplace states/regions (pipe-separated) |
location_cities |
string | Workplace cities (pipe-separated) |
location_formatted |
string | Human-readable formatted workplace location |
remote_policy |
string | Remote work policy (Remote, Hybrid, On-site) |
workplace_type |
string | Workplace type classification |
seniority_level |
string | Seniority (Entry Level, Mid Level, Senior Level, etc.) |
job_category |
string | Job category/function |
commitment |
string | Employment type (Full Time, Part Time, Contract) |
role_type |
string | Role type (Individual Contributor, Manager) |
visa_sponsorship |
boolean | Whether visa sponsorship is offered |
salary_min_yearly |
number | Minimum annual salary (normalised to yearly) |
salary_max_yearly |
number | Maximum annual salary (normalised to yearly) |
salary_currency |
string | Salary currency code (USD, EUR, GBP, etc.) |
salary_listed_frequency |
string | Original salary frequency (Yearly, Hourly, Monthly) |
requirements_summary |
string | AI-generated summary of key requirements |
technical_tools |
string | Required tools and technologies (pipe-separated) |
source |
string | Job board source (ashby, greenhouse, lever, etc.) |
board_token |
string | Company board token on the source platform |
is_expired |
boolean | Whether the posting has expired |
scraped_at |
string | ISO 8601 timestamp of when the record was scraped |
🔍 FAQ
How do I scrape Hiring Cafe job postings?
Hiring Cafe Jobs Scraper handles it. Set maxItems to however many records you need, run it, and the output lands in your dataset as structured JSON. No browser, no proxy, no configuration beyond that.
How much does the Hiring Cafe Jobs Scraper cost to run?
Billing is per record at a very low per-item rate — well under a cent per job in typical runs. The maxItems field caps your spend precisely if budget matters.
What data can I get from Hiring Cafe?
Hiring Cafe Jobs Scraper returns 30+ fields per posting: job title (raw and AI-normalised), company details (size, funding, industries), salary range when disclosed, location, remote policy, seniority level, visa sponsorship status, and a machine-generated requirements summary. Coverage is global — listings from every continent show up in the feed.
Does Hiring Cafe Jobs Scraper need proxies?
No. The scraper hits Hiring Cafe's SSR data API directly with a standard browser user-agent. No proxies, no CAPTCHAs, no workarounds needed.
How many jobs are available on Hiring Cafe?
The live corpus is roughly 12,000+ active listings, refreshed continuously. Set maxItems to a smaller number for targeted pulls, or leave it large to sweep the full feed.
Need More Features?
Custom filters by location, seniority, or company size? Incremental runs? File an issue or get in touch.
Why Use Hiring Cafe Jobs Scraper?
- No overhead — Pure API extraction, no browser, no proxy, no setup beyond
maxItems. It's as simple as job scrapers get. - Richer output than most alternatives — AI-normalised titles, company funding data, and requirements summaries in one payload, which beats manually joining three data sources after the fact.
- Global coverage — Listings from 100+ ATS platforms (Ashby, Greenhouse, Lever, SAP SuccessFactors, and more) in a single, consistently structured feed.