How to write a Markdown resume

A step-by-step guide to writing a resume in Markdown that turns into a professional PDF ready to send.

Last updated: 2026-05-15

Key data for a resume in 2026

Before writing, it helps to keep in mind how recruiters and automated systems actually process a resume. These three data points shape format decisions more than any other.

+90%
of large companies (Fortune 500) use an ATS to manage and filter applications before human review. [jobscan]
7.4 s
is the average time a recruiter spends on the first visual scan of a resume, according to a widely cited eye-tracking study. [ladders]
1 column
is the structure ATS parsers interpret most consistently versus multi-column layouts or table-based designs. [greenhouse]

1. Basic structure

A Markdown resume uses three heading levels to mark hierarchy: `#` for your name, `##` for each section (Experience, Education…) and `###` for each role or degree. This is exactly the hierarchy CVMarkdown expects to render, and it is also what ATS systems parse best — a single H1 and clearly delimited sections at a single level.

[greenhouse]

2. Header

The header of a Markdown resume is made of your name with `#`, your role in bold and a contact line in plain text separated by `·` or `|`. LinkedIn and GitHub URLs are auto-detected. Keep the header without icons-as-images and without tables: ATS parsers extract email and phone more reliably when they appear as selectable text.

[jobscan]

3. Experience

Each role is written as `### Company` followed in italic by `*Role · Location · Dates*`, and developed with bullets of quantifiable achievements, not responsibilities. Dates are detected automatically and aligned to the right. Phrases like “reduced deploy time from 40 to 8 minutes” are retained better than “worked on CI/CD”: Harvard Business Review research shows quantifiable achievements are recalled more strongly in fast reviews.

[hbr]

4. Skills

Skills in a Markdown resume are listed as key-value pairs: `**Languages:** TypeScript, Go, Python`. CVMarkdown renders them with the key in bold and the rest inline, saving vertical space. Keep skills as plain text separated by commas: ATS systems detect keywords better in inline lists than inside design boxes or decorative iconography.

[jobscan]

Markdown allows you to write using an easy-to-read, easy-to-write plain text format, then convert it to structurally valid HTML.
John Gruber, Creator of Markdown [gruber]

Sources

Studies and technical documentation cited throughout this guide.