A local-first, privacy-focused resume improvement tool built with Next.js (App Router), TypeScript, Shadcn UI, Radix UI, and Tailwind CSS. Instantly upload your resume (PDF/DOCX), chat with an AI to tailor it for your next job, preview changes, and export as PDF—all on your device.
- Local-first: All processing happens in your browser or on your device. No resumes are stored on a server.
- Resume Upload: Supports DOCX and PDF formats. Extracts structured data for editing.
- AI-Powered Revamp: Chat interface to request resume improvements, tailoring, or rewrites for specific jobs (optionally paste a job URL).
- Live Preview: See your resume updates in real time, compare with previous versions.
- PDF Export: Download your improved resume as a professionally formatted PDF.
- Responsive UI: Mobile-first, accessible, and fast. Built with Shadcn UI, Radix UI, and Tailwind CSS.
- Modern Stack: Next.js App Router, React 19, TypeScript, pnpm, Zod, Lucide icons, and more.
- Framework: Next.js 15 (App Router)
- UI: Shadcn UI, Radix UI, Tailwind CSS
- Icons: Lucide
- AI/Parsing: ai-sdk, officeparser, mammoth
- PDF Generation: puppeteer
- Validation: Zod
- Package Manager: pnpm
-
Install dependencies:
pnpm install
-
Run the development server:
pnpm dev
Open http://localhost:3000 in your browser.
- Upload Resume: Click or drag-and-drop your DOCX or PDF file.
- Chat to Revamp: Use the chat to request changes (e.g., "Tailor for software engineer at Google" or "Make my experience more concise"). Optionally, paste a job URL.
- Preview & Compare: Instantly see the improved resume and compare with the previous version.
- Download PDF: Export your new resume as a PDF.
resume-revamp/
├── src/
│ ├── app/ # Next.js App Router, pages, API routes
│ │ ├── api/
│ │ │ ├── parse-document/route.ts # DOCX/PDF parsing endpoint
│ │ │ ├── revamp/route.ts # AI resume revamp endpoint
│ │ │ └── generate-pdf/route.ts # PDF export endpoint
│ │ ├── page.tsx # Main UI (upload, chat, preview)
│ │ └── layout.tsx # App layout
│ ├── components/
│ │ ├── document-uploader.tsx # Upload UI
│ │ ├── resume-preview.tsx # Resume preview & compare
│ │ ├── chat-interface.tsx # AI chat interface
│ │ ├── app-sidebar.tsx # Sidebar navigation
│ │ └── ui/ # Shadcn/Radix UI components
│ ├── hooks/ # Custom React hooks
│ ├── lib/ # Utilities
│ ├── agents/ # AI/LLM logic
│ └── types.ts # Zod schemas & types
├── tailwind.config.ts # Tailwind CSS config
├── package.json # Scripts & dependencies
├── pnpm-lock.yaml # pnpm lockfile
└── README.md
pnpm dev– Start development serverpnpm build– Build for productionpnpm start– Start production serverpnpm lint– Lint codebase
- UI: Easily extend with new Shadcn/Radix components in
src/components/ui/. - AI Logic: Modify or extend resume transformation logic in
src/agents/structured-resume.ts. - API: Add new endpoints in
src/app/api/. - Types: Update Zod schemas in
src/types.tsfor new resume fields.
Contributions are welcome! Please open issues or PRs for improvements, bug fixes, or new features.
MIT