Reject hybrid or partial-office postings at ingest so the Remote badge and filters match fully remote roles. Cron can PATCH search geography, remote-only workplace types, and QA search terms before each scheduled pipeline run. Co-authored-by: Cursor <cursoragent@cursor.com>
JobSpy extractor (Indeed / LinkedIn / Glassdoor)
Requirements
- Python 3.10 or newer (
python-jobspyhas no compatible wheels on older versions). - A virtualenv in this directory (
.venv) is recommended.
# Example: Homebrew (Apple Silicon paths may use /opt/homebrew)
python3.12 --version # or python3.11 / python3.10 — must be ≥ 3.10
rm -rf .venv
python3.12 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
pip install -r requirements.txt
The orchestrator uses .venv/bin/python3 when present, otherwise system python3.
Manual test
source .venv/bin/activate
export JOBSPY_SITES=indeed
export JOBSPY_SEARCH_TERM="software engineer"
export JOBSPY_LOCATION="Toronto"
export JOBSPY_COUNTRY_INDEED=canada
export JOBSPY_OUTPUT_JSON=/tmp/jobspy-out.json
export JOBSPY_OUTPUT_CSV=/tmp/jobspy-out.csv
python3 scrape_jobs.py
Adjust env vars to match what the app passes (see extractors/jobspy/src/run.ts).