Open-Source CV or Resume Engineering

database
cv
resume
consistency
cross-platform
platform independence
references
anomalies
eager
lazy
isolation
on-demand
inheritance
monorepo
full-text index
inverted index
LaTeX
large language models
open-source
Bay Area K Group
Author

Yunho Kee

Published

May 15, 2025

A photo of a CV.

Introduction

Are you looking for a better way to manage and maintain documents with similar content, such as your CV or resume? This open-source project offers an automated, cross-platform workflow that makes it easy to create, update, and compare consistent CVs and resumes.

You can see the live web version and explore the source code here to try it out right away.

To get started, simply fork the repository and deploy your CV or resume online using GitHub Pages. This setup allows you to serve your CV or resume as a web page and enables easy downloads in multiple formats, including .pdf and .docx.

Alternatively, you can clone the repository and preview your CV locally without installing Quarto or LibreOffice. Just install Docker Compose, run the commands below, and view your CV at https://localhost:8888/ or in the _site/cv/ directory:

git clone https://github.com/yhkee0404/yhkee0404.github.io
cd yhkee0404.github.io
docker compose up -d --force-recreate quarto-preview
# docker compose down

This project draws inspiration from Kyungho (Kay) Kim, founder of the Global Coding Community (GCC), and PIRATE KING, whose resume led to offers from Google, Microsoft, and Amazon. I believe we can make it even better together. You can create your own reference.docx using these instructions, and I’ve included information in my version on how I built it from scratch. Feel free to share your own versions, feedback, or questions!

Objectives

This project aims to streamline the process of creating consistent, cross-platform, and easily comparable and writable CVs and resumes. Here are some key benefits and features informed by insights I gained from Bay Area K Group and Hello Interview:

  1. Consistency

Maintaining consistency across CV or resume formats (PDF, DOCX, web) is challenging, as updating each version manually is error-prone. This workflow uses references instead of copy-paste, enabling automatic propagation of changes from a single source document to all formats via Quarto and Pandoc.

Inspired by database principles: traditional relational database management systems (RDBMSs) address redundancy and update anomalies via eager, static updates (atomic transactions, or possibly thread synchronization) or by ignoring changes (e.g., “repeatable read” isolation).

Instead, this workflow like foreign key joins in databases adopts on-demand, lazy evaluation, dynamically resolving updates. Similar concepts include reference variables, class inheritance, and monorepos, where code is shared, not duplicated.

  1. Cross-Platform Support

Maintaining reusable content and styles can be difficult with simple converters, especially when elements are unique to a specific platform. Manual edits to converted files are easily lost when the source content changes, leading to repeated work and potential data loss.

This workflow solves the problem by allowing you to reference even isolated or incomplete content and styles. You can preprocess elements within comments, CSS files, or reference documents, making them available for future use without permanent deletion.

Support for conditional contents enables precise control over what appears in each output, similar to managing file visibility (see King n.d.a). Unlike typical build tools (e.g., Maven, Gradle, npm) that define dependencies per build, this workflow can declare builds per dependency or section. It helps you quickly locate relevant formats — much like full-text indexes in databases or inverted indexes in search engines (see King n.d.b, Section Potential Deep Dives 4) How can you improve search to ensure we meet our low latency requirements?) — though without any rendering performance gain. Tools like Python Polylith also visualize such dependencies dynamically.

Traditional relational database management systems (RDBMSs) call related issues insertion and deletion anomalies. While some solutions (like Notion, Confluence, or basic web converters) offer platform independence, they often oversimplify and risk losing custom content or style, much like the brute-force approach of the serializable isolation level. Instead, this workflow leverages nested data structures — including relations, linked lists, trees, graphs, class hierarchies, submodules, polymorphism, dynamic loading, and portable executables — to flexibly manage platform-specific elements. Quarto’s includes feature streamlines reuse, though it should be used thoughtfully to avoid a mental stack overflow.

  1. Easy Comparison

The workflow is compatible with Git and GitHub, as it uses plain text files (such as Markdown), enabling you to efficiently track changes, review history, and compare versions using standard version control tools.

  1. User-Friendly Authoring

Writing and maintaining your CV is easier than with LaTeX or typical web development tools, since you primarily use Markdown for content creation and editing.

Future Work

I hope this workflow inspires you to find new ways to leverage large language models (LLMs) to advance your career even more effectively and efficiently.

#OpenSource hashtag#CV hashtag#Resume hashtag#Quarto hashtag#Markdown hashtag#GitHub hashtag#Automation hashtag#SWE hashtag#SoftwareEngineer hashtag#Developer hashtag#Career

Feel free to contribute, ask questions, or share your feedback!

Back to top

References

King, Evan. n.d.a. “Design a File Storage Service Like Dropbox.” Accessed May 10, 2025. https://www.hellointerview.com/learn/system-design/problem-breakdowns/dropbox#3-users-should-be-able-to-share-a-file-with-other-users.
———. n.d.b. “Design a Ticket Booking Site Like Ticketmaster.” Accessed May 10, 2025. https://www.hellointerview.com/learn/system-design/problem-breakdowns/ticketmaster.

Citation

BibTeX citation:
@online{kee2025,
  author = {Kee, Yunho},
  title = {Open-Source CV or Resume Engineering},
  date = {2025-05-15},
  url = {https://yhkee0404.github.io/posts/database/cv-or-resume/en/},
  langid = {ko}
}
For attribution, please cite this work as:
Kee, Yunho. 2025. “Open-Source CV or Resume Engineering.” May 15, 2025. https://yhkee0404.github.io/posts/database/cv-or-resume/en/.