Skip to content

devanshibhatt23/TalentBridge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TalentBridge Portal

Node.js Version Express.js React Version Vite MongoDB Docker OpenAPI

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.

  • Video for software visualization:

    YouTube


Table of Contents

  1. Core Features
  2. Tech Stack
  3. Images
  4. Architecture Overview
  5. Interactive API Docs (Swagger)
  6. Environment Configuration
  7. Setup & Installation
  8. API Management System

Core Features

Dual-Portal Roles (RBAC)

  • 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.

AI-Powered Resume Scoring

  • 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 0 to 100 against the job description and required skills.

Optimistic Concurrency Control & Audit Trails

  • 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 Socket Notifications & Chat

  • 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.

Interactive Swagger OpenAPI

  • Fully self-documenting REST API with schema specifications and live "Try it out" capabilities.

Tech Stack

  • 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/genai SDK.
  • Database: MongoDB.
  • Containerization: Docker Compose (multi-container setup with hot-reloading).

Images

Visualization of the software - HomePage, Recruiter's POV, Candidate's POV:

  • HomePage:
Screenshot 2026-05-31 at 10 27 15 AM
  • Register your account:

    Screenshot 2026-05-31 at 10 27 37 AM
  • Recruiter Dashboard page:

    Screenshot 2026-05-31 at 10 27 53 AM
  • Recruiter- Post a job:

    Screenshot 2026-05-31 at 10 28 06 AM
  • Candidate search for Recruiters:

    Screenshot 2026-05-31 at 10 28 17 AM
  • Recruiter Profile page:

    Screenshot 2026-05-31 at 10 28 29 AM
  • Candidate Dashboard:

    Screenshot 2026-05-31 at 10 28 41 AM
  • Candidate Applications page:

    Screenshot 2026-05-31 at 10 28 55 AM
  • Candidate Profile page:

    Screenshot 2026-05-31 at 10 29 07 AM

Architecture Overview

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]
Loading

Interactive API Docs (Swagger)

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

Environment Configuration

Backend Setup (server/.env)

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_here

Docker compose Integration

To load your .env variables into the Docker services, ensure env_file is defined in your docker-compose.yml:

  server:
    env_file:
      - ./server/.env

Setup & Installation

Ensure you have Docker (or Node.js v20+ and MongoDB) installed.

Method A: Docker Compose (Recommended)

This runs the entire stack inside containers with hot-reloading enabled. Dependencies are isolated automatically.

  1. Ensure your backend environment file exists at ./server/.env (see config below).
  2. Start the multi-container stack:
    docker compose up -d
  3. The services will boot up:

To stop the containers:

docker compose down

Method B: Local Setup (Manual)

1. Install Dependencies

# Install server dependencies
cd server && npm install

# Install client dependencies
cd ../client && npm install

2. Run the Applications

Start the backend server:

cd server
npm start

Start the frontend application (in a new terminal):

cd client
npm run dev

API Management System

To 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.

About

TalentBridge is a AI-powered hiring platform that seamlessly connects job seekers and recruiters through a dual-portal experience. Candidates can build profiles, upload resumes, browse and apply for jobs, while recruiters can post listings, search candidates with advanced filters, and manage multi-stage hiring pipelines.

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages