TalentBridge is an advanced, full-stack recruiter-and-candidate matching portal. It streamlines job posting, candidate discovery, multi-stage application pipelines, and real-time communication.
- Core Features
- Tech Stack
- Images
- Architecture Overview
- Interactive API Docs (Swagger)
- Environment Configuration
- Setup & Installation
- API Management System
- Candidates: Build profile, upload resumes, browse jobs with filters, submit applications, check application status history, and chat in real-time with recruiters.
- Recruiters: Post/manage job listings, search candidates using robust filters, track applications, update candidate statuses, download resumes, and instantly initiate chat with applicants.
- Integrated with Google's latest Gemini AI model (
gemini-2.5-flash). - Automatically parses uploaded candidate PDF resumes upon application submission.
- Scores the match profile from
0to100against the job description and required skills.
- Audit Trails: Every stage of an application (
screening,interviewing,offered,hired,rejected) is logged in a persistent history log recording who, when, and why.
- Real-time notifications push application status updates instantly using Socket.IO.
- Supports fully-featured, instantaneous 1:1 text chat sessions including technical OA links and interview invites.
- Fully self-documenting REST API with schema specifications and live "Try it out" capabilities.
- Frontend: React 19, Vite 8, React Router DOM v7, Axios, Socket.io-client.
- Backend: Node.js, Express.js (v5), Mongoose, Socket.io, Multer, PDF-Parse,
@google/genaiSDK. - Database: MongoDB.
- Containerization: Docker Compose (multi-container setup with hot-reloading).
Visualization of the software - HomePage, Recruiter's POV, Candidate's POV:
- HomePage:
-
Register your account:
-
Recruiter Dashboard page:
-
Recruiter- Post a job:
-
Candidate search for Recruiters:
-
Recruiter Profile page:
-
Candidate Dashboard:
-
Candidate Applications page:
-
Candidate Profile page:
graph TD
Client[React Frontend - Port 5173] <-->|HTTP / Websockets| Server[Express Backend - Port 5000]
Server <-->|dotenv| Env[.env Configuration]
Server <-->|Mongoose ODM| DB[(MongoDB Database)]
Server <-->|Google GenAI SDK| Gemini[Gemini 2.5 Flash API]
Server <-->|Socket.IO| Realtime[Real-time Events & Live Chat]
Server --->|Swagger UI| API_Docs[Interactive Docs /api-docs]
The server exposes a production-ready interactive Swagger/OpenAPI 3.0 documentation portal. You can browse all endpoints, view detailed request/response schemas, and execute live calls (using JWT Bearer tokens).
- API Docs URL:
http://localhost:5000/api-docs
Create a .env file in the server/ directory and configure the following variables:
# Server Port (Defaults to 5000)
PORT=5000
# MongoDB URI (Atlas cloud or local container)
MONGO_URI=mongodb+srv://<username>:<password>@cluster0.mongodb.net/talentbridge
# JWT Secret (For signing authentication tokens)
JWT_SECRET=your_super_secure_random_key_here
# Google Gemini API Key (For AI resume match scoring)
GOOGLE_API_KEY=your_gemini_api_key_hereTo load your .env variables into the Docker services, ensure env_file is defined in your docker-compose.yml:
server:
env_file:
- ./server/.envEnsure you have Docker (or Node.js v20+ and MongoDB) installed.
This runs the entire stack inside containers with hot-reloading enabled. Dependencies are isolated automatically.
- Ensure your backend environment file exists at
./server/.env(see config below). - Start the multi-container stack:
docker compose up -d
- The services will boot up:
- Frontend Application: http://localhost:5173
- Backend API server: http://localhost:5000
- Swagger Portal: http://localhost:5000/api-docs
To stop the containers:
docker compose down# Install server dependencies
cd server && npm install
# Install client dependencies
cd ../client && npm installStart the backend server:
cd server
npm startStart the frontend application (in a new terminal):
cd client
npm run devTo keep standard API configurations clean, the frontend keeps a single source of truth for endpoints, avoiding hardcoded values scattered in code:
- Endpoint Mapping: client/src/api.json contains all route configurations and HTTP methods.
- Axios Provider: client/src/services/api.js exports the interceptor instance, handles JWT injection, and exposes typed functions for all endpoints.