A personal job-board scraper that searches Seek, Indeed, Jora, CareerOne, and LinkedIn for roles you specify, deduplicates results, and lets you export a CSV at any time.
- Python 3.10 or later
- Internet connection
If you're on Linux / WSL:
cd /path/to/job-scraperIf you're on Windows (Command Prompt or PowerShell):
cd C:\path\to\job-scraper
python3 -m venv venvActivate it:
- Linux / WSL / Mac:
source venv/bin/activate - Windows CMD:
venv\Scripts\activate.bat - Windows PowerShell:
venv\Scripts\Activate.ps1
You should see (venv) at the start of your prompt.
pip install -r requirements.txtThis takes 1–2 minutes the first time.
streamlit run app.pyYour browser will open automatically at http://localhost:8501.
- Add roles in the sidebar — one per line (e.g.
Project Manager) - Choose match type
- Exact — title must contain your role name
- Similar — also matches related titles (e.g. Delivery Manager, Program Manager)
- Select sources — tick the job boards you want to search
- Click Run Now — searches all selected boards and saves results
- Export CSV — downloads all saved jobs as a spreadsheet
job-scraper/
├── app.py ← Streamlit UI (start here)
├── requirements.txt
├── scrapers/
│ ├── base.py ← Job dataclass + base scraper
│ ├── seek.py
│ ├── indeed.py
│ ├── jora.py
│ ├── careerone.py
│ └── linkedin.py
├── utils/
│ ├── database.py ← SQLite storage
│ ├── matcher.py ← Role matching logic
│ └── exporter.py ← CSV export
└── data/ ← Created automatically
├── jobs.db ← Local database
├── config.json ← Your saved settings
└── exports/ ← CSV exports saved here
| Symptom | Fix |
|---|---|
ModuleNotFoundError |
Make sure the virtual environment is activated |
| A scraper returns 0 jobs | The site may have changed its HTML structure — open an issue |
| LinkedIn always returns 0 | Expected — LinkedIn blocks unauthenticated scraping heavily |
| CSV opens with garbled characters | Open with Excel → Data → From Text/CSV, choose UTF-8 |
- Email digest with new listings
- Resume and cover letter upload
- AI-powered relevance scoring (using Ollama locally — free)
- Auto-generated custom cover letters per job application
- Cloud deployment (always-on, no need to leave laptop running)