Hiring.cafe Job Scraper avatar

Hiring.cafe Job Scraper

Pricing

from $1.10 / 1,000 job results

Go to Apify Store
Hiring.cafe Job Scraper

Hiring.cafe Job Scraper

[💰 $1.1 / 1K] Every job listing on Hiring.cafe as 60 flat, named columns — title, normalized title, seniority, workplace type, pay in yearly and hourly units, coordinates, and full employer context. Paste a filtered search URL, run, and export to JSON, CSV or Excel.

Pricing

from $1.10 / 1,000 job results

Rating

0.0

(0)

Developer

SolidCode

SolidCode

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Share

Pull job listings from Hiring.cafe at scale — 60 flat, named columns per posting covering the role, the pay, the location and the employer behind it, starting from a search URL you paste straight out of your address bar. Built for talent-intelligence teams, recruiters and labour-market analysts who need a job dataset they can filter and join on day one, instead of reshaping a raw job-feed export before the first question gets answered.

Why This Scraper?

  • 60 fields on every job — role, seniority, workplace type, pay, requirements, coordinates and the hiring company all arrive as flat, named columns on a single row. Nothing to unpack.
  • Titles that join across languages and job boardsnormalizedTitle is the aggregator's canonical rewrite, and it differs from the posted title on 274 of 492 sampled postings, so a Berlin "Examinierte Pflegefachkraft (m/w/d)" groups with a New York "Registered Nurse".
  • Closed enums you can safely build a filter onworkplaceType is exactly Onsite, Hybrid, Remote or Field, and seniorityLevel exactly Entry Level, Mid Level, Senior Level or No Prior Experience Required, on all 492 postings in the measured sample.
  • Pay in two units, plus the employer's own wording — the annual and hourly columns carry the same figure expressed both ways, salaryPeriodListed records the period the employer actually quoted, and salaryIsTransparent marks every row where pay was published at all.
  • Two company URLs, because they are two different things — the employer's own website and the page that hosts the application resolved to different hosts on 119 of the 247 sampled postings carrying both, so a job board never gets filed as a company site.
  • Employer context on the job row itself — sector, industry list, headcount, year founded, HQ country, organisation type, stock symbol and latest funding round, so you can segment by company size or maturity without joining a second dataset.
  • Mapped, multi-site-aware locationslatitude and longitude ship with the posting, and locationCount flagged 81 of 492 sampled postings as covering more than one site; one chain-retail requisition spanned 80.
  • Global from the first page — the 492-posting measurement sample spanned 77 countries and USD, GBP and EUR pay, drawn from New York, Dallas, London and Berlin across software, nursing and warehouse roles.
  • Dates you can sort and diffpostedAt is UTC ISO-8601 and agreed with the aggregator's own second timestamp on all 492 sampled postings, so daily snapshots line up without timezone repair.

Use Cases

Talent Market Intelligence

  • Track hiring volume by jobCategory, seniorityLevel and country, week over week, from repeat runs.
  • Measure the remote / hybrid / onsite mix in a market from the four-value workplaceType column.
  • Spot expanding employers by joining posting counts to companySizeEmployees and companyLatestFundingYear.
  • Compare demand for the same role across New York, London and Berlin using normalizedTitle as the join key.

Compensation Benchmarking

  • Build salary bands per role and city from the annual columns, restricted to rows where salaryIsTransparent is true.
  • Compare hourly pay across warehouse and clinical roles without converting units by hand.
  • Track pay-transparency rates by jurisdiction — salaryPeriodListed and salaryIsTransparent are there even when amounts are not.
  • Keep salaryCurrency in the group-by so USD, GBP and EUR rows are never averaged together.

Recruiting & Sourcing

  • Build target lists of employers hiring for a role in a specific metro, with companyWebsite and companyJobBoardUrl on every row.
  • Narrow to roles offering visaSponsorship or relocationAssistance for candidates who need them.
  • Route postings by minYearsExperience, bachelorsDegreeRequirement and licensesOrCertifications.
  • Surface fairChance employers for programmes placing candidates with a record.

Product & Data Enrichment

  • Seed or refresh a job board with normalized, deduplicated rows instead of raw feed text.
  • Enrich an employer database with sector, headcount, founding year and latest funding round.
  • Map postings without a geocoding step — latitude and longitude are already on the row.
  • Load straight into a warehouse through the Apify API, webhooks or Google Sheets.

Skills & Curriculum Research

  • Rank tools and technologies by how often they appear beside a given role and seniority.
  • Track which licences and certifications gate entry into clinical and logistics work.
  • Measure degree expectations by market with bachelorsDegreeRequirement and degreeFieldsOfStudy.
  • Correlate minYearsExperience against pay to see what experience is actually worth.

Getting Started

Simplest run

{
"maxItems": 100
}

Paste a filtered search URL from the site

Set your filters on the site, then copy the address bar URL — every filter in it is carried through.

{
"searchUrls": [
"https://hiring.cafe/?searchState=%7B%22searchQuery%22%3A%22software+engineer%22%2C%22workplaceTypes%22%3A%5B%22Remote%22%5D%7D"
],
"maxItems": 1000
}

Several searches in one run

Jobs that match more than one of your searches are collapsed to a single row.

{
"searchUrls": [
"https://hiring.cafe/?searchState=%7B%22searchQuery%22%3A%22registered+nurse%22%7D",
"https://hiring.cafe/?searchState=%7B%22searchQuery%22%3A%22warehouse+associate%22%7D"
],
"maxItems": 4620,
"concurrency": 8
}

Input Reference

What to Scrape

ParameterTypeDefaultDescription
searchUrlsarrayHiring.cafe search result URLs. Set your filters on Hiring.cafe, then paste the address bar URL here. Overrides the individual filters below when provided.
maxItemsinteger100Maximum jobs per search URL (0 = collect everything each search returns). Hiring.cafe pages through at most 4,620 jobs per search, so use several narrower searches to collect more.

Options

ParameterTypeDefaultDescription
concurrencyinteger8How many requests to run in parallel. Lower this if you see failures.
proxyConfigurationobjectApify ProxyProxy settings for the run.

Output

Every job is one dataset row.

A real row, exactly as the actor writes it:

{
"id": "lever___intenseye___c20f0c7b-ba58-4c65-8826-3959874d315e",
"url": "https://jobs.lever.co/intenseye/c20f0c7b-ba58-4c65-8826-3959874d315e/apply",
"title": "Software Engineer",
"normalizedTitle": "Software Engineer",
"jobCategory": "Software Development",
"seniorityLevel": "Senior Level",
"roleType": "Individual Contributor",
"employmentTypes": ["Full Time"],
"requirementsSummary": "5+ years professional software engineering with full-stack ownership; strong in C++, Python, React/TypeScript; experience building low-latency data pipelines, REST APIs, and GCP deployments; product-minded and strong communicator.",
"postedAt": "2026-06-15T13:27:58.789+00:00",
"source": "lever",
"isExpired": false,
"workplaceType": "Hybrid",
"location": "New York City, New York, United States",
"cities": ["New York City, New York, US"],
"states": ["New York, US"],
"countries": ["US"],
"latitude": 40.7128,
"longitude": -74.006,
"locationCount": 1,
"isWorldwideOk": false,
"salaryMinYearly": 160000,
"salaryMaxYearly": 200000,
"salaryMinHourly": 76.92,
"salaryMaxHourly": 96.15,
"salaryCurrency": "USD",
"salaryPeriodListed": "Yearly",
"salaryIsTransparent": true,
"retirementPlan": false,
"tuitionReimbursement": false,
"generousParentalLeave": false,
"relocationAssistance": false,
"companyName": "Intenseye",
"companyBrandName": "Intenseye",
"companyWebsite": "https://intenseye.com",
"companyJobBoardUrl": "https://intenseye.com",
"companyTagline": "Builds AI-powered safety platforms that deliver real-time operational and risk insights for industrial worksites.",
"companySector": "Information Technology",
"companyIndustries": ["Software", "Industrial Safety"],
"companySizeEmployees": 110,
"companyYearFounded": 2018,
"companyType": "Private",
"companyHqCountry": "US",
"companyStockSymbol": null,
"companyLatestFundingAmount": 64000000,
"companyLatestFundingYear": 2024,
"companyLatestFundingType": "Series B",
"minYearsExperience": 5,
"bachelorsDegreeRequirement": "Preferred",
"degreeFieldsOfStudy": ["computer science", "computer engineering"],
"technicalTools": ["C++", "Python", "React", "TypeScript", "GCP", "REST"],
"licensesOrCertifications": null,
"languageRequirements": ["English"],
"securityClearance": "None",
"isDriverLicenseRequired": false,
"visaSponsorship": false,
"fairChance": false,
"physicalLaborIntensity": "Low",
"workplacePhysicalEnvironment": "Office",
"onCallRequirement": "None"
}

Core Fields

FieldTypeDescription
idstringJob ID
urlstringApply URL
titlestringJob title
normalizedTitlestringNormalized job title
jobCategorystringJob category
seniorityLevelstringSeniority
roleTypestringIC or manager
employmentTypesarrayEmployment type
requirementsSummarystringRequirements summary
postedAtstringPosted date
sourcestringPosting source
isExpiredbooleanExpired

Price & Value

FieldTypeDescription
salaryMinYearlynumberSalary min (per year)
salaryMaxYearlynumberSalary max (per year)
salaryMinHourlynumberPay min (per hour)
salaryMaxHourlynumberPay max (per hour)
salaryCurrencystringCurrency
salaryPeriodListedstringPeriod the employer quoted
salaryIsTransparentbooleanSalary disclosed
retirementPlanbooleanRetirement plan
tuitionReimbursementbooleanTuition reimbursement
generousParentalLeavebooleanGenerous parental leave
relocationAssistancebooleanRelocation assistance

