A full-stack job application tracker powered by Flask, AI, and browser automation.
A comprehensive web application to manage and track job applications with AI-powered data extraction and seamless Chrome Extension integration.
- Dashboard Management: Track all job applications with status badges and edit/delete options.
- AI-Powered Data Extraction: Automatically extract structured job data (title, company, date, etc.) from raw descriptions using Google Gemini API.
- Chrome Extension Integration: One-click job tracking from any job portal website.
- User Authentication: Secure registration/login system with OTP verification.
- Status Visualization: Colored badges representing application stages like Applied, Interviewed, Offered, etc.
- Backend: Flask, SQLAlchemy, Flask-Login
- Frontend: Bootstrap 5, Jinja2 Templates
- AI Integration: Google Gemini API
- Database: PostgreSQL (Production) / SQLite (Development)
- Authentication: Email-based login with OTP (One Time Password)
-
Clone the repository
git clone https://github.com/TonyStark-47/Job-Application-Tracker.git cd Job-Application-Tracker -
Install dependencies
pip install -r requirements.txt
-
Set up environment variables Create a
.envfile in the root directory and add:FLASK_SECRET_KEY=your_secret_key DB_URI=your_database_url GEMINI_API_KEY=your_gemini_api_key
-
Initialize the app
python main.py
A companion Chrome Extension is available for capturing job data from job boards with one click.
- One-click job tracking from active web pages
- Saves job title, company, content, URL, and date
- Locally stores
user_idfor seamless authentication - No additional login required if already authenticated
🔗 Download Extension: Extension Repository
POST /save_data– Accepts job data and saves it after optional AI parsingPOST /login_through_extension– Authenticates extension users with credentials
GET /– User dashboard displaying saved jobsGET /extension– Information page for installing and using the extension
The web dashboard provides a responsive, Bootstrap-powered interface:
- Status Badges: Displays application stage using colored labels
- Responsive Table: Lists all saved jobs, sorted by date or status
- User Controls: Includes login/logout, search bar, and job entry forms
Uses Google Gemini API (or similar LLM) to extract structured data fields from raw job descriptions or full-text job pages.
- Job Title
- Company
- Application/Test/Interview Date
- Job Status (e.g., Applied, Offered, Awaiting Interview)
- Job Location
- Job Link
If no date or link is found, it assigns today’s date and a sample link automatically.
- Register/Login through the web dashboard
- Save jobs manually or use the Chrome Extension
- View and manage your jobs from the dashboard
- Receive daily email reminders for upcoming interviews/tests
This project is licensed under the MIT License.
Got ideas? 💭 Found a bug? 🐞 Contributions are welcome!
Submit a pull request or open an issue to collaborate.