Skip to content

Lamonkey/resume-editor

 
 

Repository files navigation

Markdown Resume

Write an ATS-friendly resume in Markdown. Available for everyone, optimized for developers.

Start Writing Now!

About

This repo is a fork of Oh My CV!, which is beautifully made — go check out their work.

Changes I made from the original:

  • The default template is now as close as possible to CareerCup's resume template.
  • The default color is all black.
  • Uses web-safe fonts for easier and safer ATS parsing.
  • Export as HTML and DOCX.
  • And many more...

I'm passionate about helping anyone get a job, which is why I made this fork. Most of the modifications ensure your resume is readable by both ATS systems and humans, so you don’t have to worry about the design.

I can’t guarantee that using this will improve your job search success rate. But I hope it helps.

Notice

Highly recommend using Chromium-based browsers, e.g., Chrome or Microsoft Edge.

Features

  • Write your resume in Markdown and preview it in real time — smooth experience!
  • Works offline (PWA)
  • Export to A4 and US Letter PDFs
  • Customize page margins, theme colors, line heights, fonts, etc.
  • Pick any fonts from Google Fonts
  • Add icons easily via Iconify (search icons on Icônes)
  • TeX support (KaTeX)
  • Cross-referencing (useful for academic CVs)
  • Case correction (e.g., GithubGitHub)
  • Add line breaks (\\[10px]) or start a new page (\newpage) like in LaTeX
  • Automatic page breaking
  • Custom CSS support
  • Manage multiple resumes
  • Your data stays in your hands:
    • Data is saved locally in your browser (see here for details)
    • Open-source static website hosted on GitHub Pages, which does not (and cannot) collect your data
    • No user tracking, no ads
  • Dark mode

Import a resume from a local file (?import=)

When running locally (pnpm dev or pnpm build && pnpm serve), you can load a Markdown file straight from disk into the editor — no copy-paste — by opening:

http://localhost:3000/markdown-resume/?import=/absolute/path/to/resume.md

The app reads the file via a local server route, creates a resume in browser storage, and opens it in the editor. The resume is named after its parent folder (or the company in a *_resume_<company>.md filename); add &name=Some%20Name to override. Re-importing with the same name overwrites that resume in place instead of creating a duplicate, so a generator can keep refreshing the same entry.

This is a local-only convenience: the static production build (GitHub Pages) has no server routes, so ?import= is a no-op there.

Headless render / one-page fitting (pnpm render)

scripts/render-resume.mjs renders a Markdown resume in headless Chrome (using your installed Google Chrome via puppeteer-core — no browser download) and reports how many pages it occupies. It can also write a screenshot and a print-accurate PDF. This is what lets an agent fit a resume to one page by adjusting style knobs (and/or trimming content) in a loop.

pnpm render <resume.md> \
  --font-size 10 --line-height 1.15 \
  --margin-v 32 --margin-h 36 --para-space 3 --paper letter \
  --png /tmp/out.png --pdf /tmp/out.pdf

Prints JSON: { "pages": 1, "fits": true, "png": …, "pdf": …, "label": …, "styles": { … } }. It auto-starts the dev server if it isn't already running. Set CHROME_PATH to override the Chrome binary.

The exported PDF is given a macOS Finder tag (default name Resume PDF, default color orange) so generated resumes are easy to find and group in Finder — --label <color> (or none) and --label-name <str> to change it. Note: macOS controls tag colors centrally per tag name, so the requested color only sticks if that tag name isn't already registered with a different color; to force a color, set it once for the tag in Finder → Settings → Tags.

Development

Built with Nuxt 3, powered by Vue 3, Vite, Zag, and UnoCSS.

Clone the repo and install dependencies:

pnpm install

Build the packages:

pnpm build:pkg

To enable font selection from Google Fonts, generate a Google Fonts Developer API Key. Then create a .env file inside the site folder and add:

NUXT_PUBLIC_GOOGLE_FONTS_KEY="YOUR_API_KEY"

Start developing / building the site:

pnpm dev
pnpm build

Credits

License

This project is licensed under the MIT license.


Made with ☕ by Junian.dev.

About

ATS and Human-friendly Resume Writer in Markdown.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 52.9%
  • Vue 35.9%
  • JavaScript 6.6%
  • CSS 4.4%
  • Shell 0.2%