"I stopped using Excel to track my job applications. I architected an Enterprise-Grade platform instead."
JobTrackerPro is a robust, full-stack solution designed to visualize, automate, and manage the interview pipeline. Unlike simple CRUD tutorials, this project demonstrates Advanced System Design, Cloud-Native Architecture, and Production-Grade Security.
- Job seekers who want zero-effort tracking via email automation
- Engineers interested in real-world AI ingestion pipelines
- Developers learning enterprise Spring Boot + Angular architecture
- Open-source contributors looking for a non-trivial system to extend
- JobTrackerPro is actively developed and open for contributions.
- The
devbranch is the primary development branch. - The
mainbranch is reserved for stable, production-ready releases.
- π Live Demo: https://thughari.github.io/JobTrackerPro
- π Source Code: https://github.com/thughari/JobTrackerPro
This application is built as a distributed system focusing on separation of concerns, data integrity, and automation.
I engineered an event-driven pipeline to eliminate manual data entry using Google Gemini 2.0 Flash.
- Smart Upsert: Uses fuzzy matching and Jaccard Similarity to detect if an incoming email is a new application or an interview update for an existing job.
- Resilience: Gracefully handles unstructured data, HTML-only emails, and missing headers using regex fallback strategies.
- Implementation: Custom
OAuth2SuccessHandlerthat merges identities based on trusted email verification. - Flow: Users can log in via Google/GitHub OR Email/Password interchangeably without creating duplicate accounts or data silos.
- Stateless: Fully secured via JWT (RS256) with a custom Security Filter Chain.
- Provider: Cloudflare R2 (AWS S3 Compatible).
- Transactional Integrity: Profile updates are atomic. If a user uploads a new image but the database transaction fails, the image upload is rolled back.
- Garbage Collection: The system automatically issues delete commands for old/orphaned images in the R2 bucket when a user updates their photo, preventing storage leaks and reducing costs.
- Backend: Leverages Java Stream API for efficient in-memory aggregation of job statistics, reducing database hits to a single optimized read operation per dashboard load.
- Frontend: Uses Angular Signals for reactive state management and Optimistic UI updates, ensuring zero-latency feedback for the user even on slow networks.
| Domain | Technology | Key Usage |
|---|---|---|
| Backend | Java 21 | Modern JVM features (Records, Pattern Matching) |
| Framework | Spring Boot 3.4 | REST API, Security, Data JPA |
| Database | PostgreSQL | Supabase managed instance (Transaction Mode) |
| AI Model | Gemini 2.0 Flash | Intelligent email parsing |
| Storage | Cloudflare R2 | S3-compatible object storage |
| Frontend | Angular 17 | Signals, Standalone Components, Optimistic UI |
| Styling | TailwindCSS | Utility-first styling, Dark Mode |
| DevOps | Docker & Cloud Run | Containerized serverless deployment |
The repository is structured as a Monorepo:
JobTrackerPro/
βββ backend/ # Spring Boot API
β βββ src/main/java/ # Controllers, Services, DTOs
β βββ src/main/resources/ # Configurations for local, dev, prod # use local for dev
β βββ Dockerfile # Backend Container Config
β βββ scripts # Utility Scripts (e.g., simulate-email.sh)
β βββ service.yaml # Google Cloud Run Config
βββ frontend/ # Angular UI
β βββ src/app/ # Components, Services, Guards
β βββ tailwind.config # CSS Configuration
βββ .github/workflows/ # CI/CD (GCP Cloud Run & GitHub Pages)
βββ docker-compose.yml # Local Dev Infrastructure
βββ README.md # Documentation
You can run the entire ecosystem locally with zero configuration. The app automatically uses Mock AI and Local File Storage so you don't need any paid API keys to start contributing.
Requires Docker Desktop. This starts PostgreSQL and MailHog (Email Trap).
docker-compose up -dcd backend
./mvnw spring-boot:runcd frontend
npm install
npm start- Dashboard: Access at
http://localhost:4200. - Emails: View outgoing emails at
http://localhost:8025(MailHog). - AI Ingestion: Use the
scripts/simulate-email.shto see the Mock AI create jobs automatically.
| Interactive Dashboard | Profile & Automation |
|---|---|
![]() |
![]() |
| Real-time D3.js analytics and charts | Email forwarding setup and secure settings |
Contributions are welcome!
- Fork the repository.
- Create a Feature Branch (
git checkout -b feature/AmazingFeature). - Commit your changes.
- Push to the branch.
- Open a Pull Request to branch
dev.
This project is licensed under the MIT License.

