Files
Jobber/docs-site/docs/extractors/hiring-cafe.md
T
ilia 84e6835b11
CI / skip-ci-check (push) Successful in 10s
CI / secret-scan (push) Successful in 14s
CI / docker-ci (push) Successful in 17s
feat: keyword sets, sponsorship signals, and extractor/profile fixes
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.
2026-06-11 10:23:39 -04:00

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:

  1. extractors/hiringcafe/src/main.ts builds search state, reads the page buildId, calls /_next/data/{buildId}/index.json?searchState=...&page=..., and writes dataset JSON.
  2. orchestrator/src/server/services/hiring-cafe.ts runs 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

  1. Open Run jobs and choose Automatic.
  2. Hiring Cafe is enabled by default in Sources (toggle it off if you do not want it for this run).
  3. Set your existing automatic run knobs:
    • searchTerms drive per-term Hiring Cafe searchQuery.
    • 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.
  4. Start the run and watch progress in the pipeline progress card.

Defaults and constraints:

  • No new Hiring Cafe settings fields were added.
  • worldwide and usa/ca run in broad mode without a strict country location filter.
  • Hiring Cafe is enabled by default in source selection.
  • HIRING_CAFE_DATE_FETCHED_PAST_N_DAYS controls recency window when running extractor directly (default 7).
  • When a city is provided via searchCities, Hiring Cafe uses city radius search (default 1 mile) 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-jobs and /api/search-jobs/get-total-count endpoints.
  • 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 / 404 on 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.