A modern job application platform with AI-powered resume parsing and intelligent job-candidate matching.
- User Authentication (Registration, Login, Password Reset)
- Profile Management with Job Preferences
- AI-Powered Resume Upload and Parsing using Google Gemini API
- Job-Resume Relevance Matching with semantic similarity analysis
- Redis-based OTP System for secure authentication
- Celery Background Tasks for job searching and processing
- Clean Dashboard Interface with modern UI/UX
- FastAPI (Python web framework)
- PostgreSQL (Primary database)
- Redis (Caching, Celery broker, OTP storage)
- Google Gemini AI (Resume parsing & job relevance)
- Celery (Background task processing)
- Docker (Containerization)
- SQLAlchemy (ORM)
- React + TypeScript
- Vite (Build tool)
- Tailwind CSS (Styling)
- Shadcn/ui (UI components)
- React Router (Navigation)
- Context API (State management)
- Docker and Docker Compose
- Git
-
Clone the repository
git clone <repository-url> cd Job-Boost
-
Configure Environment Variables
cp .env.example .env
Edit
.envand add your API keys:GOOGLE_API_KEY: Get from Google AI StudioBREVO_API_KEY: Get from BrevoJSEARCH_API_KEY: Get from JSearch API
-
Start the Application
docker-compose up -d
-
Access the Application
- Frontend: http://localhost:5173
- Backend API: http://localhost:8000
- API Documentation: http://localhost:8000/docs
- Health Check: http://localhost:8000/health
-
Backend Setup
cd BackEnd python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate pip install -r requirements.txt
-
Database Setup
# Start PostgreSQL and Redis docker-compose up -d postgres redis # Database will be automatically created on first run
-
Start Backend
uvicorn main:app --reload
-
Frontend Setup
cd FrontEnd npm install # or bun install npm run dev # or bun dev
Job-Boost/
├── BackEnd/ # FastAPI backend
│ ├── auth/ # Authentication logic
│ ├── routers/ # API route handlers
│ ├── services/ # Business logic services
│ ├── utils/ # Utility functions
│ ├── main.py # FastAPI application
│ ├── models.py # Database models
│ ├── schemas.py # Pydantic schemas
│ └── requirements.txt # Python dependencies
├── FrontEnd/ # React frontend
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── pages/ # Page components
│ │ ├── contexts/ # React contexts
│ │ └── lib/ # API utilities
│ └── package.json # Node.js dependencies
├── docker-compose.yml # Docker services configuration
└── README.md # This file
Create a .env file with the following variables:
# Database
POSTGRES_DB=jobboost_db
POSTGRES_USER=jobboost_user
POSTGRES_PASSWORD=your_password
# Redis
REDIS_URL=redis://redis:6379/0
# API Keys
GEMINI_API_KEY=your_gemini_api_key
BREVO_API_KEY=your_brevo_api_key
# JWT
SECRET_KEY=your_secret_keyPOST /user/register- User registrationPOST /user/login- User loginPOST /user/request-password-reset- Request password resetPOST /user/reset-password- Reset passwordGET /profile/me- Get user profilePUT /profile/preferences- Update job preferencesPOST /profile/upload-resume- Upload and parse resume
This project is licensed under the MIT License.