| name | ai-used-resume |
| description | Generate a versioned, reviewer-scored résumé from the user's AI-coding and git history — extracts from Claude Code, Cursor, Copilot, Cline, Continue, Aider, Windsurf, Zed AI, Claude Desktop, ChatGPT/Claude.ai/Gemini/Grok/Perplexity/Mistral/Poe cloud exports, ComfyUI, Midjourney, Suno, ElevenLabs, and git commits. Renders to Markdown / DOCX / PDF across 10 locales (en_US, en_EU, en_GB, zh_TW, zh_HK, zh_CN, ja_JP, ko_KR, de_DE, fr_FR) with culture-specific layouts (JIS Z 8303 履歴書 grid, Europass, Lebenslauf, bilingual HK), optional JD-tailored bullet rewriting, and an 8-point reviewer audit with score trend. Use when the user asks to "generate my résumé", "render my résumé in Japanese", "tailor my CV for this job description", "score my résumé", or "show my résumé trend". Use when this capability is needed. |
| metadata | {"author":"easyvibecoding"} |
ai-used-resume
When to Use
Invoke this skill whenever the user wants to turn their AI-tool usage history into a résumé artefact. Common triggers:
- "Generate my résumé from my AI usage."
- "Render my CV in Japanese / German / Traditional Chinese / Europass."
- "Tailor my résumé for this JD."
- "Review / score my latest résumé."
- "Show my résumé score trend."
- "Which locales am I weakest in?"
Do NOT invoke when the user:
- Asks to write résumé content from scratch without AI-usage history (no signal source).
- Wants a generic CV template — this skill is opinionated about the AI-coding-era narrative.
- Asks for a profile on a platform that doesn't use Markdown/DOCX/PDF (e.g. LinkedIn scraping).
Quick Reference
| Intent | Command |
|---|
| Fresh pipeline | uv run vibe-resume extract && uv run vibe-resume aggregate && uv run vibe-resume enrich --locale en_US && uv run vibe-resume render -f all |
| Render single locale | uv run vibe-resume render -f md --locale ja_JP |
| All 10 locales | uv run vibe-resume render --all-locales |
| JD-tailored run | uv run vibe-resume enrich --tailor data/imports/jd.txt --locale en_US -n 1 && uv run vibe-resume render -f md --locale en_US --tailor data/imports/jd.txt |
| Persona-biased enrich | uv run vibe-resume enrich --persona tech_lead --locale en_US (keys: tech_lead / hr / executive / startup_founder / academic) |
| Multi-persona enrich in one run | uv run vibe-resume enrich --persona tech_lead,hr,executive --locale en_US or --persona all — each persona writes its own _project_groups.<persona>.json |
| Persona render | uv run vibe-resume render --persona tech_lead --locale en_US reads the persona-scoped cache and emits resume_v<NNN>_<locale>_<persona>.md |
| Compare persona output | uv run vibe-resume personas-compare -n 3 — side-by-side bullets per persona for the top-N groups (quality iteration loop) |
| Score latest | uv run vibe-resume review |
| Score with JD echo | uv run vibe-resume review --jd data/imports/jd.txt |
| Score with persona lens | uv run vibe-resume review --persona hr — appends persona-specific review tips |
| Per-locale trend | uv run vibe-resume trend --locale zh_TW |
| Locale quick map | |
|---|
en_US | default, XYZ verbs, ATS flat skills |
en_EU | Europass labelled personal-info, CEFR |
en_GB | UK spelling, Personal statement |
zh_TW | 繁中,中英技術混排 |
zh_HK | bilingual EN + 繁 headings |
zh_CN | 简体,大厂 ATS-friendly |
ja_JP | DOCX = JIS Z 8303 履歴書 grid; md = 職務経歴書 |
ko_KR | 이력서 + photo expected |
de_DE | Lebenslauf + Persönliche Daten, photo expected |
fr_FR | Profil / Compétences / Expérience |
Procedure
-
Locate the repo. The CLI binary is vibe-resume; check with which vibe-resume or uv run vibe-resume --help. If not installed, ask the user whether to clone https://github.com/easyvibecoding/vibe-resume and run uv venv && uv pip install -e ".[dev]".
-
Verify profile.yaml.
- If still the example (
Your Name placeholder), ask for name, email, target_role, summary. Optional: experience, education, languages, custom_sections.
- For locale-specific text, use
<field>_<locale> overrides (e.g. title_zh_TW, summary_ja_JP, bullets_de_DE). See profile.example.yaml for the full list including locale-conditional personal fields (dob, gender, nationality, mil_service, photo_path, marital_status) — only rendered when the active locale's personal_fields includes them.
-
Confirm config.yaml knobs.
scan.mode — full for all $HOME .git repos, whitelist to restrict to scan.roots (use if first run is slow).
privacy.blocklist — project names to exclude from extractor output.
privacy.abstract_tech — true to hide concrete tech names.
render.locale — team default.
render.all_locales_formats — formats per locale for --all-locales (default ["md"]).
-
Run extractors → aggregate → enrich.
uv run vibe-resume extract
uv run vibe-resume status
uv run vibe-resume aggregate
uv run vibe-resume enrich --locale <L>
Pitfalls
The full catalogue of failure modes and their fixes — mixed-script
locale leaks, --all-locales format quirk, first-run extraction
slowness, CJK contact-line wrapping, the claude -p optional fallback,
and the privacy rules around profile.yaml / data/imports/ — lives
in references/troubleshooting.md.
Verification
After a full run, confirm:
ls data/resume_history/ | tail -n 10
uv run vibe-resume review --locale <L> | tail -n 5
uv run vibe-resume trend --locale <L>
For a JD-tailored run, spot-check that the output bullets surface the JD's key nouns:
grep -iE "$(awk '/[A-Z][A-Za-z]{3,}/{print $1}' data/imports/jd.txt | head -5 | paste -sd '|' -)" data/resume_history/resume_v*_<L>.md
For multi-locale batch runs, make sure there's no cross-script leak:
grep -cE "設計|處理|實作|業務" data/resume_history/resume_v*_ja_JP.md
grep -cE "設|實|業" data/resume_history/resume_v*_zh_CN.md
End-to-end example — "one JD, every market"
for loc in en_US ja_JP de_DE zh_TW; do
uv run vibe-resume enrich --tailor data/imports/jd.txt --locale "$loc" -n 3
done
for loc in en_US ja_JP de_DE zh_TW; do
uv run vibe-resume render -f all --locale "$loc" --tailor data/imports/jd.txt
done
for loc in en_US ja_JP de_DE zh_TW; do
uv run vibe-resume review --locale "$loc"
done
uv run vibe-resume trend
Strategic résumé: --company <key> --level <key>
enrich and review accept two extra axes — a named target employer
(70 bundled profiles in core/profiles/*.yaml) and a seniority bracket
(6 career-level archetypes) — stacked on top of --locale /
--persona / --tailor. Block injection order is
tailor → persona → level → company. Every apply auto-checks
last_verified_at and warns loudly if older than 90 days.
See references/strategic-resume.md for
the full axis reference, company list/show/audit/verify/
mark-verified commands, and the drop-in recipe for adding a new
employer profile.
Extending the pipeline
When the user asks to add a new extractor, locale, or persona, consult
references/extending.md for the Activity
schema contract, registration steps, and the "never invent activities"
rule.
Useful sibling commands
uv run vibe-resume status — per-source activity counts
uv run vibe-resume list-versions — résumé version history from internal git
uv run vibe-resume diff v001 v002 — diff two versions
uv run vibe-resume completion zsh --install — shell completion so --locale <tab> expands
scripts/backup_claude_projects.sh (macOS/Linux) / scripts/backup_claude_projects.ps1 (Windows) — back up ~/.claude/projects before Claude Code's 30-day cleanup
Source: easyvibecoding/vibe-resume — distributed by TomeVault.