Shaheer Sarfaraz 19266fe5eb
City search (#217)
* wave 1, jobspy only

* combine usa/ca to united states

* strict city location filter

* hide and show based on focus

* UI changes

* allow clicking cross!

* pill animate in

* animate out, uggo fix

* animate out

* framer motion

* animate component height

* adzuna

* hiring cafe implementation

* refactor: centralize shared search-city parsing and matching

* feat: migrate city setting to searchCities with legacy fallback

* docs: update pipeline and extractor city-search wording

* fix(orchestrator): normalize tokenized paste behavior

* fix(shared): tighten city matching semantics

* docs(extractors): document city-location knobs and geocoding note
2026-02-21 00:42:09 +00:00
..
2026-02-21 00:42:09 +00:00
2026-02-19 12:51:55 +00:00
2026-02-21 00:42:09 +00:00
2026-02-19 12:51:55 +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).