Skip to content

Latest commit

 

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Placement-Pro

Placement-Pro is an AI-assisted career application platform built to help job seekers improve resume quality, measure role fit, generate recruiter outreach, and track application activity in one workflow.

This project started as a set of resume tools and was gradually shaped into a more product-focused experience with separate ATS checking, JD matching, cold email generation, bullet improvement, and application history.

Highlights

  • Built a full-stack AI product around a real job-search workflow instead of isolated generators
  • Separated ATS checking from JD matching to reflect two different user problems
  • Moved AI prompt logic from the frontend into protected backend routes
  • Added authenticated application history to support repeated usage and future product scaling
  • Designed the backend to run locally and in a Vercel-style deployment setup

What Problem It Solves

Many candidates apply with the same resume to every role and do not know:

  • whether their resume is ATS-friendly
  • how well their resume matches a specific job description
  • what keywords or skills are missing
  • how to write better project bullets
  • how to send a stronger recruiter outreach email

Placement-Pro addresses those gaps with a guided application workflow instead of isolated utilities.

Current Product Scope

Phase 1 features implemented:

  • ATS Resume Checker Evaluates general resume quality, structure, and ATS readiness
  • JD Matching Tool Compares a resume against a target job description and returns match score, missing keywords, and advice
  • Cold Email Generator Creates a personalized recruiter outreach email using resume and job context
  • Bullet Improvement Converts rough project descriptions into stronger resume-ready bullet points
  • Application History Saves ATS checks, JD matches, email drafts, and bullet improvement activity per user

Key Technical Decisions

  • AI prompt logic is handled in the backend, not the frontend
  • Gemini API is used through protected Express routes
  • JWT-based authentication protects personalized features and saved history
  • MongoDB stores user data and application activity history
  • The backend is structured to run both locally and on Vercel

Tech Stack

  • Frontend: React, React Router, Axios, Tailwind CSS
  • Backend: Node.js, Express, MongoDB, Mongoose, JWT, Multer, pdf-parse
  • AI: Gemini API
  • Deployment: Vercel-ready backend setup with env-based CORS configuration

Main User Flow

  1. User signs up or logs in
  2. User checks resume with the ATS Resume Checker
  3. User compares the same resume with a specific job in the JD Matching Tool
  4. User improves project bullets if needed
  5. User generates a recruiter cold email
  6. All major actions are stored in Application History

Architecture Overview

frontend/
  React client
  protected routes
  feature pages for ATS, JD match, email, bullets, history

backend/
  Express API
  auth routes
  AI routes
  Gemini-based controller logic
  MongoDB models

Core API Endpoints

All AI endpoints require authentication.

  • POST /api/resume/ats-check
  • POST /api/resume/jd-match
  • POST /api/email/generate
  • POST /api/bullets/generate
  • GET /api/auth/history
  • GET /api/auth/profile
  • PUT /api/auth/profile

Environment Variables

Create backend/.env with:

PORT=8000
MONGODB_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
GEMINI_API_KEY=your_gemini_api_key
GEMINI_MODEL=gemini-2.5-flash
CORS_ORIGINS=http://localhost:3000,https://your-frontend-domain.vercel.app

Run Locally

Backend

cd backend
npm install
npm start

For development with auto-reload:

cd backend
npm run dev

Frontend

cd frontend
npm install
npm start

If needed, set REACT_APP_API_URL in the frontend environment.

Why This Project Is Worth Reviewing

  • It reflects product thinking, not just API integration
  • It separates general ATS checking from role-specific JD matching
  • It stores user activity to support repeat usage and future product expansion
  • It moves AI business logic to the backend instead of exposing prompts in the client
  • It demonstrates full-stack work across authentication, AI integration, stateful workflows, and deployment concerns

Challenges Solved

  • Refactored the project from frontend-owned prompt generation to backend-owned AI orchestration
  • Split one overloaded analysis tool into two clearer product features: ATS checking and JD matching
  • Added shared history tracking across multiple AI features instead of storing only scan scores
  • Updated backend startup and CORS handling to better support both local development and deployment
  • Reworked the project from a tool collection into a more realistic user journey

What I Would Improve Next

  • Create a dedicated Application model instead of relying only on activity history
  • Add resume versioning for different job applications
  • Add background jobs and queueing for heavier AI and document-processing tasks
  • Introduce usage limits, analytics, and plan-based feature controls
  • Build recruiter or placement-cell dashboards for a stronger B2B use case

Next Product Steps

If extended further, the strongest next additions would be:

  • saved applications as first-class records
  • resume versioning per job
  • interview question generation from a JD
  • recruiter dashboard or placement-cell analytics
  • usage limits and subscription plans

About

A full-stack AI-powered resume analysis platform that evaluates resumes, provides ATS optimization suggestions, and helps users improve their chances of getting shortlisted for jobs.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages