Skip to content

Kumar-Deepak-DEV/SkillMatrixAI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

70 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🧠 SkillMatrixAI

AI-powered candidate skill assessment and training roadmap platform β€” built for HR teams and Trainers to streamline the hiring-to-training pipeline.


πŸš€ Live Demo

πŸ”— https://skill-matrix-ai-ercm.vercel.app/


πŸ“Œ Table of Contents


🧩 Overview

SkillMatrixAI is a full-stack web application that helps organizations evaluate candidates by automatically generating AI-powered skill development roadmaps from uploaded resumes. The platform supports two distinct user roles β€” HR and Trainer β€” each with their own dedicated dashboard and workflows.

  • HR uploads candidate resumes β†’ AI extracts skills and generates a phased training roadmap
  • Trainer reviews, approves/rejects roadmaps, tracks training progress, and marks candidates as complete
  • HR can resubmit rejected roadmaps, triggering a fresh AI-powered regeneration

✨ Features

πŸ‘©β€πŸ’Ό HR Features

  • Upload candidate resumes (PDF or text)
  • AI-generated skill roadmaps via Google Gemini 2.5 Flash
  • Dashboard with candidate pipeline overview (Total / Approved / Rejected / In Progress)
  • View detailed candidate profiles with roadmap and AI insights
  • Resubmit rejected candidate roadmaps for AI regeneration

πŸ§‘β€πŸ« Trainer Features

  • Dashboard with stats: Total / Pending / In Training / Completed
  • Review AI-generated roadmaps β†’ Approve or Reject with feedback
  • Track per-candidate progress with interactive task checklists
  • Mark individual tasks as complete / incomplete (toggle)
  • Download candidate CVs
  • Mark candidates as "Training Complete"

πŸ” Auth

  • Role-based registration and login (HR, trainer, manager)
  • JWT-based authentication with bcrypt password hashing

πŸ› οΈ Tech Stack

Layer Technology
Frontend React 19, React Router DOM v7, Vite, Tailwind CSS v4
Backend Node.js, Express.js v5
Database MongoDB (via Mongoose)
AI Google Gemini 2.5 Flash (@google/genai)
Auth JWT (jsonwebtoken), bcryptjs
File Handling Multer (resume uploads), pdf-parse
Validation Joi

πŸ“ Project Structure

SkillMatrixAI/
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ config/
β”‚   β”‚   └── db.js                   # MongoDB connection
β”‚   β”œβ”€β”€ controllers/
β”‚   β”‚   β”œβ”€β”€ authController.js        # Register & Login
β”‚   β”‚   β”œβ”€β”€ hrController.js          # HR operations (upload, dashboard, resubmit)
β”‚   β”‚   └── trainerController.js     # Trainer operations (review, tasks, complete)
β”‚   β”œβ”€β”€ middleware/
β”‚   β”‚   β”œβ”€β”€ auth.js
β”‚   β”‚   └── authMiddleware.js        # JWT protect & role authorization
β”‚   β”œβ”€β”€ models/
β”‚   β”‚   β”œβ”€β”€ Candidate.js             # Candidate schema
β”‚   β”‚   β”œβ”€β”€ Roadmap.js               # AI Roadmap schema
β”‚   β”‚   β”œβ”€β”€ User.js                  # User schema (HR / Trainer / Manager)
β”‚   β”‚   └── Comment.js               # Trainer comments schema
β”‚   β”œβ”€β”€ routes/
β”‚   β”‚   β”œβ”€β”€ authRoutes.js            # /api/auth
β”‚   β”‚   β”œβ”€β”€ hrRoutes.js              # /api/hr
β”‚   β”‚   └── trainerRoutes.js         # /api/trainer
β”‚   β”œβ”€β”€ services/
β”‚   β”‚   β”œβ”€β”€ aiService.js             # Gemini AI roadmap generation
β”‚   β”‚   └── resumeParser.js          # PDF text extraction
β”‚   β”œβ”€β”€ uploads/                     # Uploaded resume files
β”‚   β”œβ”€β”€ server.js                    # Express app entry point
β”‚   └── package.json
β”‚
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”‚   β”œβ”€β”€ HRLayout.jsx         # HR sidebar + outlet layout
β”‚   β”‚   β”‚   β”œβ”€β”€ TrainerLayout.jsx    # Trainer sidebar + outlet layout
β”‚   β”‚   β”‚   β”œβ”€β”€ Sidebar.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Navbar.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Footer.jsx
β”‚   β”‚   β”‚   └── CustomDropdown.jsx
β”‚   β”‚   β”œβ”€β”€ pages/
β”‚   β”‚   β”‚   β”œβ”€β”€ Landing.jsx          # Public landing page
β”‚   β”‚   β”‚   β”œβ”€β”€ Login.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Register.jsx
β”‚   β”‚   β”‚   β”œβ”€β”€ HRDashboard.jsx      # HR status & pipeline view
β”‚   β”‚   β”‚   β”œβ”€β”€ HRCandidateProfile.jsx # HR candidate detail + resubmit
β”‚   β”‚   β”‚   β”œβ”€β”€ UploadResumes.jsx    # Resume upload page
β”‚   β”‚   β”‚   β”œβ”€β”€ TrainerDashboard.jsx # Trainer main dashboard
β”‚   β”‚   β”‚   β”œβ”€β”€ RoadmapReview.jsx    # Approve/reject roadmap
β”‚   β”‚   β”‚   β”œβ”€β”€ Candidates.jsx       # All candidates list
β”‚   β”‚   β”‚   β”œβ”€β”€ CandidateDetail.jsx  # In-depth candidate + task tracker
β”‚   β”‚   β”‚   β”œβ”€β”€ AnalysisResults.jsx  # Enterprise analytics view
β”‚   β”‚   β”‚   └── Roadmap.jsx
β”‚   β”‚   β”œβ”€β”€ App.jsx                  # Routing configuration
β”‚   β”‚   β”œβ”€β”€ main.jsx
β”‚   β”‚   └── index.css
β”‚   β”œβ”€β”€ vite.config.js
β”‚   └── package.json
β”‚
β”œβ”€β”€ .gitignore
└── README.md

