JobTrack is an intelligent, full-stack browser extension and web dashboard platform engineered to help software developers and job seekers discover, capture, track, and analyze job applications directly from job boards (LinkedIn, Indeed, Glassdoor, company career portals) with minimal manual data entry.
| Service | Status | Link |
|---|---|---|
| Web Dashboard | π’ Live | https://jobtrack.antideploy.com |
| Backend REST API | π’ Live | https://jobtrack-api.antideploy.com |
| Swagger UI Docs | π’ Live | https://jobtrack-api.antideploy.com/swagger-ui/index.html |
| Browser Extension ZIP | π¦ v1.0.0 | Direct Download (.zip) |
| Extension Showcase | π Live | https://jobtrack.antideploy.com/extension |
- Download & Extract: Download
jobtrack-extension.zipand extract it to a permanent folder. - Open Extensions: In your browser (Chrome, Edge, Brave, Opera), navigate to
chrome://extensions(oredge://extensions) and toggle Developer mode ON (top-right). - Load Unpacked: Click Load unpacked (top-left) and select the extracted folder. Pin the JobTrack icon to your toolbar!
flowchart TD
subgraph Clients[" Client Layer "]
Ext["Chrome Extension (Manifest V3)
React + TypeScript + Popup"]
Web["Web Dashboard
React + TypeScript + Vite + Tailwind"]
end
subgraph Server[" Backend REST API (Spring Boot 3.x) "]
Controller["REST Controllers
/api/v1/"]
Sec["Spring Security
JWT Filter & RBAC"]
Val["Validation & Deduplication Layer
Normalized URL Matching"]
Service["Business Services
App, Job, Interview, Analytics"]
Repo["Spring Data JPA Repositories"]
end
subgraph Storage[" Persistence & AI "]
DB[("PostgreSQL 16
Normalized Data Store")]
AI["AI Provider (Optional)
Skill Extraction & Match Score"]
end
Ext -->|HTTPS / REST API| Controller
Web -->|HTTPS / REST API| Controller
Controller --> Sec --> Val --> Service --> Repo
Repo --> DB
Service -.-> AI
JOBTRACK SYSTEM
β
ββββββββββββββββββββ΄βββββββββββββββββββ
βΌ βΌ
CHROME EXTENSION WEB DASHBOARD
(React + TS + Vite) (React + TS + Vite)
(Manifest V3 Popup & (Kanban, Analytics,
Content Scripts) Application List)
β β
ββββββββββββββββββββ¬βββββββββββββββββββ
β HTTPS (REST API)
βΌ
SPRING BOOT BACKEND
(Java 21/22 + Spring Boot 3)
(Auth, Security, Validation,
Deduplication, Analytics)
β
ββββββββββββββ΄βββββββββββββ
βΌ βΌ
POSTGRESQL AI SERVICES
(Docker / Cloud) (Resume matching &
skill analysis)
jobtrack/
βββ extension/ # Chrome Extension (Manifest V3)
β βββ public/ # Extension icons and build-ready manifest.json
β βββ src/
β β βββ background/ # Background service worker (lifecycle & messaging)
β β βββ content/ # Isolated content scripts
β β β βββ extractors/ # Modular site adapters (LinkedIn, Indeed, Generic)
β β βββ popup/ # Fast capture popup interface (React + Tailwind)
β β βββ types/ # Normalized extraction data contracts
β βββ manifest.json # Manifest V3 configuration
β βββ package.json # Extension dependencies
β βββ vite.config.ts # Multi-entry rollup build for MV3
β
βββ web/ # Web Management Dashboard
β βββ src/
β β βββ components/ # Reusable UI widgets, modals, Kanban columns
β β βββ pages/ # Dashboard, Applications, Interviews, Analytics
β β βββ layouts/ # App shell, sidebar navigation, top header
β β βββ services/ # Axios REST API client & JWT token interceptors
β β βββ types/ # Domain models (Job, Application, User)
β βββ package.json # Frontend dependencies
β βββ tailwind.config.js # Custom theme styling
β βββ vite.config.ts # Dashboard dev server & production bundler
β
βββ backend/ # Spring Boot 3.x REST API
β βββ src/main/java/com/jobtrack/
β β βββ config/ # Security, CORS, OpenAPI Swagger config
β β βββ controller/ # REST Controllers (/api/v1/auth, /api/v1/applications)
β β βββ dto/ # Request & Response Data Transfer Objects
β β βββ entity/ # JPA Entities (User, Job, Application, Interview)
β β βββ enums/ # Controlled domain enums (Status, Type, Source)
β β βββ exception/ # Global Exception Handler & API error envelopes
β β βββ repository/ # Spring Data JPA repositories & custom queries
β β βββ security/ # JWT token provider & UserDetails implementation
β β βββ service/ # Core business logic, deduplication & ownership rules
β βββ src/main/resources/
β β βββ application.yml # Centralized backend & database settings
β βββ mvnw.ps1 / mvnw # Cross-platform Maven wrapper
β βββ pom.xml # Maven dependencies & build plugins
β
βββ database/ # Database Infrastructure
β βββ seed/01-init.sql # PostgreSQL initial schema definition & indexes
β βββ README.md # Database operational guide
β
βββ docs/ # Comprehensive Architecture & API Documentation
β βββ PRD.md # Detailed Product Requirements Document
β βββ ARCHITECTURE.md # System Architecture & Layer Boundaries
β βββ API.md # REST API v1 Contracts & Envelopes
β βββ DATABASE.md # ER Diagram & Table Dictionaries
β βββ SECURITY.md # Security Rules & JWT Lifecycle
β βββ DEPLOYMENT.md # Production Deployment Guide
β
βββ docker-compose.yml # PostgreSQL containerized development environment
βββ .env.example # Environment variables template
βββ .gitignore # Production Git ignore rules
βββ README.md # Project documentation
stateDiagram-v2
[*] --> SAVED : Discovered on Web
SAVED --> APPLIED : Application Submitted
APPLIED --> SCREENING : Recruiter Contact
SCREENING --> INTERVIEW : Technical / HR Rounds
INTERVIEW --> OFFER : Job Offer Extended
OFFER --> ACCEPTED : Offer Accepted
SAVED --> REJECTED
APPLIED --> REJECTED
SCREENING --> REJECTED
INTERVIEW --> REJECTED
OFFER --> REJECTED
SAVED --> WITHDRAWN
APPLIED --> WITHDRAWN
SCREENING --> WITHDRAWN
INTERVIEW --> WITHDRAWN
- Node.js: v20+ (
v24recommended) - Java: JDK 21+ (
Java 22verified) - Docker: Docker Desktop (for PostgreSQL)
docker compose up -dHealthcheck verifies PostgreSQL is ready on port 5432 with database jobtrack_db.
cd backend
# Windows PowerShell
.\mvnw.ps1 spring-boot:run
# Linux / macOS / Bash
./mvnw spring-boot:run- The API starts at:
http://localhost:8080 - Swagger UI Docs:
http://localhost:8080/swagger-ui.html - Health Endpoint:
http://localhost:8080/actuator/health
cd web
npm install
npm run dev- The Web Dashboard is accessible at
http://localhost:5173.
cd extension
npm install
npm run build- Open Google Chrome and navigate to
chrome://extensions. - Enable Developer mode in the top-right corner.
- Click Load unpacked and select the
extension/distdirectory.
- Zero Client Trust: All user authorization, input validation, and deduplication are strictly enforced on the backend. Client payloads never dictate
userId. - Modular Extractor Interface: Extractor adapters (
LinkedInExtractor,IndeedExtractor,CompanyCareerExtractor,GenericExtractor) implementJobExtractorwith resilient fallback to JSON-LD structured data and OpenGraph tags. - Safe Secrets: No database passwords, JWT secrets, or external AI keys are exposed in client bundles.
- Clean Code & Conventional Commits: Layered separation between Presentation (React), Business Logic (Spring Boot Services), and Persistence (JPA + PostgreSQL).