Skip to content

zhiweio/resume-as-code

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

4 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Resume as Code

็ฎ€ไฝ“ไธญๆ–‡ | English

This project implements a "Resume as Code" philosophy, leveraging LLMs (Large Language Models) and structured data to automate the creation of highly tailored, professional resumes.

It solves the common pain points of resume maintenance:

  • Fragmentation: Keeping multiple versions of Word/PDF files for different job applications.
  • Inconsistency: Difficulty in maintaining consistent formatting and content across versions.
  • Time-Consuming: Manually tailoring resumes for each Job Description (JD) is tedious.

By maintaining a single "Master Timeline" of your career and using AI agents to dynamically assemble resumes, you can generate a perfect match for any job opportunity in minutes.

โœจ Core Features

  • Single Source of Truth: All career data (work, projects, education, certificates) is stored in modular YAML files.
  • AI-Powered Agents:
    • Resume Generation Agent: Analyzes JDs and assembles targeted resumes.
    • Timeline Polishing Agent: Polishes raw experience descriptions using STAR/3W methodologies.
    • Interview Preparation Agent: Generates comprehensive interview guides based on your resume and target JD.
  • Standardized Format: Built on the YAMLResume standard, ensuring compatibility with a rich ecosystem of themes and export tools.
  • Automated Validation: Integrated validation ensures generated resumes are syntactically correct and ready for compilation.
  • Multi-Format Export: Supports exporting to PDF (LaTeX), HTML, and Markdown via the YAMLResume compiler.
  • Multi-Language Support: Automatically detects the target language from the Job Description or user input. Supports generation in English, Simplified Chinese, Traditional Chinese (HK/TW), Spanish, French, and Norwegian.

๐ŸŽจ Gallery & Examples

Explore the Gallery to see real-world examples of artifacts generated by this workflow, including:

  • Tailored Resumes: PDF and HTML versions generated for specific JDs.
  • Interview Guides: Comprehensive preparation guides with Q&A and strategies.
  • Analysis Reports: Deep dives into JDs and company business contexts.

๐Ÿ‘‰ View the Gallery

๐Ÿ—๏ธ Architecture & Workflow

The system operates through three primary AI agents:

1. Timeline Polishing Agent

Input: Raw text description of a job or project. Output: Structured, polished YAML file in timelines/gem/.

  1. Input Analysis: Identifies if the input is Work Experience or a Project.
  2. Polishing: Applies STAR (Situation, Task, Action, Result) for work or 3W (What, Why, How) for projects.
  3. Enrichment: Infers relevant technical keywords and industry context.
  4. Storage: Saves the polished artifact to the timeline library.

2. Resume Generation Agent

Input: Target Job Description (JD). Output: A complete, tailored resume YAML file in resumes/gem/.

  1. Job Analysis: Extracts key skills, requirements, and role context from the JD.
  2. Matching: Selects the most relevant experiences from the Timeline library based on the analysis.
  3. Section Generation: Generates tailored Summary, Skills, Work, and Project sections.
  4. Assembly: Combines all sections with static profile data (Education, Certificates) into a final YAMLResume-compliant file.
  5. Validation: Validates the output against the schema.

3. Interview Preparation Agent

Input: Resume, JD Analysis, Company Business Analysis. Output: A comprehensive Interview Preparation Guide in interviews/gem/.

  1. Input Verification: Ensures all necessary context files are present.
  2. Strategy Generation: Creates a personal introduction strategy tailored to the role.
  3. Deep Dive: Generates STAR-based deep dive questions for every project.
  4. Q&A Bank: Creates an extensive technical Q&A bank covering specific tech, architecture, and domain knowledge.
  5. Behavioral & Reverse: Prepares behavioral questions and high-quality reverse interview questions.

๐Ÿ“‚ Directory Structure

