You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Job Search Assistant with AI Chatbot & Mock Interviews
A full-stack job search application powered by AI that helps users discover job opportunities, manage applications, and prepare for interviews. Features an intelligent chatbot for job discovery, voice-based AI mock interviews, and comprehensive user profile management.
# Navigate to backend
cd backend
# Create virtual environment
python -m venv venv
# Activate (Windows PowerShell)
./venv/Scripts/Activate.ps1
# Or on Unix/macOS# source venv/bin/activate# Install dependencies
pip install -r requirements.txt
# Create .env file (see Environment Variables below)# Run the server
uvicorn main:app --reload --host 0.0.0.0--port 8000
Frontend Setup
cd frontend
npm install
npm run dev
The frontend runs on http://localhost:5173 and backend on http://localhost:8000.
π Environment Variables
Create backend/.env:
# DatabaseMONGODB_URI=mongodb+srv://user:password@cluster.mongodb.net/jobsearch# AI ServicesGEMINI_API_KEY=your_gemini_api_keyJSEARCH_API_KEY=your_jsearch_api_key# Authentication (generate secure random keys for production)JWT_SECRET_KEY=your_jwt_secret_key_min_32_charsJWT_REFRESH_SECRET_KEY=your_refresh_secret_key# Voice Interviews (Retell AI)RETELL_API_KEY=your_retell_api_keyRETELL_AGENT_ID_1=agent_id_interviewer_1RETELL_AGENT_ID_2=agent_id_interviewer_2RETELL_AGENT_ID_3=agent_id_interviewer_3
π± Application Routes
Route
Description
/auth
Login & Register page
/
Redirects based on auth/onboarding status
/onboarding
Resume upload for new users
/home
Dashboard with saved jobs, chats, quick actions
/chat/:chatId
AI chatbot for job search
/profile
View and edit user profile
/interview-prep
Interview preparation dashboard
/interview/:interviewId
Voice interview room with AI
π API Endpoints
Authentication
Method
Endpoint
Description
Auth Required
POST
/api/auth/register
Create new account
No
POST
/api/auth/login
Login & get tokens
No
POST
/api/auth/refresh
Refresh access token
Refresh Token
POST
/api/auth/logout
Invalidate tokens
Yes
GET
/api/auth/me
Get current user
Yes
User & Profile
Method
Endpoint
Description
POST
/api/onboardFileUpload
Parse resume PDF
POST
/api/confirmOnboardingDetails
Save onboarding profile
POST
/api/updateUserProfile
Update profile fields
Chat
Method
Endpoint
Description
GET
/api/chatHistory
Get user's chat sessions
POST
/api/createChat
Create new chat session
POST
/api/sendMessage
Send message & get AI response
GET
/api/getChatMessages
Get messages for a chat
DELETE
/api/chat/{chatId}
Delete a chat session
Jobs
Method
Endpoint
Description
GET
/api/getSavedJobs
Get saved jobs
GET
/api/getAppliedJobs
Get applied jobs
POST
/api/saveJob
Save a job
DELETE
/api/savedJob/{jobId}
Unsave a job
POST
/api/applyJob
Mark job as applied
Interviews
Method
Endpoint
Description
GET
/api/interviewers
Get AI interviewer profiles
POST
/api/createInterview
Create custom interview
POST
/api/createJobInterview
Create job-specific interview
POST
/api/registerCall
Start voice call session
POST
/api/analyzeInterview
Get performance analytics
π Security Features
Password Hashing: bcrypt with cost factor 12 (~250ms per hash)
JWT Tokens: HS256 algorithm with configurable expiry
Token Refresh: Automatic refresh mechanism with refresh tokens