- Add search profiles (DB, API, settings UI) and wire into scorer/pipeline search terms. - Add cover letter generation (service, job action, JobDetail UI). - Align JobSpy Indeed country with country-level search geography when settings conflict; warn in logs. - Infer country from search cities via inferCountryKeyFromSearchGeography (shared). - Ignore extractor venv/storage and local data in Biome; ignore orchestrator/storage and JobSpy .venv in git. - Vite: do not watch orchestrator/storage (prevents reloads during startup.jobs pipeline). - JobSpy: document Python 3.10+ and venv setup in README/requirements. - Onboarding and settings: local resume path handling, orchestrator .env.example for Vite. Made-with: Cursor
35 lines
981 B
Markdown
35 lines
981 B
Markdown
# JobSpy extractor (Indeed / LinkedIn / Glassdoor)
|
|
|
|
## Requirements
|
|
|
|
- **Python 3.10 or newer** (`python-jobspy` has no compatible wheels on older versions).
|
|
- A virtualenv in this directory (`.venv`) is recommended.
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
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`).
|