| name | resume-sensei |
| description | Comprehensive resume builder, ATS optimizer, and career version assistant. Use this skill whenever the user asks to:
- Write, review, format, or optimize a resume, CV, or professional profile.
- Tailor a resume to a specific job description or target role.
- Check ATS compatibility, calculate keyword match scores, or find missing skills.
- Quantify achievements, rewrite experience bullets, or apply Google's X-Y-Z formula.
- Parse or extract text from an uploaded resume (e.g., PDF, DOCX, TXT formats).
- Generate, edit, or output Typst markup code for a resume.
- Initialize the resume hub workspace ("initialize resume workspace", "start resume setup").
- Track job applications and manage different tailored resume versions.
Use this skill even if the user does not explicitly name 'resume-sensei', as long as they provide a resume file, job description, or request updates to their work history.
|
Resume Sensei
Context Efficiency Rule (Lazy Loading)
CRITICAL — Read this before loading reference files.
This skill contains specialized guides to avoid context window bloat. Do NOT pre-load all references. Use lazy loading — only read a reference file using view_file when performing its specific workflow:
| Load this file... | When... |
|---|
references/ats_optimization.md | Conducting ATS scoring, keyword matches, or auditing layout flags. |
references/bullet_writing.md | Quantifying results, applying Google's X-Y-Z/STAR formulas, or drafting active verbs. |
references/formatting_and_sections.md | Designing layout hierarchies, setting margins, or organizing page budgets. |
references/tailoring_and_versioning.md | Customizing a resume to a target job description or setting up application trackers. |
Never load more than 1--2 reference files at a time.
Core Workflows
1. Workspace Setup & Initialization
When the user requests to start a new resume project or "initialize the resume workspace," perform the following steps:
- Copy the entire
assets/resume-hub/ directory into the root of the user's active project directory.
- Maintain the folder structure:
/Master/Master_Resume.md (The source of truth containing all experience history).
/Tailored/ (Folder where tailored versions for specific applications will reside).
/Applications/tracker.md (The markdown file tracking sent resumes and statuses).
/Templates/template.typ (Reusable Typst layout template defining styles and functions).
/Templates/resume.typ (Typst resume entry point with actual experience and skills data).
/Templates/fonts/ (Mulish font files required for local compilation).
- Instruct the user to paste their existing resume into
Master/Master_Resume.md, or assist them in compiling their information manually.
2. Ingestion & Reading Uploaded Resumes
If the user uploads an existing resume file:
- PDF files: Use the native
view_file tool to read the text. Note that standard text extraction can scramble multi-column resume layouts by merging columns horizontally. Verify the extracted content in Master_Resume.md matches the source structure. If it is garbled, prompt the user to copy-paste the text directly or provide a .docx or .md copy.
- DOCX files: Run the custom python script:
python3 scripts/parse_resume.py <path_to_docx>
to extract structured text without external dependencies.
- TXT/MD/TEX files: Read them directly using
view_file.
- Action: Convert the extracted data into clean markdown format and save it in
Master/Master_Resume.md to establish the source of truth.
3. ATS Screening & Optimization
When the user provides a job description (JD) and wants to check their resume's match:
- Read
references/ats_optimization.md.
- Extract required hard skills, soft skills, and domain terms from the JD.
- Cross-reference with the user's resume and calculate the keyword match score.
- Generate the ATS Compatibility & Keyword Report using the template defined in the reference.
4. Improving Bullets & Quantification
When the user wants to polish their bullets or add metrics:
- Read
references/bullet_writing.md.
- Identify weak bullet points (e.g., passive language, missing results).
- Prompt the user with targeted metric-discovery questions if metrics are missing.
- Rewrite the bullets using Google's X-Y-Z or STAR formulas.
- Output a structured comparison showing the "Original," "Improved," and "Key Changes" for each bullet.
5. Tailoring and Version Control
When the user is applying for a specific job:
- Read
references/tailoring_and_versioning.md.
- Analyze the target company's priorities and align the resume summary, skill ordering, and experience bullet hierarchy.
- Write the tailored resume source to
Tailored/[Role]/[LastName]_Resume_[Company]_[YYYY-MM].typ (or markdown).
- Update
Applications/tracker.md by appending a new row with the target details, matching file name, and setting status to Applied.
6. Typst Code Generation & Design Rules
When generating Typst resume source code:
- Layout Style Selection: Before exporting the
.typ file, check if the user has a preference, or offer these choices:
style: "classic" (Default): Solid colored header banner blocks with white text (vibrant, modern look).
style: "modern": Left-aligned minimalist headers with a thin colored bottom underline (clean, high-density traditional corporate/academic look).
- Theme Color Selection: Default to Slate Grey (
#4A5568) or Blue (#0F83C0). Offer these recommended color choices (or let the user provide a custom brand hex color):
- Slate Grey:
#4A5568
- Blue:
#0F83C0
- Green:
#2EA043
- Purple:
#8957e5
- Strict Typst Syntax Safety: Follow Typst markup rules:
- No LaTeX Escaping Needed: Do NOT escape special characters like
& or % or $ unless they are layout directives.
- Escape Underscores in Body Text: Underscores
_ signify italics in Typst markup. To output a literal underscore in text (like node_js or variable names), escape it as \_ (e.g., node\_js).
- Imports: Always use
#import "../Templates/template.typ": * (if generating in a subfolder like Tailored/SWE/) or #import "template.typ": * (if generating in the Templates directory).
- Section Formatting: Invoke
section(title: "Section Title", content: (...subSections...)) and subSection(...) as defined in template.typ.
- Trailing Commas on Arrays: In Typst, single-element tuples must end with a trailing comma to be parsed as arrays, e.g.
content: (subSection(...),). Ensure you preserve trailing commas on all single-element arrays to prevent compiler crashes.
- Lists: Bullet points in a subSection's
content block can use Typst bullet lists: #list([bullet 1], [bullet 2]) or standard markdown bullet lists * bullet within content bracket blocks [...].
- Ensure the generated Typst code contains no syntax errors, utilizes only standard functions defined in the template, and aligns exactly with margins and page constraints (maximum 2 pages).
- Local Verification & Compilation: Run
python3 scripts/compile_resume.py <path_to_typ> to verify that the generated Typst compiles cleanly to a PDF. If no local Typst compiler is detected, provide clear fallback instructions to the user to compile online via the Typst App (https://typst.app).