An AI-powered, bias-aware recruitment platform that automates resume screening, candidate matching, AI-driven interviews, and fairness auditing — built with Flask, MongoDB, and modern ML/NLP libraries.
- AI Resume Parsing — Automated extraction of skills, experience, and qualifications from PDF/DOCX resumes using NLP (spaCy, PyPDF2, pdfplumber)
- ML Candidate Matching — Semantic job-candidate matching with Sentence-BERT and scikit-learn, with separate scoring models for freshers and experienced candidates
- AI Interviews — Dynamic AI-generated interview questions with real-time evaluation (v1 & v2 engines)
- Fairness & Bias Prevention — Multi-layered fairness engine using Fairlearn, with AIF360 microservice integration, demographic parity monitoring, and explainability reporting
- GDPR Compliance — Data Subject Request (DSR) handling, PII anonymization, and comprehensive audit logging
- Role-Based Access Control — Candidate, Company, and Admin portals with RBAC, rate limiting, and encryption
- Real-Time Communication — WebSocket support for live video interviews and notifications
- Email Workflow — Transactional emails via Brevo SMTP with customizable templates and opt-in/out preferences
- Analytics Dashboard — Hiring analytics, scoring audit trails, and compliance dashboards
- Multi-Platform Deployment — Docker Compose, Railway, Render, Fly.io, Vercel, Netlify, and Electron desktop app
| Layer | Technology |
|---|---|
| Backend API | Python 3.10, Flask 3.0, Gunicorn, Eventlet |
| Database | MongoDB 7.0 (PyMongo) |
| Cache / Queue | Redis 7, Celery 5.3, Flower |
| Frontend | Vanilla HTML/CSS/JS (served by Flask) |
| Desktop App | Electron (Node.js) |
| ML/NLP | scikit-learn, Sentence-Transformers, PyTorch, spaCy, Fairlearn |
| Fairness Service | Standalone Flask microservice (AIF360) |
| ML Service | Standalone Flask microservice |
| Auth | Flask-JWT-Extended, Flask-Bcrypt, Google OAuth, LinkedIn OAuth |
| Brevo SMTP | |
| Monitoring | Sentry SDK, Flower |
| CI/CD | GitHub Actions |
smart_hiring/
├── app.py # Root entry point (imports from backend)
├── backend/ # Core Flask application
│ ├── app.py # App factory (create_app)
│ ├── routes/ # 14+ API blueprint modules
│ ├── services/ # 24 service modules (AI, ML, email, fairness...)
│ ├── models/ # MongoDB data models
│ ├── security/ # Encryption, RBAC, rate limiting, file security
│ ├── middleware/ # Rate limiter middleware
│ ├── matching/ # Decision engine, scoring, eligibility
│ ├── utils/ # Caching, monitoring, sanitization, Swagger
│ ├── workers/ # Background job processors
│ ├── tasks/ # Celery async tasks
│ ├── scripts/ # DB init & seed scripts
│ └── tests/ # Backend unit tests
├── frontend/ # Static HTML/CSS/JS frontend
│ ├── index.html # Main entry page
│ ├── app.js # Core SPA routing
│ ├── api.js # API client
│ └── ... # Admin, candidate, company portals
├── aif360-service/ # Standalone fairness analysis microservice
├── ml-service/ # Standalone ML microservice
├── config/ # App & scoring configuration
├── deploy/ # Docker deployment configs
├── desktop/ # Electron desktop app
├── scripts/ # Utility & build scripts
├── tests/ # Integration & system tests
├── build_scripts/ # PowerShell build automation
├── doc_generator/ # Documentation generation tools
├── ppt_generator/ # Presentation generation tools
├── netlify/functions/ # Netlify serverless functions
├── docs/ # Essential project documentation
│ ├── SECURITY.md
│ └── API_DOCUMENTATION.md
├── .github/workflows/ # CI/CD pipelines
├── docker-compose.yml # Full-stack Docker orchestration
├── Dockerfile # Main Docker image
├── requirements.txt # Python dependencies
├── .env.example # Environment variable template
└── .gitignore # Git exclusion rules
- Python 3.10+
- MongoDB 7.0+ (local or MongoDB Atlas)
- Redis 7+ (for Celery task queue)
- Node.js 18+ (only if building the Electron desktop app)
git clone https://github.com/arjunkumar010001-cmd/smart.git
cd smart# Create and activate virtual environment
python -m venv .venv
# Windows
.venv\Scripts\activate
# macOS/Linux
source .venv/bin/activate
# Install dependencies
pip install -r requirements.txt# Copy the template and fill in your values
cp .env.example .envAt minimum, set these in .env:
SECRET_KEY— Flask secret key (32+ characters)JWT_SECRET_KEY— JWT signing key (32+ characters)MONGODB_URI— MongoDB connection stringSMTP_*— Email configuration (Brevo recommended)
See .env.example for all available options.
python -m backend.scripts.init_db# Development
flask run --debug
# Production (via Gunicorn)
gunicorn --worker-class eventlet -w 1 -b 0.0.0.0:5000 app:appThe app will be available at http://localhost:5000.
docker-compose up --buildThis starts the backend, MongoDB, Redis, and Celery worker.
# Run all tests
pytest
# Run specific test suite
pytest tests/test_api.py
pytest backend/tests/See docs/API_DOCUMENTATION.md for the full API reference.
Key API prefixes:
/api/auth— Authentication & OAuth/api/jobs— Job management/api/candidates— Candidate operations/api/ai-interview— AI interview engine/api/assessments— Skills assessments/api/dashboard— Analytics/api/admin— Administration/api/audit— Fairness audits/api/dsr— GDPR data requests
The project supports multiple deployment targets:
| Platform | Config File |
|---|---|
| Docker Compose | docker-compose.yml |
| Railway | railway.json, Procfile |
| Render | render.yaml |
| Fly.io | fly.toml |
| Vercel | vercel.json |
| Netlify | netlify.toml |
| Google Cloud Build | cloudbuild.yaml |
See docs/SECURITY.md for security policies and vulnerability reporting.
Key security features:
- JWT-based authentication with token refresh
- Role-Based Access Control (RBAC)
- Data encryption at rest
- Input sanitization and XSS prevention
- Rate limiting per endpoint
- Secure file upload validation
- CORS policy enforcement
- Security headers (HSTS, CSP, X-Frame-Options)
This project is licensed under the terms specified in the LICENSE file.