🏁 Getting Started

Prerequisites

  • Node.js >= 18
  • MongoDB (local or Atlas)
  • Google Gemini API Key

Backend Setup

# Navigate to backend
cd backend

# Install dependencies
npm install

# Create .env file (see Environment Variables section)
# Then start the server
node server.js

The backend will run on http://localhost:3000 by default.


Frontend Setup

# Navigate to frontend
cd frontend

# Install dependencies
npm install

# Create .env file (see Environment Variables section)
# Then start the dev server
npm run dev

The frontend will run on http://localhost:5173 by default.


πŸ” Environment Variables

backend/.env

PORT=3000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret_key
GEMINI_API_KEY=your_google_gemini_api_key

frontend/.env

VITE_API_BASE_URL=http://localhost:3000

⚠️ For production, set VITE_API_BASE_URL to your deployed backend URL.


πŸ“‘ API Reference

Auth Routes β€” /api/auth

Method Endpoint Description
POST /api/auth/register Register a new user (HR / Trainer / Manager)
POST /api/auth/login Login and receive a JWT token

HR Routes β€” /api/hr

Method Endpoint Description
GET /api/hr/dashboard Get HR dashboard stats and recent candidates
POST /api/hr/upload Upload a candidate resume (multipart/form-data)
GET /api/hr/candidate/:id Get a specific candidate's profile
POST /api/hr/candidate/:id/resubmit Resubmit a rejected candidate's roadmap for AI regeneration

Trainer Routes β€” /api/trainer

Method Endpoint Description
GET /api/trainer/dashboard Get trainer dashboard stats and roadmaps
GET /api/trainer/candidates Get all candidates list
GET /api/trainer/candidate/:id Get detailed candidate profile + comments
POST /api/trainer/roadmap/:id/review Approve or reject a roadmap ({ action: "APPROVE" | "REJECT", feedback })
POST /api/trainer/roadmap/:roadmapId/task/toggle Toggle a task's completion ({ phaseIndex, taskIndex })
POST /api/trainer/candidate/:id/complete Mark candidate training as complete
GET /api/trainer/candidate/:id/download-cv Download candidate's CV/resume

πŸ‘₯ User Roles & Workflow

HR uploads resume
      β”‚
      β–Ό
AI (Gemini) analyzes resume
β†’ Extracts: name, email, role, skills, experience, projects
β†’ Generates: 3–4 phase training roadmap
      β”‚
      β–Ό
Roadmap stored in DB (status: PENDING)
      β”‚
      β–Ό
Trainer reviews roadmap
  β”œβ”€β”€ APPROVE β†’ Candidate moves to training
  └── REJECT  β†’ HR can resubmit for AI regeneration
      β”‚
      β–Ό
Trainer tracks tasks (toggle complete/incomplete)
      β”‚
      β–Ό
Trainer marks candidate as COMPLETED

πŸ€– AI Integration

SkillMatrixAI uses Google Gemini 2.5 Flash to:

  1. Parse resumes β€” extract structured candidate information (name, email, role, skills, experience, projects)
  2. Generate roadmaps β€” create a personalized 3–4 phase learning roadmap based on the candidate's profile
  3. Resubmit roadmaps β€” regenerate a new roadmap for rejected candidates using their existing profile data

A built-in demo fallback is provided for when the Gemini API is unavailable (e.g., quota exceeded), ensuring the platform remains functional during demos and hackathons.


🀝 Contributing

Built by Qubit Coderz πŸš€

Pull requests are welcome! For major changes, please open an issue first to discuss what you would like to change.


Made with ❀️ by Qubit Coderz

About

End-to-end AI-driven hiring and training platform that transforms resumes into structured skill roadmaps, helping organizations efficiently bridge the gap between hiring and upskilling.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors