An AI-powered career guidance system that provides personalized career predictions and roadmaps for students who just passed 10th or 12th standard. Built with a Python Flask backend (ML-powered) and a modern React frontend.
Premium dark-themed landing page with animated hero section and feature highlights.
Interactive profile page with score sliders, skill tags, and interest selection.
Dashboard showing top 3 career recommendations with confidence scores from the ML ensemble.
Step-by-step career roadmap tailored to the student's education level (after 10th or 12th).
βββββββββββββββββββββββββββββββ
β User Interface (React) β
βββββββββββββββ¬ββββββββββββββββ
βΌ
βββββββββββββββββββββββββββββββ
β Input Processing Module β
β (Scores, Skills, Interest) β
βββββββββββββββ¬ββββββββββββββββ
βΌ
βββββββββββββββββββββββββββββββ
β Feature Engineering & β
β Preprocessing β
ββββββββ¬βββββββββββββββ¬ββββββββ
βΌ βΌ
ββββββββββββββββ ββββββββββββββββ
β Random Forestβ β XGBoost β
β Classifier β β Classifier β
ββββββββ¬ββββββββ ββββββββ¬ββββββββ
ββββββββββ¬ββββββββ
βΌ
βββββββββββββββββββββββββββββββ
β Prediction & Recommendationβ
β (Weighted Ensemble) β
βββββββββββββββ¬ββββββββββββββββ
βΌ
βββββββββββββββββββββββββββββββ
β Output β Career Results β
β Suggestions, Skills, etc. β
βββββββββββββββββββββββββββββββ
| Step | Process | Description |
|---|---|---|
| 1 | User Registration | Student creates account with education level (10th/12th) |
| 2 | Skill & Interest Analysis | System collects academic scores, skills, and interests |
| 3 | Career Domain Prediction | ML model predicts suitable career domains |
| 4 | Career Mapping | System maps careers to required skills and courses |
| 5 | Roadmap Generation | Personalized career roadmap is created |
| 6 | Dashboard Display | Career options, certifications, and timeline displayed |
| Technology | Purpose |
|---|---|
| Python 3.10+ | Backend language |
| Flask | REST API framework |
| scikit-learn | Random Forest classifier |
| XGBoost | XGBoost classifier |
| PyJWT | JWT authentication |
| Flask-CORS | Cross-origin support |
| NumPy | Numerical computing |
| Technology | Purpose |
|---|---|
| React 19 | UI library |
| Vite | Build tool & dev server |
| React Router | Client-side routing |
| Vanilla CSS | Custom design system |
| Google Fonts (Inter) | Typography |
CareerPathAi/
βββ backend/
β βββ app.py # Flask entry point
β βββ requirements.txt # Python dependencies
β βββ models/
β β βββ career_data.py # Career datasets, roadmaps, training data
β β βββ ml_model.py # RF + XGBoost ensemble predictor
β βββ routes/
β βββ auth.py # Register/Login (JWT)
β βββ predict.py # Career prediction endpoint
β βββ roadmap.py # Roadmap generation endpoint
β
βββ frontend/
β βββ index.html # Entry HTML
β βββ package.json # Node dependencies
β βββ vite.config.js # Vite configuration
β βββ src/
β βββ main.jsx # React entry point
β βββ App.jsx # Router & auth state
β βββ api.js # Backend API client
β βββ index.css # Design system (dark theme)
β βββ components/
β β βββ Navbar.jsx # Navigation bar
β βββ pages/
β βββ Landing.jsx # Hero & features page
β βββ Auth.jsx # Login/Register page
β βββ Profile.jsx # Score/Skill/Interest input
β βββ Dashboard.jsx # Career prediction results
β βββ Roadmap.jsx # Personalized career roadmap
β
βββ .gitignore
- Python 3.10+ installed
- Node.js 18+ and npm installed
- Git installed
git clone https://github.com/atharvpatil01/CareerPathAi.git
cd CareerPathAicd backend
pip install -r requirements.txt
python app.pyThe backend will:
- Generate synthetic training data (2400 samples)
- Train Random Forest + XGBoost models
- Start the API server on http://localhost:5000
cd frontend
npm install
npm run devThe frontend will start on http://localhost:5173
Navigate to http://localhost:5173 in your browser and start exploring!
| Method | Endpoint | Description |
|---|---|---|
POST |
/api/register |
Register new user (name, email, password, education_level) |
POST |
/api/login |
Login with email & password |
POST |
/api/predict |
Get career predictions (scores, skills, interests) |
GET |
/api/options |
Get available skills & interests |
GET |
/api/roadmap/<career> |
Get career roadmap (query: education_level) |
GET |
/api/careers |
List all available careers |
GET |
/api/health |
Health check |
curl -X POST http://localhost:5000/api/predict \
-H "Content-Type: application/json" \
-d '{
"scores": {"math": 85, "science": 78, "english": 70, "logical_reasoning": 90},
"skills": ["Programming", "Problem Solving", "Analytical Thinking"],
"interests": ["Technology", "Science", "Engineering"]
}'The system uses a weighted ensemble of two classifiers:
- Random Forest (150 estimators, max_depth=15) β Weight: 45%
- XGBoost (150 estimators, max_depth=8, lr=0.1) β Weight: 55%
- 2400 synthetic samples generated from career profiles
- 34 features: 4 academic scores + 15 skill indicators + 15 interest indicators
- 12 career domains with distinct score/skill/interest patterns
| Domain | Key Strengths |
|---|---|
| π» Software Engineering | High math + logical reasoning + programming |
| π Data Science | High math + analytical thinking + data analysis |
| π₯ Medicine | High science + research + healthcare interest |
| βοΈ Law | High english + communication + critical thinking |
| π Business & Finance | High math + leadership + business interest |
| π¨ Design & UX | Creativity + design skills + arts interest |
| π©βπ« Teaching & Education | Communication + public speaking + education interest |
| βοΈ Mechanical Engineering | High math + science + engineering interest |
| ποΈ Civil Engineering | High math + science + environment interest |
| π° Journalism & Media | High english + writing + media interest |
| π§ Psychology & Counseling | Communication + empathy + social work interest |
| 𧬠Biotechnology | High science + research + healthcare interest |
Each career provides a tailored roadmap based on whether the student passed 10th or 12th standard, including:
- π Step-by-step educational path (stream selection, degree, specialization)
- π οΈ Skills to develop (technical + soft skills)
- π Certifications to pursue
- π Top courses & colleges recommended
- π° Expected salary range in India
- π JWT Authentication β Secure register/login with token-based auth
- π Interactive Score Input β Slider-based academic score entry
- π·οΈ Tag Selection β Click-to-select skills and interests
- π€ AI Predictions β Top 3 career matches with confidence percentages
- πΊοΈ Visual Roadmap β Animated timeline with career milestones
- π Premium Dark Theme β Glassmorphism, gradients, micro-animations
- π± Responsive Design β Works on desktop, tablet, and mobile
- β‘ Fast & Modern β Vite-powered frontend with hot reload
# Health check
curl http://localhost:5000/api/health
# Register
curl -X POST http://localhost:5000/api/register \
-H "Content-Type: application/json" \
-d '{"name":"Test","email":"[email protected]","password":"1234","education_level":"12th"}'
# Get options
curl http://localhost:5000/api/options- Open http://localhost:5173
- Register with your details (select 10th or 12th)
- Fill in academic scores, select skills & interests
- Click "Get Career Predictions"
- View your top 3 career matches
- Click "View Career Roadmap" for detailed guidance
This project is open source and available under the MIT License.
Atharv Patil
- GitHub: @atharvpatil01
Made with β€οΈ for students navigating their career paths
Problem: Students who have just passed their 10th or 12th standard face a critical decision about their career path but often lack personalised, data-driven guidance.
Solution: An AI-powered web application that takes a student's academic scores, skills, and interests as input and uses Machine Learning to predict the top 3 suitable career domains β along with a personalised step-by-step roadmap.
The project follows a modified Agile/Iterative approach split into clearly defined phases:
| Activity | Output |
|---|---|
| Identify target audience (10th/12th pass students) | User persona document |
| Map 12 career domains with score ranges, skills, and interests | career_data.py β CAREER_PROFILES dictionary |
| Define input features (4 scores + 15 skills + 15 interests = 34 features) | Feature schema |
| Design career roadmaps for each domain (after 10th & after 12th) | CAREER_ROADMAPS dictionary |
| Activity | Output |
|---|---|
| Generate synthetic training data (2,400 samples) using CAREER_PROFILES | generate_training_data() in career_data.py |
| Train Random Forest (150 estimators, max_depth=15) | Trained RF model in ml_model.py |
| Train XGBoost (150 estimators, max_depth=8, lr=0.1) | Trained XGB model in ml_model.py |
| Build weighted ensemble (RF 45% + XGBoost 55%) | CareerPredictor.predict() method |
| Validate training accuracy | Accuracy printed on startup |
| Activity | Output |
|---|---|
| Create Flask app with CORS support | app.py β create_app() |
| Implement JWT-based auth (register/login) | routes/auth.py |
| Build prediction endpoint | routes/predict.py β POST /api/predict |
| Build roadmap generation endpoint | routes/roadmap.py β GET /api/roadmap/<career> |
| Add utility endpoints (health, options, careers) | Various routes |
| Activity | Output |
|---|---|
| Design dark-themed design system (CSS variables, glassmorphism) | index.css β 22 KB design system |
| Build responsive Navbar with auth awareness | Navbar.jsx |
| Build Landing page with hero section & features | Landing.jsx |
| Build Auth page (login/register toggle) | Auth.jsx |
| Build Profile page (sliders for scores, tag-select for skills/interests) | Profile.jsx |
| Build Dashboard (top 3 predictions with confidence bars) | Dashboard.jsx |
| Build Roadmap page (animated timeline) | Roadmap.jsx |
| Wire up API client | api.js |
| Activity | Output |
|---|---|
| Connect frontend β backend via REST API | api.js baseURL β localhost:5000 |
| End-to-end flow testing (register β login β profile β predict β roadmap) | Manual test script in README |
API endpoint testing with curl |
Test commands documented |
| Layer | Choice | Rationale |
|---|---|---|
| ML β Random Forest | scikit-learn | Robust, interpretable, handles tabular data well |
| ML β XGBoost | xgboost | Best-in-class gradient boosting for structured data |
| Ensemble Strategy | Weighted average (45/55) | Combines RF's stability with XGBoost's precision |
| Backend | Flask | Lightweight, Pythonic, easy ML integration |
| Auth | PyJWT | Stateless token-based auth, no DB dependency |
| Frontend | React 19 + Vite | Fast dev server, modern JSX, component reusability |
| Styling | Vanilla CSS | Full control, no framework overhead, premium dark theme |
| Routing | React Router | SPA navigation, auth-protected routes |
Student React Frontend Flask Backend ML Ensemble
β β β β
βββ Register βββββββββββββββββΊ POST /api/register βββββββββΊβ β
ββββββββββββββ JWT Token βββββ JWT Token ββββββββββββββββββ€ β
β β β β
βββ Input Scores/Skills ββββββΊ POST /api/predict ββββββββββΊ prepare_features() β
β β βββ 34-dim vector βββββββββΊβ
β β β RF predict_proba β
β β β XGB predict_proba β
β β ββββ Ensemble (0.45*RF β
β β β + 0.55*XGB) βββββββββ€
ββββββ Dashboard (3 cards) βββ Top 3 careers + confidenceββ€ β
β β β β
βββ Click "View Roadmap" βββββΊ GET /api/roadmap/<career> ββΊβ β
ββββββ Animated Timeline ββββ Roadmap phases, skills βββββ€ β
Since real student-career outcome data is not available, the system generates 2,400 synthetic training samples (200 per career domain) using the curated CAREER_PROFILES:
- Score features (4): Gaussian distribution centred on each career's ideal range (e.g., Software Engineering β math 75β100, logical 80β100)
- Skill features (15): Binary flags, 75% probability if the skill is associated with the career, 15% otherwise
- Interest features (15): Binary flags, 75% probability if associated, 12% otherwise
| Model | Hyperparameters |
|---|---|
| Random Forest | n_estimators=150, max_depth=15, min_samples_split=5, min_samples_leaf=2 |
| XGBoost | n_estimators=150, max_depth=8, learning_rate=0.1, subsample=0.8, colsample_bytree=0.8 |
ensemble_probabilities = 0.45 Γ RF_probabilities + 0.55 Γ XGB_probabilities
Top 3 indices are extracted via argsort(), inverse-label-transformed to career names, and returned with confidence percentages.
| Page | Route | Purpose |
|---|---|---|
| Landing | / |
Hero section, feature highlights, CTA |
| Auth | /auth |
Login/Register form with toggle |
| Profile | /profile |
Score sliders, skill/interest tag selection β submit |
| Dashboard | /dashboard |
Top 3 career prediction cards with confidence bars |
| Roadmap | /roadmap/:career |
Step-by-step animated career roadmap timeline |
| Test Type | Method | Scope |
|---|---|---|
| API Smoke Test | curl http://localhost:5000/api/health |
Backend is running, model trained |
| Registration Test | curl POST /api/register with JSON body |
User creation + JWT return |
| Prediction Test | curl POST /api/predict with sample data |
ML pipeline end-to-end |
| Full Flow (Manual) | Browser walk-through: register β profile β predict β roadmap | Complete user journey |
| Enhancement | Description |
|---|---|
| Real Dataset | Replace synthetic data with real student-career outcome data |
| Database | Add SQLite / PostgreSQL for persistent user storage |
| Model Persistence | Save/load trained models with joblib instead of retraining on every startup |
| More Careers | Expand from 12 to 20+ career domains |
| Feedback Loop | Let users rate predictions to improve model accuracy over time |
| Deployment | Deploy backend on Render/Railway, frontend on Vercel/Netlify |