.
โ”œโ”€โ”€ profiles/           # Personal basic information (static)
โ”œโ”€โ”€ resumes/            # Resume generation artifacts
โ”‚   โ”œโ”€โ”€ gem/            # Final generated resume files
โ”‚   โ”œโ”€โ”€ temp/           # Intermediate generation artifacts
โ”‚   โ”œโ”€โ”€ job-analysis-prompt.md    # Prompt for analyzing JDs
โ”‚   โ”œโ”€โ”€ resume-prompt.md          # Prompt for resume assembly
โ”‚   โ””โ”€โ”€ section-*-prompt.md       # Prompts for specific sections
โ”œโ”€โ”€ timelines/          # Master Timeline Library
โ”‚   โ”œโ”€โ”€ gem/            # Polished timeline event files (YAML)
โ”‚   โ”œโ”€โ”€ timeline-project-prompt.md # Prompt for polishing projects
โ”‚   โ””โ”€โ”€ timeline-work-experience-prompt.md # Prompt for polishing work exp
โ”œโ”€โ”€ interviews/         # Interview preparation artifacts
โ”‚   โ”œโ”€โ”€ gem/            # Generated interview guides
โ”‚   โ””โ”€โ”€ interview-prompt.md # Prompt for generating interview guides
โ””โ”€โ”€ ...

๐Ÿค– AI Tools Support & Configuration

This project leverages AI agents to automate the resume generation process. While it can work with various LLMs, it is optimized for the following tools:

1. GitHub Copilot

  • Status: Supported (Recommended)
  • Configuration: No specific configuration is required. You can directly interact with Copilot Chat in VS Code.

2. Trae

  • Status: Supported
  • Configuration:
    1. Create Agent: Create a new Custom Agent in Trae.
    2. Configure Rules: Copy the content of .trae/rules/project_rules.md and paste it into the agent's instructions.
    3. Save: Name the agent resume-as-code.
  • Usage: Select the resume-as-code agent when working on this project to ensure strict adherence to the workflow.

๐Ÿš€ Usage Guide

Prerequisites

  • Node.js & pnpm installed.
  • YAMLResume CLI installed. This project relies on yamlresume to compile and build resumes in various formats (PDF, HTML, Markdown).
  • An LLM interface (e.g., GitHub Copilot Chat in VS Code).

Step 1: Build Your Timeline Library

Don't write a resume yet. First, build your database of experiences.

  1. Open Copilot Chat.
  2. Paste a raw description of a past job or project.
  3. The Timeline Polishing Agent will format it into a structured YAML file in timelines/gem/.
  4. Review and save the file.

Step 2: Configure Static Data

Fill in your static information in the profiles/ directory:

  • profiles/basics.yml: Contact info, social links.
  • profiles/education.yml: Academic history.
  • profiles/certificates.yml: Certifications.

Step 3: Generate a Resume

When you find a job you want to apply for:

  1. Copy the Job Description (JD).
  2. Paste it into Copilot Chat.
  3. The Resume Generation Agent will:
    • Analyze the JD.
    • Select relevant timeline events.
    • Generate tailored content.
    • Assemble a final YAML file in resumes/gem/ (e.g., Name_JobTitle_Company.yml).

Step 4: Compile & Export

Use the YAMLResume CLI to compile your resume into PDF or HTML.

pnpm yamlresume build "resumes/gem/Your_Resume.yml"

Step 5: Prepare for Interview

Once your resume is ready:

  1. Provide the generated Resume, JD Analysis, and Company Business Analysis to Copilot Chat.
  2. The Interview Preparation Agent will generate a detailed guide in interviews/gem/.
  3. Use this guide to practice your introduction, project deep dives, and technical Q&A.

๐Ÿ› ๏ธ Development

# Install dependencies
pnpm install

# Format code
pnpm format

# Type check
pnpm check

๐Ÿ“„ License

MIT

About

Resume as Code: Your career, managed like a software project. ๐Ÿš€ Stop manual tailoring. Leverage LLM agents to transform a modular YAML "Master Timeline" into high-impact, STAR-aligned, JD-tailored resumes in minutes. Powered by YAMLResume & AI.

Topics

Resources

License

Stars

Watchers

Forks