Skip to content

AI-powered, open-source platform that tracks job applications automatically by parsing job emails. Built with Spring Boot & Angular.

License

Notifications You must be signed in to change notification settings

thughari/JobTrackerPro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

75 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

JobTrackerPro πŸš€

Java Spring Boot Angular Tailwind PostgreSQL Docker License

"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.


Who Is This For?

  • 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

πŸ“Œ Project Status

  • JobTrackerPro is actively developed and open for contributions.
  • The dev branch is the primary development branch.
  • The main branch is reserved for stable, production-ready releases.

πŸ”— Quick Links


🧠 System Architecture

This application is built as a distributed system focusing on separation of concerns, data integrity, and automation.

1. πŸ€– AI-Powered Email Ingestion Pipeline

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.

2. πŸ” Hybrid Security Architecture

  • Implementation: Custom OAuth2SuccessHandler that 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.

3. ☁️ Atomic Cloud Storage

  • 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.

4. ⚑ High-Performance Analytics

  • 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.

πŸ› οΈ The Tech Stack

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

πŸ“‚ Project Structure

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

πŸš€ One-Command Onboarding

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.

1. Spin up Infrastructure

Requires Docker Desktop. This starts PostgreSQL and MailHog (Email Trap).

docker-compose up -d

2. Start the Backend

cd backend
./mvnw spring-boot:run

3. Start the Frontend

cd frontend
npm install
npm start

4. Test the Features

  • Dashboard: Access at http://localhost:4200.
  • Emails: View outgoing emails at http://localhost:8025 (MailHog).
  • AI Ingestion: Use the scripts/simulate-email.sh to see the Mock AI create jobs automatically.

πŸ“Έ Screenshots

Interactive Dashboard Profile & Automation
Dashboard Profile
Real-time D3.js analytics and charts Email forwarding setup and secure settings

🀝 Contributing

Contributions are welcome!

  1. Fork the repository.
  2. Create a Feature Branch (git checkout -b feature/AmazingFeature).
  3. Commit your changes.
  4. Push to the branch.
  5. Open a Pull Request to branch dev.

πŸ“„ License

This project is licensed under the MIT License.


Designed & Engineered by Hari Thatikonda

Building scalable systems with Java & Angular.

LinkedIn GitHub