dorkhub

markdown-resume

ATS and Human-friendly Resume Writer in Markdown.

junian
Vue646137 forksAGPL-3.0updated 5 days ago
visit the demogit clone https://github.com/junian/markdown-resume.gitjunian/markdown-resume
Markdown Logo

Markdown Resume

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

Markdown Resume Buy Me A Coffee

Markdown Resume Screenshot

About

Markdown Resume is a local-first editor for creating clean, ATS-friendly resumes with Markdown. It combines a code editor with a paginated live preview, practical formatting controls, and self-contained export options.

The default template is based on CareerCup's resume template, using a restrained layout, web-safe fonts, and readable content structure so a resume works well for both applicant tracking systems and people.

Your resumes, images, and settings stay in your browser. No account is required, and your resume content is not uploaded to an application server.

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

See the Changelog for the complete project history and latest changes.

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 PDF, Markdown, self-contained HTML, and DOCX
  • Export to A4 and US Letter paper sizes
  • Customize page margins, theme colors, line heights, fonts, etc.
  • Add icons easily via Iconify (search icons on Icônes)
  • Fix legacy Iconify markup from older resumes and save the migrated content
  • 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, rename, duplicate, import, back up, and delete multiple resumes
  • Automatically save editor changes when adding a new line, with Ctrl/Cmd+S support
  • Responsive editing layout for desktop, tablet, and mobile
  • Optional Monaco editor minimap
  • Light document previews in every color theme
  • Light, dark, and system appearance modes
  • English and Indonesian interface languages
  • Local storage usage estimates, refresh controls, and a protected factory-reset action
  • Data is saved locally in your browser using IndexedDB browser feature (see localForage repo for details)
  • Image Gallery — upload images and reference them in your resume using Markdown or HTML (see below)

Image Support

The Image Gallery screen lets you upload images and use them directly in your resume.

Once uploaded, each image gets a stable URL in the format ./images/<id> served by a Service Worker — no external hosting needed. You can copy the URL from the gallery and paste it into your Markdown:

![My photo](./images/1234567890_abc123)

Or as an HTML tag:

<img src="./images/1234567890_abc123" alt="My photo" />

When exporting to HTML or DOCX, image references are automatically replaced with inline base64 data URLs so the exported file is fully self-contained.

Privacy: Images are stored entirely inside your browser's IndexedDB — the same storage used for your resumes. They are never uploaded to any server and never leave your computer.

Self-Hosting

  1. Clone the repository:

    git clone https://github.com/junian/markdown-resume.git
    cd markdown-resume
  2. (Optional) Set up your environment variables. Copy the example file and fill in the values you need:

    cp site/.env.example site/.env

    See the Environment Variables section for details on each variable.

  3. Run the build script:

    ./build.sh
  4. Deploy the contents of the .output/public directory to any static hosting provider (GitHub Pages, Netlify, Vercel, Nginx, etc.).

Environment Variables

Configuration is done via a .env file inside the site folder. You can copy site/.env.example as a starting point:

cp site/.env.example site/.env
Variable Description
NUXT_PUBLIC_GOOGLE_FONTS_KEY Google Fonts Developer API Key. Required to enable the font picker that lists fonts from Google Fonts. Without this key the font selection will only show locally available fonts.
NUXT_PUBLIC_GTAG_ID Google Analytics 4 Measurement ID (e.g. G-XXXXXXXXXX). Enables GA4 page-view and event tracking. Leave empty to disable analytics.
NUXT_CLARITY_ID Microsoft Clarity Project ID. Enables session recording and heatmap analytics. Leave empty to disable Clarity.
NUXT_PUBLIC_DISQUS_SHORTNAME Disqus shortname for your site. Enables the Disqus comment section. Leave empty to hide comments.

Development

Clone the repo and install dependencies:

pnpm install

Build the packages:

pnpm run build:pkg

Start developing / building the site:

pnpm run dev
pnpm run build

License

This project is licensed under the AGPL-3.0 license. See ACKNOWLEDGMENTS for credits.


Made with ☕ by Junian.dev.

more like this

markItDown

📱 A React app to preview and edit Markdown✍. You can also export it as HTML.

JavaScript51

search

search projects, people, and tags