Build an ATS-friendly resume in minutes. Import a PDF, let AI write and tailor each section to the job, preview the PDF live, and export a print-ready file. Open source and built with Next.js 15.
next-resume-ai-comprsd.mp4
CVTailor is a free, open-source AI resume builder built with Next.js 15 and React 19. It turns your work history into an ATS-friendly resume. Import an existing resume PDF or start from a saved profile, let AI draft and refine each section, preview the PDF live as you edit, and export a print-ready file in one click. Five professional templates are included, with a parser-safe ATS layout as the default.
- AI writing for summaries, experience bullets, skills, and more
- Resume import from a PDF or pasted text, parsed into an editable profile
- Job-tailored content: paste a job description, company, and role, and the AI matches your resume to the posting
- ATS-friendly templates, with a single-column, parser-safe layout as the default
- Live PDF preview in a split-pane editor that updates as you type
- Profiles so you can reuse your details across multiple resumes
- Auto-save while you edit
- One-click PDF export
- Dark and light mode
- Sign in to your account (Clerk authentication).
- Add your details by creating a profile, or import a resume PDF to fill it automatically.
- Pick a template. ATS Friendly is selected by default; switch anytime.
- Generate with AI. Draft and refine each section, and tailor the content to a specific job description.
- Preview live. Edit in the split-pane editor and watch the PDF update in real time.
- Export to PDF and download a print-ready file.
CVTailor ships with five templates. The ATS Friendly template is the default because it reads cleanly in applicant tracking systems.
| Template | Layout | Best for |
|---|---|---|
| ATS Friendly (default) | Single-column, parser-safe | Online applications and ATS keyword scanning |
| Creative Professional | Modern design with color accents | Design, marketing, and product roles |
| Professional Split | Classic two-column | Traditional industries and long histories |
| Modern Clean | Single-column with clean typography | General-purpose resumes |
| Minimalist | Minimal layout with subtle accents | Content-first, no-frills resumes |
- Framework: Next.js 15 with React 19 (App Router)
- API: jstack on Hono
- Authentication: Clerk
- AI: OpenRouter (OpenAI-compatible), model configurable, default
openai/gpt-4o-mini - PDF generation: @react-pdf/renderer
- Database: Drizzle ORM with Neon Postgres
- Styling: Tailwind CSS v4 and shadcn/ui (Base UI)
- Forms and validation: React Hook Form and Zod
- Data fetching: TanStack Query
- Node.js 20 or newer and pnpm
- A Neon (Postgres) database
- A Clerk application for auth
- An OpenRouter API key for the AI features
# 1. Clone the repository
git clone https://github.com/Kiranism/next-resume-ai.git
cd next-resume-ai
# 2. Install dependencies
pnpm installCreate a .env file in the project root:
# Database (Neon Postgres)
DATABASE_URL=postgres://user:password@host/db
# Authentication (Clerk)
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_...
CLERK_SECRET_KEY=sk_...
# AI (OpenRouter)
OPENROUTER_API_KEY=sk-or-...
OPENROUTER_MODEL=anthropic/claude-haiku-4.5 # optional; fast tier default
OPENROUTER_MODEL_WRITING=anthropic/claude-sonnet-4.5 # optional; writing tier default
# App
NEXT_PUBLIC_API_URL=http://localhost:3000# Push the database schema to Neon
pnpm db:push
# Start the dev server
pnpm devOpen http://localhost:3000 in your browser.
Yes. CVTailor is free and open source under the MIT license. Use the hosted demo, or self-host your own copy. The AI features run on your own OpenRouter API key, which is pay-as-you-go.
Yes. The default template is a single-column, parser-safe layout designed for applicant tracking systems. It uses standard fonts and a clean text structure so ATS software can read your details and match keywords.
Yes. Upload a PDF and CVTailor extracts the text into a profile you can review and edit. You can also paste resume text directly.
Yes. Add a job description, company, and role, and the AI rewrites your content to match that posting.
CVTailor calls models through OpenRouter, so you can use any supported model. There are two tiers: fast (chat edits, ATS analysis, keyword extraction — default anthropic/claude-haiku-4.5, env OPENROUTER_MODEL) and writing (resume creation and the writing critique — default anthropic/claude-sonnet-4.5, env OPENROUTER_MODEL_WRITING).
Yes. Clone the repository, set the environment variables above, run pnpm db:push, and deploy to any Node host such as Vercel.
You export your resume as a PDF, generated in the browser with @react-pdf/renderer.
Contributions are welcome. Open an issue to report a bug or suggest a feature, or send a pull request. Please run pnpm lint and pnpm typecheck before submitting.
Released under the MIT License.
Cheers!