Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

: RESUMEAI :

🤖 AI Resume Analyser Web Application:

A portfolio-grade full-stack application that ingests a PDF resume and a job description, runs them through an AI pipeline (Google Gemini 1.5 Flash + embeddings), and returns a match score, skill gap analysis, AI-powered insights, and an auto-improved resume with diff view.


✨ Features

Feature Description
Match Score Composite score: 60% semantic (embeddings) + 40% keyword coverage
Skill Gap Analysis Exact skills you're missing vs. skills you have
Radar Chart Visual comparison across 5 dimensions
AI Insights Gemini-powered strengths, suggestions, assessment
Resume Rewrite ATS-optimised rewrite tailored to the job
Diff View Side-by-side word-level diff of original vs improved

🏗️ Architecture

frontend/   → React + Vite (port 5173)
backend/    → Node.js + Express (port 5000)
PostgreSQL  → Optional (pgvector for embeddings) — in-memory fallback if not set
Gemini API  → Gemini 1.5 Flash + text-embedding-004

🚀 Quick Start

Prerequisites

1. Clone

git clone <repo-url>
cd ai-resume-analyser

2. Backend Setup

cd backend
cp .env.example .env
# Edit .env — add your GEMINI_API_KEY
npm install
npm run dev
# Server starts on http://localhost:5000

3. Frontend Setup

cd frontend
npm install
npm run dev
# App opens on http://localhost:5173

4. Optional: PostgreSQL + pgvector

If you want persistent storage:

  1. Create a PostgreSQL database (local or Neon)
  2. Install pgvector: CREATE EXTENSION vector;
  3. Run the schema: psql $DATABASE_URL -f backend/src/db/schema.sql
  4. Set DATABASE_URL in backend/.env

🌍 Environment Variables

backend/.env

Variable Required Default Description
GEMINI_API_KEY ✅ Yes Your Gemini API key
GEMINI_MODEL No gemini-1.5-flash Generative model
GEMINI_EMBEDDING_MODEL No text-embedding-004 Embedding model
PORT No 5000 Backend port
CLIENT_ORIGIN No http://localhost:5173 Frontend URL (for CORS)
DATABASE_URL No PostgreSQL connection string

📡 API Reference

Method Endpoint Description
GET /health Health check
POST /api/resume/upload Upload PDF resume (multipart/form-data)
POST /api/resume/improve Generate improved resume
POST /api/job/submit Submit job description text
POST /api/analysis/match Run match analysis

🗂️ Project Structure

ai-resume-analyser/
├── backend/
│   ├── src/
│   │   ├── app.js              # Express app
│   │   ├── server.js           # Entry point
│   │   ├── config/env.js       # Env config
│   │   ├── routes/             # API routes
│   │   ├── controllers/        # Request handlers
│   │   ├── services/
│   │   │   ├── pdfParser.js    # PDF text extraction
│   │   │   ├── llm.js          # OpenAI prompts
│   │   │   ├── embeddings.js   # Embedding generation
│   │   │   └── matcher.js      # Cosine similarity + scoring
│   │   ├── db/
│   │   │   ├── index.js        # PostgreSQL pool
│   │   │   └── schema.sql      # DB schema (pgvector)
│   │   └── utils/             # Logger, errorHandler
│   └── package.json
├── frontend/
│   ├── src/
│   │   ├── pages/              # Home, Analyze, Results
│   │   ├── components/         # UploadResume, JobInput, etc.
│   │   ├── hooks/useApi.js     # Axios hook
│   │   └── utils/formatters.js # Score utilities
│   └── package.json
└── README.md

🚢 Deployment

Backend → Render

  1. Connect repo → New Web Service
  2. Root directory: backend
  3. Start command: npm start
  4. Add environment variables in Render dashboard

Frontend → Vercel

  1. Connect repo → New Project
  2. Root directory: frontend
  3. Build command: npm run build
  4. Set VITE_API_URL to your Render backend URL

Database → Neon

  1. Create a Neon project (free tier available)
  2. Enable pgvector: CREATE EXTENSION vector;
  3. Run backend/src/db/schema.sql
  4. Set DATABASE_URL in Render env vars

🛠️ Tech Stack

Layer Technology
Frontend React 18, Vite, React Router, Recharts, react-diff-viewer
Backend Node.js, Express, Multer, pdf-parse
AI Google Gemini 1.5 Flash, text-embedding-004
Database PostgreSQL + pgvector (optional)
Styling Vanilla CSS (design system with CSS variables)

📄 License

MIT

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages