Open Source AI-Powered Resume Builder
Live App · Documentation · Contributing
Resmd replaces rigid form-based editors with ResMarkup — a lightweight plain-text syntax. Write your resume like a document, get live preview, AI feedback, and export a polished PDF. Your content stays in plain text and is never locked to a proprietary format.
| Feature | Description |
|---|---|
| ResMarkup Syntax | # Section, ## Entry, Key: Value, bullet points |
| Live Preview | Side-by-side editor and rendered template |
| AI Enhance | Select text for AI-powered rewrites |
| AI Chat | Conversational assistant for resume advice |
| AI Review | Structured feedback on content quality |
| AI Match | Compare resume against job descriptions |
| Templates | Minimal, Modern, Technical, Executive, Creative |
| PDF Export | Print-ready PDF with template fidelity |
| Clonning | Clone existing resumes to create variants |
| Public Sharing | Publish at shareable /r/[slug] URLs |
| Layer | Technology |
|---|---|
| Framework | Next.js (App Router, SSR) |
| Language | TypeScript |
| Database & Auth | Supabase (PostgreSQL) |
| Styling | Tailwind CSS |
| Code Editor | CodeMirror 6 |
| AI | OpenRouter |
| @react-pdf/renderer | |
| Icons | Phosphor Icons |
- Node.js 18+
- An OpenRouter API key (optional — required for AI features)
You can run resmd locally without a Supabase account using the built-in SQLite provider:
git clone https://github.com/attahiruj/resmd.git
cd resmd
npm install
cp .env.local.example .env.localEdit .env.local:
DB_PROVIDER=local
NEXT_PUBLIC_DB_PROVIDER=local
NEXT_PUBLIC_APP_URL=http://localhost:3000
# Optional — for AI features:
OPENROUTER_API_KEY=your_openrouter_api_keynpm run devThe SQLite database is auto-created at ./data/local.db. Register with email + password at /auth. Note: OAuth (Google) is not available in local mode.
For full production features (OAuth, anonymous sessions, cloud sync):
DB_PROVIDER=supabase
NEXT_PUBLIC_DB_PROVIDER=supabase
NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_anon_key
NEXT_PUBLIC_APP_URL=http://localhost:3000
OPENROUTER_API_KEY=your_openrouter_api_keyRun the SQL schema from ai.md in your Supabase SQL editor to create the required tables and RLS policies.
Open http://localhost:3000.
| Command | Description |
|---|---|
npm run dev |
Start development server |
npm run build |
Create production build |
npm run start |
Run production server |
npm run lint |
Run ESLint |
npm run format |
Format code with Prettier |
resmd exposes an MCP (Model Context Protocol) server so AI agents and automation tools (Claude Desktop, n8n, Make) can programmatically create, edit, tailor, and export resumes.
- Open the dashboard and click your user menu (bottom-left)
- Select MCP Keys
- Enter a name for the key and click Generate
- Copy the key immediately — it is only shown once
Use it as a Bearer token for all API calls:
Authorization: Bearer <your-mcp-key>
Clone and build the resmd-mcp server, then register it with Claude Code:
# Against the hosted app
claude mcp add resmd \
--env RESMD_API_URL=https://resmd.app \
--env RESMD_MCP_KEY=<your-mcp-key> \
-- node /path/to/resmd-mcp/dist/server.js
# Against a local instance
claude mcp add resmd \
--env RESMD_API_URL=http://localhost:3000 \
--env RESMD_MCP_KEY=<your-mcp-key> \
-- node /path/to/resmd-mcp/dist/server.jsClaude Desktop only supports cloud-hosted MCP servers. Use Claude Code for local MCP servers.
| Tool | Description |
|---|---|
list_resumes |
List all resumes |
get_resume |
Fetch a resume with full content |
create_resume |
Create a new resume |
update_resume |
Update content, title, or template |
delete_resume |
Delete a resume |
clone_resume |
Clone with a new title |
tailor_resume |
Clone + AI-tailor for a job description |
chat_with_resume |
Chat with AI about a resume |
enhance_text |
AI-rewrite a piece of resume text |
import_resume |
Import PDF/DOCX/TXT → resmarkup |
export_pdf |
Export resume as base64 PDF |
list_templates |
List available templates |
See the resmd-mcp repo for full setup and n8n/Make integration details.
Contributions are welcome! Please read the Contributing Guide for details on:
- Reporting bugs and requesting features
- Setting up your local development environment
- Submitting pull requests
- Code style and commit conventions
AGPL-3.0 — see the LICENSE file for details.