Markdown to CV Generator
Convert Markdown text into a professional, print-ready CV/resume. Live preview, multiple templates, and instant PDF export via browser print.
About
Writing a CV in a word processor couples content with formatting. Every font change or margin tweak risks breaking layout consistency. Markdown separates structure from presentation: you write content in plain text, and the generator applies typographic rules uniformly. This tool parses raw Markdown syntax into a structured CV layout using a custom tokenizer that handles headings (h1 - h6), emphasis, lists, links, and blockquotes. The output targets A4 print dimensions at 96 DPI with proper margins. No data leaves your browser. Limitations: the parser covers standard Markdown; extended syntax like tables or footnotes is not supported.
Recruiters spend an average of 7.4 seconds on initial CV screening. A misaligned bullet point or inconsistent heading hierarchy signals carelessness. This tool enforces visual consistency programmatically. Choose from 3 professional templates, preview changes in real time, and export via the browser's native print dialog to PDF. Pro tip: keep your Markdown source file in version control alongside your code projects for a complete career changelog.
Formulas
The Markdown parser operates as a line-by-line tokenizer. Each input line L is tested against an ordered set of regular expression patterns Pi. The first matching pattern determines the output HTML element.
/^(#{1,6})\s(.+)/<blockquote> if L matches Pquote = /^>\s?(.+)/<li> if L matches Plist = /^[-*]\s(.+)/ or /^\d+\.\s(.+)/<hr> if L matches Prule = /^-{3,}$/<p> otherwiseInline transformations apply sequentially within each line's content: Pbold = /\*\*(.+?)\*\*/g → <strong>, then Pitalic = /\*(.+?)\*/g → <em>, then Pcode = /`(.+?)`/g → <code>, then Plink = /\[(.+?)\]\((.+?)\)/g → <a>. Order matters: bold must be matched before italic to prevent **text** from being consumed by the single-asterisk rule.
Where L = input line string, Pi = regex pattern for token type i, n = heading level (1 - 6), determined by count of # characters.
Reference Data
| Markdown Syntax | Purpose | CV Usage | Example |
|---|---|---|---|
# Heading 1 | Top-level heading | Your full name | # Jane Doe |
## Heading 2 | Section heading | Section titles (Experience, Education) | ## Work Experience |
### Heading 3 | Sub-section heading | Job title or degree | ### Senior Engineer |
**bold** | Strong emphasis | Company names, key skills | **Google Inc.** |
*italic* | Emphasis | Dates, locations | *Jan 2020 - Present* |
- item | Unordered list | Responsibilities, skills list | - Led team of 8 engineers |
1. item | Ordered list | Ranked achievements | 1. Increased revenue by 40% |
[text](url) | Hyperlink | Portfolio, LinkedIn, GitHub | [Portfolio](https://example.com) |
> text | Blockquote | Professional summary or quote | > Results-driven engineer... |
--- | Horizontal rule | Section separator | --- |
`code` | Inline code | Technical terms, tools | `Python`, `Docker` |
#### Heading 4 | Minor heading | Project names within a role | #### Project Atlas |
| Blank line | Paragraph break | Separate content blocks | (empty line between blocks) |
**_combined_** | Bold + Italic | Critical highlights | **_cum laude_** |
| Plain text | Body paragraph | Descriptions, summaries | Any free-form text |