SmartHR is a full-stack Human Resource Management System designed to streamline recruitment using AI-powered resume parsing, analytics, and automated workflows. It features a modern React frontend and a robust Express/MongoDB backend.
- Authentication & Authorization: JWT-based auth with RBAC (Admin, Manager, HR Recruiter, Employee)
- AI Resume Parsing: Automatic resume analysis using NLP and ML
- AI Video Interview: Conduct and record video interviews, with AI-powered analysis
- Interview Recording & Upload: Secure video/audio recording and upload to cloud
- Face Expression Detection: Analyze candidate facial expressions during interviews
- Eye Tracking: Detect candidate attention and engagement using webcam
- Transcript Generation: Automatic transcription of interview recordings
- Text-to-Speech (TTS): TTS features for accessibility and interview playback
- Intelligent Candidate Screening: ML-powered analytics and matching
- Email Integration: Automated notifications via Nodemailer
- Smart Search: Advanced filtering and search
- Analytics Dashboard: Recruitment metrics and insights
- Role-Based Access: Custom permissions for each user type
- Job Management: Create, update, and manage job postings
- Application Management: Submit and track job applications
- Resume Management: Upload, parse, and view resumes
- User Management: Admin and HR controls for users
- Cloud Uploads: Cloudinary integration for file storage
- Notifications: Automated email and dashboard notifications
- OAuth Login: Google and LinkedIn login support
- Frontend: React (Vite), Tailwind CSS, face-api.js, recharts
- Backend: Express.js, MongoDB (Mongoose), OpenAI, HuggingFace, PDF-Parse, Mammoth, Natural, Nodemailer
- Security: Helmet, rate limiting, XSS protection, JWT, bcrypt
- Other: Cloudinary (file uploads), Multer, Passport.js
HRMS/
├── backend/
│ ├── config/
│ ├── controllers/
│ ├── middleware/
│ ├── models/
│ ├── routes/
│ ├── services/
│ ├── utils/
│ ├── uploads/
│ ├── logs/
│ ├── scripts/
│ ├── server.js
│ └── package.json
├── frontend/
│ ├── public/
│ ├── src/
│ │ ├── assets/
│ │ ├── components/
│ │ ├── config/
│ │ ├── context/
│ │ ├── hooks/
│ │ ├── services/
│ │ └── App.jsx, main.jsx, etc.
│ ├── index.html
│ └── package.json
└── README.md
- Install dependencies
cd backend npm install - Configure environment
- Copy
.env.exampleto.env - Set required variables:
MONGODB_URI=mongodb://localhost:27017/hrms JWT_SECRET=your-secret-key EMAIL_USER=your-email EMAIL_PASS=your-password OPENAI_API_KEY=your-openai-key
- Copy
- Start MongoDB
- Local:
net start MongoDB - Or use MongoDB Atlas (update
MONGODB_URI)
- Local:
- Seed database
npm run seed
- Start server
npm run dev # or for production npm start
- Install dependencies
cd frontend npm install - Start development server
npm run dev
- Configure API URL
- Set
VITE_API_URLin.env(frontend) to match backend
- Set
See backend/API_DOCUMENTATION.md for full details.
Authentication
POST /api/v1/auth/register– Register userPOST /api/v1/auth/login– LoginGET /api/v1/auth/logout– LogoutGET /api/v1/auth/me– Current user
Jobs
GET /api/v1/jobs– List jobsPOST /api/v1/jobs– Create job
Applications
POST /api/v1/applications– Submit application
Resumes
POST /api/v1/resumes/upload– Upload resumePOST /api/v1/resumes/parse– AI parse resume
Analytics
- `GET /api
- Admin: Full access
- Manager: Manage jobs, view analytics
- HR Recruiter: Process applications, screen candidates
- Employee: View jobs, submit applications
- Fork the repository
- Create a feature branch
- Commit your changes
- Open a pull request
MIT
For more details, see individual README.md files in backend/ and frontend/.