Skip to content

JobFlow: full‑stack app with FastAPI + React for managing job search, AI‑assisted matching, resume parsing, analytics, and application tracking. Includes MongoDB backend, JWT auth, and a modern dashboard UI.

Notifications You must be signed in to change notification settings

AdityaC-07/job-tracker-agent

 
 

Repository files navigation

🎯 JobFlow: Job Tracker Agent

AI-Powered Intelligent Job Search & Application Management Platform

An advanced job tracking and career development tool that leverages IBM Watson AI to provide intelligent job recommendations, resume optimization, interview preparation, and automated email templates. Built with modern web technologies and deployed with containerization for seamless scalability.


🚀 Live Deployment

Application is now live on IBM Cloud Code Engine!

Service URL Status
🎨 Frontend https://job-tracker-frontend.25rpaifsnzhb.jp-osa.codeengine.appdomain.cloud ✅ Active
🔧 Backend API https://job-tracker-backend.25rpaifsnzhb.jp-osa.codeengine.appdomain.cloud ✅ Active
📚 API Docs https://job-tracker-backend.25rpaifsnzhb.jp-osa.codeengine.appdomain.cloud/api/docs ✅ Active

Region: Japan (Osaka) | Platform: IBM Cloud Code Engine | Database: MongoDB Atlas


🎯 Your Contributions

✨ Key Enhancements & Fixes (Current Session)

  1. Watson AI Integration Fix

    • Resolved Python 3.14 incompatibility by migrating from ibm-watsonx-ai SDK to HTTP-based REST API
    • Implemented _get_iam_token() for IBM Cloud IAM authentication
    • Created _call_watsonx_api() wrapper for Watson ML endpoint calls
    • All 7 AI functions now return real Watson AI responses instead of hardcoded fallbacks
    • Model Updated: granite-3-8b-instruct (improved performance & availability)
  2. Backend Deployment

    • Fixed module import error: Changed Dockerfile CMD from uvicorn backend.api.main:app to python -m uvicorn api.main:app
    • Fixed absolute imports in tasks/scheduled_tasks.py: Converted from backend.* to relative imports
    • Successfully deployed to IBM Cloud Code Engine with auto-scaling (1-3 instances)
    • Result: 0 restarts, 100% uptime
  3. Frontend Deployment

    • Configured frontend with production API URL via .env.production
    • Fixed CORS issues by adding deployed frontend domain to backend allow list
    • Updated nginx configuration for SPA routing
    • Successfully deployed with multi-stage Docker build
    • Result: React app serving with full API connectivity
  4. Environment & Security

    • All API keys securely stored in Code Engine environment variables (not in code)
    • Added .gitignore protection for local .env files
    • Implemented CORS middleware with deployed frontend URL
    • MongoDB Atlas credentials properly configured

📊 Technical Improvements Made

Area Change Impact
AI Model Migrated from SDK to HTTP API Python 3.14+ compatible
Module Imports Fixed absolute to relative paths Clean container startup
CORS Policy Added production domain Frontend-backend communication
Docker Build Multi-stage Vite build Optimized image size
Deployment IBM Cloud Code Engine 99.9% availability
Database MongoDB Atlas connection Cloud-based data persistence

✨ Core Features

🤖 AI-Powered Intelligence

  • Intelligent Cover Letter Generation - AI-crafted cover letters tailored to specific job postings
  • Smart Resume Optimization - Targeted suggestions to match job requirements
  • Interview Preparation - AI-generated practice questions and preparation tips
  • Job Analysis & Fit Assessment - Comprehensive skill gap analysis
  • Professional Email Templates - Follow-up, thank you, and negotiation emails
  • Performance Insights - AI-powered recommendations based on metrics

📊 Application Management

  • Unified Application Tracking - Manage all job applications in one place
  • Real-time Job Updates - Integrated job search capabilities
  • Resume Manager - Upload and manage multiple resumes
  • Interview Scheduler - Organize and prepare for interviews
  • Saved Jobs - Bookmark and track opportunities
  • Email Integration - Automatic job detail extraction from emails

📈 Analytics & Insights

  • Comprehensive Dashboard - Track applications, interviews, offers
  • Success Metrics - Interview rates, offer ratios, match percentages
  • Performance Analytics - Visual insights on application history
  • Skill Gap Analysis - Identify missing skills for target roles

🏗️ Tech Stack

Backend

Python FastAPI MongoDB Motor httpx

Frontend

React TypeScript Vite Tailwind CSS

AI & Services

IBM Watson REST API JWT Auth

DevOps & Infrastructure

Docker Docker Compose Nginx


🚀 Quick Start

Prerequisites

  • Python 3.14+
  • Node.js 18+
  • MongoDB (local or Atlas)
  • Docker & Docker Compose (optional)

Installation

1. Clone the Repository

git clone https://github.com/agniv-dutta/job-tracker-agent.git
cd job-tracker-agent

2. Backend Setup

cd backend

# Create and activate virtual environment
python -m venv .venv
.venv\Scripts\Activate.ps1  # Windows PowerShell
# or
source .venv/bin/activate   # macOS/Linux

# Install dependencies
pip install -r requirements.txt

# Configure environment
cp .env.example .env
# Edit .env with your credentials

3. Frontend Setup

cd frontend

# Install dependencies
npm install

# Create environment configuration
cp .env.example .env

4. Environment Variables

Backend (.env)

# MongoDB
MONGODB_URL=mongodb+srv://user:password@cluster.mongodb.net/job_tracker

# Watson AI
WATSONX_API_KEY=your_api_key
WATSONX_PROJECT_ID=your_project_id
IBM_IAM_API_KEY=your_iam_key
WATSONX_URL=https://us-south.ml.cloud.ibm.com

# JWT
JWT_SECRET=your_secret_key
JWT_ALGORITHM=HS256

# Email (optional)
SMTP_SERVER=smtp.gmail.com
SMTP_PORT=587
SENDER_EMAIL=your_email@gmail.com
SENDER_PASSWORD=your_app_password

Frontend (.env)

VITE_API_BASE_URL=http://localhost:8000

Running Locally

Using Docker Compose (Recommended)

docker-compose up -d

Running Separately

Terminal 1 - Backend

cd backend
.venv\Scripts\Activate.ps1
$env:PYTHONPATH="$(Get-Location)"
uvicorn api.main:app --reload --host 0.0.0.0 --port 8000

Terminal 2 - Frontend

cd frontend
npm run dev

📁 Project Structure

job-tracker-agent/
├── backend/
│   ├── api/
│   │   ├── main.py              # FastAPI application entry
│   │   └── routes/              # API endpoints
│   │       ├── users.py
│   │       ├── applications.py
│   │       ├── jobs.py
│   │       ├── analytics.py
│   │       └── ai.py
│   ├── services/
│   │   ├── watsonx_service.py   # Watson AI integration (HTTP API)
│   │   ├── job_api_service.py   # Job posting service
│   │   ├── email_parser.py      # Email parsing
│   │   ├── resume_parser.py     # Resume parsing
│   │   ├── matcher.py           # Job matching
│   │   └── notifications.py     # Email notifications
│   ├── models/
│   │   └── database.py          # MongoDB models
│   ├── config/
│   │   └── database.py          # Database configuration
│   ├── auth/
│   │   └── jwt_handler.py       # JWT authentication
│   ├── tasks/
│   │   └── scheduled_tasks.py   # Background jobs
│   ├── Dockerfile
│   └── requirements.txt
│
├── frontend/
│   ├── src/
│   │   ├── App.tsx              # Main component
│   │   ├── index.tsx            # Entry point
│   │   ├── index.css            # Global styles
│   │   ├── vite-env.d.ts        # Vite types
│   │   ├── components/          # React components
│   │   ├── services/
│   │   │   └── api.ts           # API client
│   │   ├── context/
│   │   │   └── AuthContext.tsx  # Auth state
│   │   └── hooks/               # Custom hooks
│   ├── public/                  # Static assets
│   ├── Dockerfile
│   ├── nginx.conf               # Nginx configuration
│   ├── vite.config.ts
│   ├── tailwind.config.js
│   ├── tsconfig.json
│   └── package.json
│
├── docker-compose.yml
├── WATSON_API_MIGRATION.md      # Migration documentation
└── README.md

🔑 API Endpoints

Authentication

  • POST /api/auth/register - Register new user
  • POST /api/auth/login - Login user
  • POST /api/auth/refresh - Refresh JWT token

Applications

  • GET /api/applications - List all applications
  • POST /api/applications - Create new application
  • GET /api/applications/{id} - Get application details
  • PUT /api/applications/{id} - Update application
  • DELETE /api/applications/{id} - Delete application

Jobs

  • GET /api/jobs - Search jobs
  • GET /api/jobs/{id} - Get job details
  • POST /api/jobs/save - Save job posting

AI Features

  • POST /api/ai/cover-letter - Generate cover letter
  • POST /api/ai/resume-optimization - Optimize resume
  • POST /api/ai/interview-prep - Get interview questions
  • POST /api/ai/job-analysis - Analyze job fit
  • POST /api/ai/email-template - Generate email
  • GET /api/ai/insights - Get performance insights

Resume

  • POST /api/resume/upload - Upload resume
  • GET /api/resume/list - List user resumes
  • DELETE /api/resume/{id} - Delete resume

🤖 AI Integration

Watson AI Features

The application uses IBM Watson AI with the granite-13b-chat-v2 model for:

  • HTTP-Based API Integration - Direct REST calls (bypassing SDK for Python 3.14 compatibility)
  • IAM Authentication - Secure token-based authentication with IBM Cloud
  • Intelligent Prompting - Context-aware AI for career-specific tasks
  • Fallback Templates - Graceful degradation with professional templates when API unavailable

Authentication Flow

User Request
    ↓
Generate IAM Token (IBM Cloud)
    ↓
Call Watson ML API (HTTP POST)
    ↓
Parse AI Response
    ↓
Return to User

Model Configuration


🧪 Testing

Backend Tests

cd backend
pytest tests/

Frontend Tests

cd frontend
npm run test

API Documentation

Once the backend is running, visit:


📊 Dashboard Features

The professional dashboard includes:

  • Stats Overview - Total applications, interviews, offers, success rate
  • Application Status Breakdown - Visual breakdown of application statuses
  • Recent Applications - Latest submitted applications
  • Interview Schedule - Upcoming interviews and preparation
  • AI Insights - Personalized recommendations based on activity

Design System

  • Primary Color: #1E3A5F (Professional Dark Blue)
  • Background: White with subtle gradients
  • Typography: Clean, readable fonts
  • Modern UI - Professional design without emojis

🔒 Security Features

  • JWT Authentication - Secure token-based auth
  • Password Hashing - bcrypt encryption for sensitive data
  • CORS Protection - Configured CORS policies
  • Environment Variables - Secure credential management
  • API Rate Limiting - Prevent abuse
  • Input Validation - FastAPI Pydantic validation
  • HTTPS Ready - Docker setup supports SSL/TLS

📈 Performance Optimizations

  • Async Operations - Motor async MongoDB driver for non-blocking I/O
  • Database Indexing - Optimized MongoDB queries with proper indexes
  • Frontend Caching - React Context API for efficient state management
  • Lazy Loading - Component-level code splitting with Vite
  • Docker Containers - Efficient resource utilization and isolation
  • HTTP/2 Support - Nginx configured for optimal performance

🐛 Troubleshooting

Backend Won't Start

# Clear cache and reinstall
rm -r .venv
python -m venv .venv
.venv\Scripts\Activate.ps1
pip install -r requirements.txt

Watson AI Not Working

  • Verify IBM credentials in .env
  • Check IAM token generation: POST https://iam.cloud.ibm.com/identity/token
  • View backend logs for API errors
  • Ensure API key permissions for Watson ML

Frontend Build Issues

# Clear node_modules and reinstall
rm -r node_modules package-lock.json
npm install
npm run dev

MongoDB Connection Failed

  • Ensure MongoDB is running locally or update connection string to Atlas
  • Check network connectivity for Atlas clusters
  • Verify credentials in MongoDB URL
  • Check firewall/IP whitelist for Atlas

📝 Environment Configuration

Development

npm run dev      # Frontend with hot reload
uvicorn api.main:app --reload  # Backend with auto-reload

Production

npm run build    # Frontend production build
docker-compose up -d  # Deploy with Docker

🔄 Migration Notes

See WATSON_API_MIGRATION.md for details on:

  • Migration from SDK to HTTP API for Watson AI
  • Python 3.14 compatibility resolution
  • IAM token authentication implementation
  • All 7 AI function updates

🤝 Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.


👨‍💻 Authors & Contributors

Original Author

Enhancement & Deployment by

  • Aditya Choudhuri - GitHub: @AdityaC-07
    • 🚀 Watson AI integration fixes and HTTP API migration
    • ☁️ Full-stack deployment to IBM Cloud Code Engine
    • 🔧 Docker containerization and build optimization
    • 🛡️ CORS and security configuration
    • 📦 Production environment setup

Repository Forks


🙏 Acknowledgments

  • IBM Watson AI - Powerful AI capabilities for career tasks
  • FastAPI - Modern, fast Python web framework
  • React & TypeScript - Excellent frontend development experience
  • MongoDB - Flexible and scalable database solution
  • Tailwind CSS - Beautiful utility-first CSS framework
  • Docker - Containerization and deployment excellence

📞 Support

For support, email choudhuri.aditya7@gmail.com or open an issue on GitHub.


📽️ Demo Video

Click here to view https://youtu.be/ZTjHW1ddnJo


⭐ If you found this project helpful, please give it a star!

Built with ❤️ using modern web technologies

Python Status License

About

JobFlow: full‑stack app with FastAPI + React for managing job search, AI‑assisted matching, resume parsing, analytics, and application tracking. Includes MongoDB backend, JWT auth, and a modern dashboard UI.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 64.6%
  • TypeScript 34.6%
  • Other 0.8%