An integrated technical recruitment platform for Candidates, Recruiters, and Freelance Interviewers. Procruit features advanced AI-powered CV parsing, candidate ranking, and a robust AI Proctoring microservice to ensure interview integrity.
| Layer | Technology |
|---|---|
| Frontend | React 19, Vite, TailwindCSS |
| Backend | Node.js, Express 5, MongoDB Atlas |
| AI Service | Python, FastAPI, spaCy, SentenceTransformers, pdfplumber, scikit-learn |
| Proctoring Service | Python, FastAPI, WebSockets, OpenCV, MediaPipe, NumPy |
- Node.js: v18+
- Python: 3.10+
- npm: (ships with Node.js)
npm installcd server
npm install
cd ..The AI Evaluation service uses an LLM. You must install Ollama locally to run the model.
- Download and install Ollama from ollama.com
- Pull the required model:
ollama pull llama3(orphi3if your RAM is limited to 8GB) - Ensure the Ollama server is running (usually automatic on startup).
Create and activate a virtual environment, then install the Python dependencies:
cd ai-service
python -m venv venv
# Windows
.\venv\Scripts\pip install -r requirements.txt
.\venv\Scripts\python -m spacy download en_core_web_sm
# macOS/Linux
# source venv/bin/activate
# pip install -r requirements.txt
# python -m spacy download en_core_web_sm
cd ..Create and activate a virtual environment, then install the dependencies for real-time video/audio proctoring:
cd proctoring-service
python -m venv venv
# Windows
.\venv\Scripts\pip install -r requirements.txt
# macOS/Linux
# source venv/bin/activate
# pip install -r requirements.txt
cd ..Note: Ensure the required MediaPipe model file (face_landmarker.task) is present in the root of the proctoring-service directory before running the application.
You need to set up environment variables for the application to function correctly.
- Backend (
server/.env) Create a.envfile inside theserver/directory:
PORT=5001
MONGO_URI=mongodb://<username>:<password>@<cluster-url>/procruit?...
STRIPE_SECRET_KEY=sk_test_...- Frontend (
.env.local) Create a.env.localfile inside the root directory:
GEMINI_API_KEY=your_gemini_api_keyFrom the project root, you can start all five services simultaneously with a single command:
npm run devThis concurrently launches the following services (color-coded in terminal):
| Service | Address / Port | Color | Description |
|---|---|---|---|
| Frontend (Vite) | http://localhost:3000 |
Cyan | Main React application |
| Backend (Express) | http://localhost:5001 |
Green | Core REST API and Socket.io server |
| AI Service (FastAPI) | http://localhost:8000 |
Magenta | CV parsing, candidate ranking, and AI interview evaluation (Ollama) |
| Proctoring Service (FastAPI) | http://localhost:8001 |
Yellow | WebSocket server for real-time video/gaze proctoring |
| Ollama | http://localhost:11434 |
Blue | Local LLM server (auto-starts, graceful skip if not installed) |
procruit/
├── ai-service/ Python FastAPI microservice (CV Parsing & AI)
│ ├── main.py
│ ├── requirements.txt
│ └── venv/
├── proctoring-service/ Python FastAPI microservice (AI Proctoring & WebSockets)
│ ├── main.py
│ ├── requirements.txt
│ └── venv/
├── components/ React UI components
├── pages/ React page components
├── server/ Node.js/Express backend
│ ├── controllers/
│ ├── models/
│ ├── routes/
│ └── index.js
├── utils/ Shared frontend utilities
├── App.tsx React app entry
├── vite.config.ts Vite configuration (contains proxy settings for API/WS)
└── package.json Root scripts (concurrent dev) & frontend deps
For any help or queries, You can contact us: usmannaeem350@gmail.com ahmedafzal25@gmail.com