一键导入
init-cv
Onboard a new master CV from a PDF or YAML file. Use when the user wants to set up or replace the master resume. Accepts a file path as the argument.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Onboard a new master CV from a PDF or YAML file. Use when the user wants to set up or replace the master resume. Accepts a file path as the argument.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Tailor the master resume for a specific job posting, persisting the job analysis locally before updating the CV. Use when the user provides a job URL or pasted job description and wants a tailored CV generated.
Score a tailored CV against a previously saved job analysis artifact. Use when the user wants a grounded 0-100 match score without re-running job extraction.
Tailor a master CV using a previously saved job analysis artifact. Use when the user wants to update a CV from a stored JD analysis instead of re-running job extraction.
Use when the user wants a concise, first-person cover letter tailored to a specific role from a job URL or pasted job description and a real resume YAML, especially when length, tone, greeting, or sign-off constraints matter.
Use when the user wants a concise, first-person answer to an application or screening question, grounded in a real resume YAML and a specific role or job description, including cases where the resume or job context is already in the current conversation, especially when the answer should stay to one paragraph and use simple, natural language.
Re-render a CV YAML to PDF using RenderCV. Use when the user wants to re-render a template or tailored CV without re-running the full tailor workflow. Accepts an optional file path argument; defaults to prompting the user to choose from available YAMLs.
| name | init-cv |
| description | Onboard a new master CV from a PDF or YAML file. Use when the user wants to set up or replace the master resume. Accepts a file path as the argument. |
| disable-model-invocation | true |
Onboard a new master CV from a PDF or YAML file.
/init-cv <path-to-pdf-or-yaml>
Examples:
/init-cv ~/Downloads/resume.pdf/init-cv ~/Documents/my_resume.yamlFollow these steps exactly in order:
Read the file at the provided path. Determine whether it is a PDF or a YAML file by its extension (.pdf vs .yaml / .yml).
If the file does not exist or the extension is unrecognised, report the error and stop.
If PDF: Read the PDF content and extract all resume data. Produce a RenderCV-compliant YAML with the following structure:
cv:
name: "Full Name"
email: "email@example.com"
phone: "+1 555 000 0000"
location: "City, Country"
website: "https://..."
social_networks:
- network: LinkedIn
username: username
sections:
summary:
- "..."
experience:
- company: "..."
position: "..."
location: "..."
start_date: "YYYY-MM"
end_date: "YYYY-MM" # or "present"
highlights:
- "..."
education:
- institution: "..."
area: "..."
degree: "..."
start_date: "YYYY"
end_date: "YYYY"
skills:
- label: "Category"
details: "Skill 1, Skill 2, Skill 3"
design:
theme: classic
typography:
line_spacing: 0.8em
font_size:
body: 9.5pt
headline: 9.5pt
connections: 9.5pt
page:
show_footer: false
show_top_note: false
header:
connections:
phone_number_format: international
section_titles:
space_above: 0.8cm
entries:
date_and_location_width: 3cm
highlights:
space_above: 0.2cm
sections:
show_time_spans_in: []
space_between_regular_entries: 0.2cm
templates:
experience_entry:
main_column: "**COMPANY**, POSITION — LOCATION\nSUMMARY\nHIGHLIGHTS\n"
date_and_location_column: "DATE"
education_entry:
main_column: "**INSTITUTION**, DEGREE in AREA — LOCATION\nSUMMARY\nHIGHLIGHTS"
degree_column: null
date_and_location_column: "DATE"
normal_entry:
main_column: "**NAME**\nSUMMARY\nHIGHLIGHTS\n"
date_and_location_column: ""
Follow RenderCV entry type rules:
company field for experience entries (ExperienceEntry)institution field for education entries (EducationEntry)name field for project entries (NormalEntry)label field for one-line entries (OneLineEntry)cv.sections.summary in standard resume style with implied first person: no I, he, him, she, her, they, or similar pronouns.Follow layout rules (see Layout Rules section below).
If YAML: Read the file and validate it conforms to RenderCV structure. Check that:
cv and optionally design and settingscv.name is presentcv.sections.summary exists, flag first-person or third-person pronouns in summary bullets and normalize them to standard resume style before saving.settings.bold_keywords exists, remove it or set it to an empty list before saving. This repo does not use global keyword auto-bolding because it affects fixed sections like certifications.Report any structural issues found. If the YAML is valid, proceed to Step 3.
Check whether templates/<name>_cv.yaml already exists (where <name> is the person's name, lowercased, spaces replaced by underscores).
If it does, ask the user to confirm before overwriting:
templates/<name>_cv.yamlalready exists. Overwrite it? (yes/no)
Do not proceed until the user confirms.
Save the parsed or validated YAML to templates/<name>_cv.yaml, where <name> is the person's name from the CV, lowercased, with spaces replaced by underscores (e.g., templates/david_alecrim_cv.yaml).
Use the Makefile render target, which delegates to scripts/render.py to handle rendering cross-platform — output always lands in ./output/:
make render FILE=templates/<name>_cv.yaml
If the render succeeds, report the path to the generated PDF and confirm setup is complete.
If the render fails, show the error output and list what needs to be fixed. Do not delete the saved master_cv.yaml — let the user fix and re-run.
These rules prevent common rendering issues in the classic theme and must be applied when producing YAML from a PDF or validating an existing YAML:
Experience entries:
summary field for a one-line company description (rendered as italic text under the position). Do not put the company description in highlights.highlights. Technology context belongs in the skills section.Education entries:
degree short: use abbreviations like BSc, MSc, Specialization, PhD.area holds the field of study (e.g., Computer Science, Software Engineering).design.templates.education_entry block to prevent degree column overflow and hyphenation. The degree_column: null moves DEGREE inline into the main column, and location is placed inline via the main_column template:
design:
theme: classic
templates:
education_entry:
main_column: "**INSTITUTION**, DEGREE in AREA — LOCATION\nSUMMARY\nHIGHLIGHTS"
degree_column: null
date_and_location_column: "DATE"
Typography defaults:
design:
theme: classic
typography:
line_spacing: 0.8em
font_size:
body: 9.5pt
headline: 9.5pt
connections: 9.5pt
sections:
show_time_spans_in: []
space_between_regular_entries: 0.2cm
Project entries:
name values. Do not use Markdown links in project names.start_date, end_date, or date fields. Project sections should not show a time window.design.templates.normal_entry block:
design:
theme: classic
templates:
normal_entry:
main_column: "**NAME**\nSUMMARY\nHIGHLIGHTS\n"
date_and_location_column: ""
Skills entries:
details value under ~80 characters. Long comma-separated lists wrap badly.label entries rather than cramming everything into one line.AWS (EKS, RDS, S3, ...) inline — list the services separately if needed.Summary entries:
I ...) or third person (he ..., she ..., they ...).Certifications:
OneLineEntry per certification. label is the full cert name; details is the date (required by RenderCV):
- label: "AWS Certified Solutions Architect – Professional"
details: "May 2024"
- label: "Certified Kubernetes Administrator (CKA) – CNCF"
details: "Aug 2023"
templates/ becomes the source of truth for all future /chameleon runs.rendercv is not installed, tell the user to run make install-tools before retrying Step 5.