Track every job application, interview, and offer in one place. Beautiful, fast, and built for solo job seekers.
- Dashboard — Stats, charts, pipeline velocity, and activity feed
- Application List — Search, filter, sort, bulk actions, and saved filters
- Kanban Board — Drag & drop applications across status columns
- Detail View — Full application details, interview rounds, and status timeline
- Offer Comparison — Weighted scoring to compare offers side by side
- Google Sign-In — Quick and secure authentication
- Dark Mode — System-aware with manual toggle
- Export/Import — CSV for spreadsheets, JSON for full backup
- PWA — Install on desktop or mobile
- Keyboard Shortcuts —
Nnew,/search,?help
| Layer | Technology |
|---|---|
| Frontend | React 19 + Vite |
| Database | Firebase Firestore |
| Auth | Firebase Authentication (Google) |
| Styling | Tailwind CSS |
| PWA | Vite PWA plugin |
| Deployment | Firebase Hosting (via GH Actions) |
- Go to console.firebase.google.com → Create project
- Authentication → Sign-in providers → Enable Google
- Firestore Database → Create database → Choose a region → Start in test mode
- Project Settings (⚙️) → General → Your apps → Web (</>) → Register app → Copy config
# Clone
git clone https://github.com/justaman045/JobTracker.git
cd JobTracker
# Install
npm install
# Set up environment
cp .env.example .env
# Paste your Firebase config
# Run dev server
npm run devDeploy the rules from firestore.rules:
firebase deploy --only firestore:rulesnpm run build
firebase deployOr push to main — the GitHub Actions workflow at .github/workflows/deploy.yml handles deployment automatically.
src/
├── App.jsx # Root component
├── components/
│ ├── applications/ # Application list, table, filters
│ ├── dashboard/ # Stats, charts
│ ├── kanban/ # Drag & drop board
│ └── ui/ # Shared UI components
├── context/ # Auth context
├── hooks/ # Custom hooks
└── lib/ # Firebase, utilities
For contribution guidelines, see CONTRIBUTING.md.