Skip to content

Indemmity/ResumeBuilder

Repository files navigation

Resume Shapeshifter

A JD-to-resume tailoring engine that produces truthful, targeted resume rewrites with match scoring, gap analysis, and side-by-side PDF proof artifacts. Built with Next.js, Groq AI, and TypeScript.

Features

  • Match Scoring — 0–100 score across skills, responsibilities, keywords, and seniority alignment
  • Smart Rewriting — AI rewrites bullets to emphasize JD-relevant skills with explainable change reasons
  • Gap Analysis — Identifies missing skills and qualifications grouped by high/medium/low importance
  • Guardrails — Truthfulness checks flag fabricated employers, inflated metrics, and seniority bumps
  • File Upload — Upload PDF, DOCX, or TXT resumes (text extracted automatically)
  • Side-by-Side Diff — Visual comparison of original vs tailored bullets with confidence badges
  • PDF Export — Download tailored resume + comparison report with score delta and gap details
  • Demo Mode — Click "Try Demo" on the landing page to instantly pre-fill samples and run analysis

Demo

Live Demo (once deployed)

Walk through in under 60 seconds:

  1. Click Try Demo → samples auto-load
  2. Analyze → see match score and gaps
  3. Generate Tailored Resume → review side-by-side diffs
  4. Confirm disclaimer → download comparison PDF

Tech Stack

Layer Technology
Frontend Next.js (App Router), React 19, Tailwind CSS 4, Shadcn UI
AI Groq API (Llama 3.3 70B), Zod for structured output
PDF Playwright (HTML → PDF)
Storage Browser sessionStorage only
Validation Zod schemas on every boundary

Architecture

See architecture.md for the full system design, service boundaries, data flow, prompt structure, and guardrail architecture.

Local Setup

# 1. Install dependencies
npm install

# 2. Configure environment variables
cp .env.local.example .env.local

# Edit .env.local with your Groq API key:
#   GROQ_API_KEY=your_key_here
#   GROQ_MODEL=llama-3.3-70b-versatile
#
# For fast UI testing without API calls, set:
#   MOCK_MODE=true

# 3. Run the development server
npm run dev

# 4. Open http://localhost:3000

Project Structure

app/              Next.js App Router pages + API routes
  ├── api/analyze         POST — parse resume + JD, score, gaps
  ├── api/tailor          POST — full tailoring pipeline
  ├── api/export/pdf      POST — generate PDF documents
  └── tailor/             Wizard page (4-step UI)
components/       React UI components (15 domain + 10 primitives)
lib/              Core logic
  ├── schemas.ts          All Zod schemas + parseOrThrow helper
  ├── llm/                Groq LLM client with retry + repair
  ├── services/           Domain services (parsers, engines, guardrails, PDF)
  ├── mocks/              Sample data for development
  └── storage/            sessionStorage helpers
prompts/          LLM prompt templates (7 modules)
types/            TypeScript type exports
public/samples/   Sample resume + JD text files

API Routes

Method Path Description
POST /api/analyze Parse resume + JD, original score, gap analysis
POST /api/tailor Full pipeline: parse → score → tailor → gaps → assemble
POST /api/parse/resume Parse resume text only
POST /api/parse/jd Parse job description text only
POST /api/export/pdf Generate tailored resume or comparison PDF

Development

npm run dev       # Dev server on :3000
npm run build     # TypeScript + production build
npm run lint      # ESLint

Known Limitations

  • Multi-column PDFs — PDF text extraction may reorder content from multi-column layouts
  • No URL scraping — Paste JD text manually; URL auto-fetch is post-MVP
  • No ATS guarantee — Tailored content is AI-generated; always review before submitting
  • No persistent storage — Data lives in browser session only; refresh clears it
  • PDF generation — Relies on Playwright; serverless deployment may need alternative

Privacy

No account required. Your resume data is stored only in your browser session and sent to Groq AI for processing. No data is logged or persisted on the server.

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors