Add per-profile keyword sets, job source settings, sponsorship signal pills, and several ATS extractors. Fix Hiring Cafe discovery via Next.js SSR search, profile activate for comma-separated basicAuthUser aliases, and resume path backfill migrations. Update settings and hiring-cafe docs; localhost compose overlay for loopback-only deploys.
4.1 KiB
4.1 KiB
id, title, description, sidebar_position
| id | title | description | sidebar_position |
|---|---|---|---|
| hiring-cafe | Hiring Cafe Extractor | Browser-backed Hiring Cafe extraction integrated into the pipeline source selector. | 7 |
What it is
Original website: hiring.cafe
Special thanks: Initial implementation inspiration came from umur957/hiring-cafe-job-scraper.
Hiring Cafe is a browser-backed extractor that loads the site in Firefox (Camoufox when available), then fetches paginated search results through Hiring Cafe's Next.js SSR data endpoint and maps rows into the orchestrator CreateJobInput shape.
Implementation split:
extractors/hiringcafe/src/main.tsbuilds search state, reads the pagebuildId, calls/_next/data/{buildId}/index.json?searchState=...&page=..., and writes dataset JSON.orchestrator/src/server/services/hiring-cafe.tsruns the extractor, streams progress events, and maps rows for pipeline import.
Why it exists
Hiring Cafe adds another non-credentialed source that can be enabled from the existing source picker, without adding new settings UI.
It also supports term-by-term search and country-aware search state using the same pipeline knobs you already set for automatic runs.
How to use it
- Open Run jobs and choose Automatic.
- Hiring Cafe is enabled by default in Sources (toggle it off if you do not want it for this run).
- Set your existing automatic run knobs:
searchTermsdrive per-term Hiring CafesearchQuery.- selected country maps into Hiring Cafe location search state.
- run budget path (
jobspyResultsWanted) is reused as the max jobs-per-term cap. - optional Search cities narrow results by city.
- workplace type is forwarded from the automatic run modal as a global run filter.
- Start the run and watch progress in the pipeline progress card.
Defaults and constraints:
- No new Hiring Cafe settings fields were added.
worldwideandusa/carun in broad mode without a strict country location filter.- Hiring Cafe is enabled by default in source selection.
HIRING_CAFE_DATE_FETCHED_PAST_N_DAYScontrols recency window when running extractor directly (default7).- When a city is provided via
searchCities, Hiring Cafe uses city radius search (default1mile) and strict city post-filtering. - Workplace type is global to the run and is not configured separately per city in this integration.
- City geocoding is resolved through Nominatim (OpenStreetMap data); if you scale extractor traffic, add attribution and cache repeated city lookups.
Local run example:
HIRING_CAFE_SEARCH_TERMS='["backend engineer"]' \
HIRING_CAFE_COUNTRY='united kingdom' \
HIRING_CAFE_MAX_JOBS_PER_TERM='50' \
npm --workspace hiringcafe-extractor run start
Common problems
Hiring Cafe returns 401 Unauthorized or 404 on /api/search-jobs
- Hiring Cafe removed or locked down the legacy GET
/api/search-jobsand/api/search-jobs/get-total-countendpoints. - Current JobOps builds use the Next.js SSR transport (
ssrHits,ssrTotalCount,ssrIsLastPage) instead. - Upgrade to a build that includes this change if logs still show
401/404on the old API paths.
Hiring Cafe returns 429 / Vercel security checkpoint
- The extractor first attempts Camoufox-backed Firefox and falls back to vanilla Firefox startup if Camoufox is unstable locally.
- If upstream blocks continue, retry later or reduce run concurrency at the pipeline level by selecting fewer sources.
Hiring Cafe does not appear in sources
- Check that client is running on latest build containing the new source list.
- Hiring Cafe is source-only and does not require credentials, so it should appear once the new build is loaded.
Results are lower than expected
- Cap is tied to automatic run budget path (
jobspyResultsWanted) and search term count. - Country mapping can narrow results when a strict country location is applied.