From cv
Generate, adapt, and update CVs from structured data stored in cv_data.json. Triggers: "cv" | "generate cv" | "generate my cv" | "adapt cv" | "update cv" | "tailor cv" | "make my resume" | "update my resume" | "write my cv" | "adapt my resume for" | "tailor my cv for".
npx claudepluginhub roxabi/roxabi-plugins --plugin cvThis skill is limited to using the following tools:
Generate professional CVs from structured data. Adapt them for specific job postings. Update the master data file.
Builds ATS-optimized resumes for developers and product managers from PDFs/DOCX, LinkedIn PDFs, GitHub profiles, or guided interview.
Generates ATS-optimized resumes and CVs for developers. Provides bullet point formulas with action verbs and metrics, tailors to job descriptions, exports to Markdown, HTML, LaTeX, PDF.
Generates ATS-optimized resumes tailored to job postings using profile data and evaluations, outputting clean printable HTML. Auto-activates on 'tailor my resume' or similar requests.
Share bugs, ideas, or general feedback.
Generate professional CVs from structured data. Adapt them for specific job postings. Update the master data file.
Let: V := ~/.roxabi-vault/cv/ — plugin data root D := V/cv_data.json — master CV data G := V/generated/ — generated CVs A := V/adapted/ — job-adapted CVs T := /templates/ — Jinja2 templates S := /scripts/generate_cv.py — generation script C := ~/.roxabi-vault/config/cv.json — plugin config
test -f ~/.roxabi-vault/cv/cv_data.json && echo "OK" || echo "MISSING"
¬D → "No cv_data.json found. Run /cv-init to set up the CV plugin." Halt.
python3 -c "import jinja2" 2>/dev/null && echo "OK" || echo "MISSING"
¬jinja2 → "Jinja2 is required. Install with: pip install jinja2". Halt.
Parse $ARGUMENTS:
| Intent | Signal | Action |
|---|---|---|
| Generate | "generate", "create", "build", no args | Generate CV from D |
| Adapt | "adapt", "tailor", "for [job]", URL or job description | Adapt CV for role |
| Update | "update", "add", "change", "edit" | Modify D |
Ambiguous → → DP(A) Generate | Adapt | Update
cv_template; use cv_template_rich if D has experiences key with title/dates/sections fields, or user requests it.python3 <plugin>/scripts/generate_cv.py --data ~/.roxabi-vault/cv/cv_data.json --lang <lang> --format <format> [--template cv_template_rich]
--lang all → one file per language (cv_fr.md, cv_en.md); --lang fr → cv.md (no suffix). --format all → md + html. Both experience/experiences keys accepted (aliased). Report output path(s).
/tmp/cv_adapted.json, generate:python3 <plugin>/scripts/generate_cv.py --data /tmp/cv_adapted.json --output ~/.roxabi-vault/cv/adapted/cv_<company>_<date>.<format> --format <format>
Read D → present structure → → DP(A) Experience | Skills | Education | Personal info → apply changes → validate JSON.
test -f ~/.roxabi-vault/vault.db && echo "VAULT_AVAILABLE" || echo "NO_VAULT"
VAULT_AVAILABLE → after generate/adapt: index output file with category=cv + type tag.
$ARGUMENTS