# CLAUDE.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## Project Overview This is a personal CV/resume repository using Typst, a modern typesetting system. The project uses the `brilliant-cv` template (v3.1.2) to generate professional CVs in multiple languages (primarily Chinese with English support). **Beyond CV generation**, this repository also serves as a workspace for career planning and job search preparation, including interview retrospectives, career reflection documents, and job hunting strategy materials. ## Build Commands ### Generate PDF ```bash typst compile cv.typ ``` This compiles the main CV file and outputs `cv.pdf`. ### Generate AI Prompt (if Python is available) ```bash python decorate_prompt.py # or python3 decorate_prompt.py ``` This script reads `prompt.md` and injects CV content from the `modules_zh` directory (note: the script references `modules_zh` but the actual directory is `zh/`), generating a final prompt file in `./dist/final_prompt.md`. ## Project Structure ### Core Files - `cv.typ` - Main entry point that imports all CV modules - `metadata.toml` - Configuration file containing personal info, layout settings, fonts, and language-specific content - `prompt.md` - Template for AI interview preparation prompts - `decorate_prompt.py` - Script to generate interview preparation materials ### Content Directories - `zh/` - Chinese language CV modules (education, skills, career, projects, activity, achievements) - `src/` - Assets directory containing avatar photo, logos, and signature - `src/projects/` - Individual project description files ### Module Files (in `zh/`) - `education.typ` - Educational background - `skills.typ` - Technical skills organized by category (Full-stack Development, Data Analysis & Deep Learning, Other) - `career.typ` - Work experience - `projects.typ` - Project experience (includes individual project files from `projects/` subdirectory) - `activity.typ` - Activities and community involvement - `achievements.typ` - Awards and achievements ## Architecture Notes ### Typst Module System The CV uses a modular architecture where `cv.typ` imports the `brilliant-cv` template and then includes individual module files using the `importModules` function. Each module file: 1. Imports necessary components from `brilliant-cv` (`cvEntry`, `cvSection`, etc.) 2. Loads metadata from `../metadata.toml` 3. Defines its content using the template's components ### Metadata Configuration The `metadata.toml` file controls: - Language selection (currently set to "zh") - Layout settings (colors, spacing, fonts, header/footer alignment) - Personal information and contact details - Language-specific text (header quotes, footer text) - Feature flags (AI prompt injection, keyword injection) ### Project Files Organization Project descriptions are split into individual files under `zh/projects/` (e.g., `guiiai.typ`, `nuistshare.typ`, `maiqu.typ`, `mihome.typ`) and included in `zh/projects.typ` using `#include` statements. ### Bilingual Support The repository maintains both Chinese (`zh/`) and English content structures, though the primary language is Chinese. The `metadata.toml` supports multiple languages (en, fr, zh, it) with language-specific quotes and footer text. ## Important Context This CV is for a graduate student (Hanwen Yu / 余翰文) with experience in: - Full-stack development (Vue, React Native, TypeScript, Python) - Data analysis and deep learning (PyTorch, Pandas, computer vision) - Internships at Xiaomi, Maiqu, and Haiweisi The `prompt.md` file contains interview preparation context noting specific weaknesses in algorithm questions, React knowledge, and the GuiiAI project's limitations. ## File Modification Guidelines When editing CV content: 1. Modify the appropriate module file in `zh/` directory 2. For project changes, edit individual files in `zh/projects/` 3. For personal info or layout changes, edit `metadata.toml` 4. After changes, recompile with `typst compile cv.typ` to generate updated PDF When adding new projects: 1. Create a new `.typ` file in `zh/projects/` 2. Add an `#include` statement in `zh/projects.typ` 3. Follow the existing format using `cvEntry` component with logo, title, society, date, location, and description ## Career Planning and Job Search Support This repository is also used for career planning and job search preparation beyond CV generation. When working on career-related tasks: - Career retrospective documents may be created to analyze interview experiences and identify areas for improvement - Job search strategy materials and preparation notes may be stored here - Interview preparation content is already present in `prompt.md`, which outlines specific technical weaknesses and interview challenges - Documents may be in Chinese or English depending on context When assisting with career planning tasks, consider the context from `prompt.md` which identifies key areas needing attention: algorithm practice, React/JavaScript fundamentals, and project deep-dive preparation.