job-scraper/CLAUDE.md

66 lines
1.4 KiB
Markdown
Raw Permalink Normal View History

2026-01-20 18:27:17 +00:00
# Job Scraper
Job board monitoring for privacy-focused and open-source companies.
## Quick Reference
| Item | Value |
|------|-------|
| URL | https://jobs.novanexus.ca |
| Port | 8085 |
| Containers | job-scraper-scheduled, job-dashboard |
| Data | ./data/jobs.db, ./data/dashboard.html |
## Development Workflow
After making code changes, rebuild and deploy:
```bash
cd ~/job-scraper && sudo docker compose build && sudo docker compose up -d
```
## Common Commands
```bash
# View status
sudo docker compose ps
# View logs
sudo docker compose logs -f scraper-scheduled
# Run scraper manually (one-time)
sudo docker compose run --rm scraper
# Restart services
sudo docker compose restart
# Rebuild without cache (if having issues)
sudo docker compose build --no-cache && sudo docker compose up -d
```
## Configuration
- `config.yaml` - Companies to monitor, filters, notifications
- After config changes: `sudo docker compose restart scraper-scheduled`
## Email Notifications
Uses msmtp with system config (`~/.msmtprc`). The container mounts this file.
To test email manually:
```bash
sudo docker compose run --rm scraper
```
## Files
- `main.py` - CLI entry point, scheduling
- `db.py` - SQLite database operations
- `notify.py` - Console, msmtp, email, Slack notifications
- `dashboard.py` - HTML dashboard generator
- `scrapers/` - Platform-specific scrapers (greenhouse, lever, ashby)
## Documentation
Full docs: ~/maple-docs/docs/04-services/job-scraper.md