Location

FieldTypeDescription
workplaceTypestringWorkplace type
locationstringLocation
citiesarrayCities
statesarrayStates / regions
countriesarrayCountries
latitudenumberLatitude
longitudenumberLongitude
locationCountnumberNumber of locations
isWorldwideOkbooleanHire from anywhere

Contacts

FieldTypeDescription
companyNamestringCompany (as posted)
companyBrandNamestringCompany (canonical)
companyWebsitestringCompany website
companyJobBoardUrlstringCompany job-board page
companyTaglinestringCompany tagline
companySectorstringSector
companyIndustriesarrayIndustries
companySizeEmployeesnumberEmployees
companyYearFoundednumberYear founded
companyTypestringOrganization type
companyHqCountrystringHQ country
companyStockSymbolstringStock symbol
companyLatestFundingAmountnumberLatest funding (USD)
companyLatestFundingYearnumberLatest funding year
companyLatestFundingTypestringLatest funding round

Details & Timestamps

FieldTypeDescription
minYearsExperiencenumberMinimum years of experience
bachelorsDegreeRequirementstringBachelor's degree
degreeFieldsOfStudyarrayDegree fields
technicalToolsarrayTools & technologies
licensesOrCertificationsarrayLicenses & certifications
languageRequirementsarrayLanguages
securityClearancestringSecurity clearance
isDriverLicenseRequiredbooleanDriver's licence required
visaSponsorshipbooleanVisa sponsorship
fairChancebooleanFair-chance employer
physicalLaborIntensitystringPhysical labour intensity
workplacePhysicalEnvironmentstringWork environment
onCallRequirementstringOn-call requirement

Tips for Best Results

  • The salary columns are annualised; salaryPeriodListed is what the employer wrote, not the unit of those numbers. A real row reads salaryMinYearly: 91436.8 beside salaryMinHourly: 43.96 and salaryPeriodListed: "Hourly" — the employer quoted $43.96 an hour and the annual column is that same rate converted, not a second figure. Read the unit off the column name (...Yearly / ...Hourly) and treat salaryPeriodListed purely as "how this employer chose to advertise it".
  • Filter on salaryIsTransparent, not on a non-empty salary. Whether pay is published at all depends on jurisdiction and role, so the flag is what tells you a blank amount is a genuine non-disclosure rather than a gap.
  • requirementsSummary is a short precis, not the advert. It runs 71 to 326 characters and summarises what the role asks for. When you need the full posting text, follow url to the employer's own application page.
  • One search URL reaches at most 4,620 jobs. To go past that, run several narrower searches — split by city, seniority, employment type or recency — and put them all in searchUrls; a job matching more than one is written once and billed once.
  • Expect tools or licences, rarely both. technicalTools fills up on software roles while licensesOrCertifications fills up on clinical and warehouse ones. Treat each as present-when-relevant rather than as a coverage gap, and do not build a required-field check on either.
  • locationCount above 1 means latitude/longitude describes the primary site only. Multi-site requisitions are routine in retail and logistics — one sampled posting covered 80 locations. Use cities, states and countries for the full footprint.
  • Set the recency filter on the site before you copy the URL. Running the same filtered search on a schedule and keying on id gives you a clean new-postings feed, and because postedAt is UTC ISO-8601 it sorts lexically with no date parsing at all.

Pricing

From $1.10 per 1,000 results.

ResultsPrice
100$0.11
1,000$1.10
10,000$11.00
100,000$110.00

Those are the rates on Gold and above. Higher-volume plans pay less per result:

Your Apify planPrice
No discount$1.30
Bronze$1.25
Silver$1.15
Gold and above$1.10

Per 1,000 results.

A "result" is any job row in the output dataset. When you run several searches at once, a job matching more than one of them is de-duplicated before it reaches the dataset, so you are never charged twice for the same job. Platform fees (compute, storage) are additional and depend on your Apify plan.

Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

  • Zapier / Make / n8n — Workflow automation
  • Google Sheets — Direct spreadsheet export
  • Slack / Email — Notifications on new results
  • Webhooks — Trigger custom APIs on run completion
  • Apify API — Full programmatic access

This is an unofficial scraper. It is not affiliated with, endorsed by, or connected to Hiring.cafe or its operators in any way. All trademarks belong to their respective owners.

This actor is intended for legitimate market research and analytics. You are responsible for complying with applicable laws and with Hiring.cafe's Terms of Service.

Results may include personal data such as contact details. Treat them accordingly: do not use them for spam, harassment, or any unlawful purpose, and follow applicable privacy rules when storing or processing them.