Skip to content

Dynamic resume engine with vector embeddings, semantic matching, and automated ATS optimization using OpenAI GPT-4 and LaTeX

Notifications You must be signed in to change notification settings

shankerram3/resume-maker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dynamic Resume Engine

An AI-powered resume builder that automatically tailors your resume to any job description using semantic matching and intelligent content optimization.

Features

  • Smart Bullet Matching: Automatically matches your experience bullets to job requirements using vector embeddings
  • Gap Analysis: Identifies missing skills and provides recommendations
  • ATS Optimization: Generates resumes optimized for Applicant Tracking Systems
  • Professional LaTeX Output: High-quality PDF generation with customizable templates
  • Cover Letter Generation: AI-assisted cover letters tailored to each position

Architecture

┌─────────────────────────────────────────────────────────────────┐
│                         Frontend (React)                         │
│  ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────┐ │
│  │Dashboard │ │ Profile  │ │Experience│ │   Jobs   │ │Generate│ │
│  └──────────┘ └──────────┘ └──────────┘ └──────────┘ └────────┘ │
└─────────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────────┐
│                        Backend (FastAPI)                         │
│  ┌────────────────┐ ┌────────────────┐ ┌────────────────┐       │
│  │ ProcessorSvc   │ │ OptimizerSvc   │ │ TailoredSvc    │       │
│  │ - Extract meta │ │ - Enhance text │ │ - Match skills │       │
│  │ - Parse bullets│ │ - Add metrics  │ │ - Rank content │       │
│  └────────────────┘ └────────────────┘ └────────────────┘       │
│  ┌────────────────┐                                              │
│  │ GeneratorSvc   │                                              │
│  │ - LaTeX render │                                              │
│  │ - PDF compile  │                                              │
│  └────────────────┘                                              │
└─────────────────────────────────────────────────────────────────┘
                              │
                              ▼
┌─────────────────────────────────────────────────────────────────┐
│                    Database (PostgreSQL)                         │
│  ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐            │
│  │ profiles │ │experience│ │  skills  │ │   jobs   │   + pgvector
│  └──────────┘ └──────────┘ └──────────┘ └──────────┘            │
└─────────────────────────────────────────────────────────────────┘

Tech Stack

Frontend

  • React 18 + TypeScript
  • Tailwind CSS
  • React Router
  • Vite

Backend

  • FastAPI
  • PostgreSQL with pgvector
  • OpenAI GPT-4
  • LaTeX (pdflatex)

Quick Start

Prerequisites

  • Node.js 18+
  • Python 3.11+
  • PostgreSQL 15+ with pgvector
  • LaTeX distribution (TeX Live)
  • OpenAI API key

Installation

# Clone the repository
git clone <repo-url>
cd resume-engine

# Backend setup
cd backend
python -m venv venv
source venv/bin/activate  # or venv\Scripts\activate on Windows
pip install -r requirements.txt

# Set environment variables
cp .env.example .env
# Edit .env with your configuration

# Frontend setup
cd ../frontend
npm install
cp .env.example .env

# Start development servers
# Terminal 1 - Backend
cd backend && uvicorn app.main:app --reload

# Terminal 2 - Frontend
cd frontend && npm run dev

Project Structure

resume-engine/
├── backend/
│   ├── app/
│   │   ├── core/          # Configuration, security
│   │   ├── models/        # SQLAlchemy models
│   │   ├── routes/        # API endpoints
│   │   ├── services/      # Business logic
│   │   └── templates/     # LaTeX templates
│   └── requirements.txt
├── frontend/
│   ├── src/
│   │   ├── components/    # UI components
│   │   ├── context/       # React context
│   │   ├── hooks/         # Custom hooks
│   │   ├── pages/         # Route pages
│   │   ├── services/      # API client
│   │   └── types/         # TypeScript types
│   └── package.json
└── docs/
    └── ARCHITECTURE.md    # Detailed architecture

API Overview

Endpoint Description
POST /api/auth/register User registration
POST /api/auth/login Get JWT token
GET /api/profile Get user profile
GET /api/experiences List work experiences
POST /api/experiences/{id}/process Extract metadata with AI
GET /api/jobs List job descriptions
POST /api/jobs/{id}/analyze Analyze job requirements
POST /api/generate/gap-analysis Analyze skill gaps
POST /api/generate/resume Generate tailored resume

Resume Generation Flow

  1. Select Job - Choose a target job description
  2. Analyze - AI extracts requirements and skills
  3. Gap Analysis - Compare your experience to requirements
  4. Tailor Content - AI selects and ranks relevant bullets
  5. Generate - Create LaTeX resume and compile to PDF

Configuration

Backend Environment Variables

DATABASE_URL=postgresql://user:pass@localhost/resume_engine
OPENAI_API_KEY=sk-...
SECRET_KEY=your-jwt-secret
ENVIRONMENT=development

Frontend Environment Variables

VITE_API_URL=http://localhost:8000/api
VITE_APP_ENV=development

Development

See detailed documentation:

License

MIT

About

Dynamic resume engine with vector embeddings, semantic matching, and automated ATS optimization using OpenAI GPT-4 and LaTeX

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •