Your resume. Your browser. Your data.

resuml is a free, open-source resume builder that runs entirely in your browser. Bring your own resume. No accounts, no tracking, no server storage.

What it is

A resume builder that treats your CV as code.

Write your resume in plain YAML, matching the open JSON Resume schema, or use the form editor if you'd rather click than type. Pick from 300+ community themes, check how your resume reads to an ATS, and export to PDF. That's the whole app.

YAML + form modes

Edit as plain text, or use the structured form. Both stay in sync.

300+ themes

Any JSON Resume theme from npm. Bundled themes render live in the preview.

ATS keyword match

Paste a job description, get keyword coverage and recommendations.

PDF export

Print-to-PDF from a preview window. Same rendering the preview uses.

Share by link

A compressed URL hash carries the whole resume. No server copy.

CLI + MCP server

Use from the terminal or connect it to Claude Code / AI agents.

Bring your own resume

Everything happens on your device. We don't see or keep your data.

The web app is a static site. When you type, the YAML is saved in your browser's localStorage on your machine, nowhere else. There's no signup, no account, no database on our side. Closing the tab, clearing your storage, or opening another browser gives you a clean slate.

What does leave the browser? Only three things, and never your resume:
  1. The theme picker fetches the public list of theme names and npm download counts.
  2. If you paste a job-posting URL, the fetcher grabs that page to extract the description text.
  3. Cookieless, aggregate page-view analytics and Core Web Vitals (Vercel Web Analytics and Speed Insights). No cookies, no personal data, no cross-site tracking, no resume content. Just visit counts and load-time metrics.
Share links put your resume into the URL hash (after #). Browsers never send the part after # to any server. Anyone you give the link to can read the resume; we can't.

About the themes

Themes are third-party. If one breaks, it's a theme bug, not a resuml bug.

The 300+ layouts in the picker come from the community jsonresume-theme-* packages on npm. They're written by dozens of different authors, over many years, with different dependencies and assumptions. We bundle the ones that load safely in a browser and surface a clear error for the ones that don't.

Your resume content is portable. It's JSON Resume, so any tool that speaks that schema (past, present, or future) can read it. If resuml disappeared tomorrow, your YAML would still open somewhere else.

Get started

No install, no signup. Just open it.