A personal job opening scanner — tracks company career pages and notifies you when new jobs appear.
Flutter App (Android/iOS/Web)
↕ HTTP/REST
Python Backend (FastAPI)
↕ SQLite
Career Pages (Scraped)
CareersTracker/
├── job_scanner_backend/ # Python FastAPI backend
│ ├── app/
│ │ ├── main.py # Entry point
│ │ ├── models.py # SQLAlchemy ORM models
│ │ ├── schemas.py # Pydantic schemas
│ │ ├── routers/ # API endpoints
│ │ ├── services/ # Scraper + Scheduler
│ │ └── utils/ # Notifications
│ └── requirements.txt
└── job_scanner_app/ # Flutter mobile app
└── lib/
├── main.dart
├── config/ # API config
├── models/ # Data models
├── providers/ # State management
├── screens/ # UI screens
├── services/ # API service
└── widgets/ # Reusable widgets
cd job_scanner_backend
python -m venv venv
venv\Scripts\activate # Windows
pip install -r requirements.txt
python -m uvicorn app.main:app --host 0.0.0.0 --port 8000API docs: http://localhost:8000/docs
cd job_scanner_app
flutter pub get
flutter run -d chrome # Web (localhost)
flutter run # Android phone (USB)In Settings tab, set the backend URL:
- Chrome:
http://localhost:8000/api - Android phone (same WiFi):
http://<your-PC-IP>:8000/api
- Add company career page URLs to track
- Automatic daily scans at 09:00 and 18:00
- Detects new job listings (Greenhouse, Lever, Ashby, generic)
- Dashboard with stats, scheduler status, scan logs
- Search and filter jobs by keyword or company
- Mark jobs as read / mark all read
- Configurable backend URL from Settings screen