Shaheer Sarfaraz 3da5ea35b4
Deduplicate shared helpers and enforce aliased imports (#228)
* Deduplicate string cleanup helpers and not-found responses

* Enforce aliased imports for infra and shared modules

* Enforce @client/@server aliases for deep relative imports

* Deduplicate visa sponsor and location filter definitions

* Use shared city filter export in extractor location checks
2026-02-22 16:13:52 +00:00
..
2026-02-19 12:51:55 +00:00
2026-02-21 00:42:09 +00:00

Hiring Cafe Extractor

Browser-backed extractor for Hiring Cafe search APIs.

Special thanks: initial implementation inspiration came from umur957/hiring-cafe-job-scraper.

Environment

  • HIRING_CAFE_SEARCH_TERMS (JSON array or | / comma / newline-delimited)
  • HIRING_CAFE_COUNTRY (default: united kingdom)
  • HIRING_CAFE_MAX_JOBS_PER_TERM (default: 200)
  • HIRING_CAFE_DATE_FETCHED_PAST_N_DAYS (default: 7)
  • HIRING_CAFE_LOCATION_QUERY (optional city, e.g. Leeds)
  • HIRING_CAFE_LOCATION_RADIUS_MILES (default: 1 when city is set)
  • HIRING_CAFE_OUTPUT_JSON (default: storage/datasets/default/jobs.json)
  • JOBOPS_EMIT_PROGRESS=1 to emit JOBOPS_PROGRESS events
  • HIRING_CAFE_HEADLESS=false to run headed

Notes

  • The extractor uses s = base64(url-encoded JSON search state).
  • worldwide and usa/ca are treated as broad search modes without hard country location filters.
  • City geocoding uses Nominatim (OpenStreetMap data).