How sai121663/job-tracker works
Job Application Tracker reads a user’s Gmail, finds likely job-related messages, classifies and stores them, then presents them in an editable kanban-style board. The sync API orchestrates fetching, filtering, optional AI-assisted classification, and persistence; users can correct fields, star cards, and dismiss unstarred items. Gmail authorization is a distinct setup path. The README also documents scheduled sync and deployment, but those are external operating arrangements rather than core runtime components. Source excerpts support the principal calls; unsampled frontend details are represented only where documented.
Main entry points: app.py Sync and REST API · llm.py AI summary option · authorize.py Gmail authorization · gmail_client.py Message fetching
Components 14
Gmail intake
- Gmail authorization
backend/authorize.py - Message fetching
backend/gmail_client.py
Classification
- Job relevance filter
backend/classifier.py - Status classification
backend/classifier.py - AI summary option
backend/llm.py
API and storage
- Sync and REST API
backend/app.py - Application database
backend/db.py
Board interface
- Board UI
frontend/src/App.jsx
Other components
- Inbox owner
- Gmail API
- Postgres
- Browser user
- Groq API
- Scheduled sync trigger
Connections 14
- Inbox owner → Gmail authorization: authorizes Gmail
README.md - Gmail authorization → Gmail API: obtains access
backend/authorize.py - Sync and REST API → Message fetching: fetches messages
backend/app.py - Message fetching → Gmail API: searches and reads
backend/gmail_client.py - Sync and REST API → Job relevance filter: filters candidates
backend/app.py - Sync and REST API → Status classification: classifies messages
backend/app.py - Sync and REST API → AI summary option: requests classification
backend/app.py - AI summary option → Status classification: falls back to
backend/llm.py - AI summary option → Groq API: requests summary
backend/llm.py - Sync and REST API → Application database: reads and writes
backend/app.py - Application database → Postgres: persists records
backend/db.py - Browser user → Board UI: views and edits
README.md - Board UI → Sync and REST API: calls REST endpoints
frontend/src/App.jsx - Scheduled sync trigger → Sync and REST API: triggers sync
README.md