An AI-powered resume builder that automatically tailors your resume to any job description using semantic matching and intelligent content optimization.
- 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
┌─────────────────────────────────────────────────────────────────┐
│ 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
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────────────────────────┘
- React 18 + TypeScript
- Tailwind CSS
- React Router
- Vite
- FastAPI
- PostgreSQL with pgvector
- OpenAI GPT-4
- LaTeX (pdflatex)
- Node.js 18+
- Python 3.11+
- PostgreSQL 15+ with pgvector
- LaTeX distribution (TeX Live)
- OpenAI API key
# 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 devresume-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
| 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 |
- Select Job - Choose a target job description
- Analyze - AI extracts requirements and skills
- Gap Analysis - Compare your experience to requirements
- Tailor Content - AI selects and ranks relevant bullets
- Generate - Create LaTeX resume and compile to PDF
DATABASE_URL=postgresql://user:pass@localhost/resume_engine
OPENAI_API_KEY=sk-...
SECRET_KEY=your-jwt-secret
ENVIRONMENT=developmentVITE_API_URL=http://localhost:8000/api
VITE_APP_ENV=developmentSee detailed documentation:
MIT