Xiao Hanyu

YAMLResume v0.8: "Resume as Code" now supports Markdown & Multiple Layouts

by

Hello Product Hunt! 👋

I'm Xiao Hanyu, the creator of YAMLResume. I am thrilled to introduce YAMLResume v0.8, a massive update that transforms how developers build, maintain, and utilize their resumes in the age of AI.

The "Resume as Code" Philosophy

For years, I've been frustrated with the traditional resume workflow.

- Word/Google Docs: You spend hours fighting with margins and alignment. One small change breaks the whole page.

- Design Tools (Figma/Canva): They look great, but updating them is a manual nightmare, and they are unreadable by Applicant Tracking Systems (ATS).

- LaTeX: It produces beautiful PDFs, but the learning curve is steep, and the source code is often messy.

I built YAMLResume to solve this. The idea is simple: data first, presentation second. You write your resume in clean, structured, version-controlled YAML. Our compiler handles the typesetting, generating a pixel-perfect PDF via LaTeX.

The Problem: PDF is a "Dead" Format

While PDF remains the gold standard for emailing recruiters, the world has changed. We now live in an era of Large Language Models (LLMs) and dynamic web portfolios.

I realized that our users (myself included) were maintaining multiple versions of their resumes:

  1. A PDF for applications.

  2. A text file for copy-pasting into legacy ATS forms.

  3. A Markdown snippet for their personal website's "About" page.

  4. A messy copy-paste buffer for asking ChatGPT to "tailor this resume."

This violated the DRY (Don't Repeat Yourself) principle. We needed a better way.

Introducing v0.8: Multiple Layouts & Markdown Output

With v0.8, we have completely re-architected the YAMLResume compiler. It is no longer just a "YAML to PDF" tool. It is now a multi-target compiler.

You can now define a list of `layouts` in your `resume.yml`. A single command—`yamlresume build`—can generate multiple artifacts simultaneously.

```yaml

layouts:

- engine: latex

template: moderncv-banking

- engine: markdown

```

This simple configuration generates both `resume.pdf` AND `resume.md`. Your YAML file remains the Single Source of Truth.

Why Markdown? (The Killer Feature)

You might wonder, "Why do I need a Markdown resume?" The answer lies in how we work today.

1. LLM Optimization 🤖

This is the biggest game-changer. We all use tools like ChatGPT, Claude, or Gemini to help with job applications. But have you ever tried pasting a PDF into a chat window? The formatting breaks, columns get merged, and the AI hallucinates.

By generating a clean, semantically structured Markdown version of your resume, you provide the perfect input for LLMs. You can feed `resume.md` into an AI and reliably ask:

  • "Tailor my summary for this Senior Engineer Job Description..."

  • "Extract my top 5 skills relevant to React..."

  • "Critique my bullet points for impact..."

2. Automated Web Publishing 🌐

If you are a developer, you likely have a personal site built with Next.js, Hugo, Jekyll, or Gatsby. With v0.8, you can automate your personal branding.

  • Update your `resume.yml` with your latest project.

  • Run the build.

  • The generated `resume.md` is automatically dropped into your blog's content folder.

  • Deploy.

No more manually syncing your website with your PDF.

3. Git Diffs & Code Review 👀

Binary PDFs are impossible to diff. If you change a job description, you can't see what changed in a GitHub Pull Request. With Markdown output, you get a clean, line-by-line diff of your text changes. You can actually peer-review your resume updates!

What's Next?

We aren't stopping here. We are actively working on an HTML layout engine. Imagine generating a fully responsive, SEO-optimized, standalone HTML resume that looks as professional as the PDF but is native to the browser—all from the same YAML source.

Open Source & Community

YAMLResume is 100% open source. We believe your data belongs to you, not locked inside a proprietary SaaS platform.

I'd love for you to try it out.

8 views

Add a comment

Replies

Be the first to comment