If you use or adapt this project, a credit or link back to this repository is appreciated — see Citation / credit.
A top-tier boutique resume agency skill for Claude Code. Acts as a panel of eight expert reviewers — AI veteran, HR specialist, founder, business operator, devil's advocate, creative reframer, QC lead, and hallucination detector — to build, critique, rewrite, and quality-control resumes until they reach 8.5+ quality with zero hallucinated claims. Final output includes a send-ready .docx.
The skill orchestrates a virtual agency panel that interviews you, drafts your resume section by section, challenges every claim, scores the result using a weighted multi-expert model, and iterates until the resume passes the stop conditions (overall score ≥ 8.5, no critical blocker flags, user acceptance).
Mode 1 — Build from scratch Starts with a structured intake (language → target industry → role/seniority → geography/company stage), builds the expert panel, then works through your resume section by section: header, summary, achievements, experience, education, skills. Each section is drafted, QC-reviewed, scored, and refined before moving on.
Mode 2 — Uploaded resume critique Paste or upload your existing resume. The skill detects it, asks only for missing targeting context, then delivers a full executive verdict: strengths, weaknesses, per-section scores, critical blocker flags, and an exact fix list. You then choose to rewrite, rebuild, or tailor.
Mode 3 — Fast mode Ask only the minimum blocking questions, run the full agency process behind the scenes, enforce all QA and hallucination controls, and deliver the strongest possible result with minimal back-and-forth.
Mandatory (always active):
- AI veteran
- HR / recruiter specialist
- Founder / entrepreneur
- Business leader / operator
- Devil's advocate
- Brainstorm / creative reframer
- Quality-control lead
- Hallucination detector
Context-dependent additions (spawned by the CEO as context reveals the need):
- Domain expert + industry-specific reviewer (when industry is provided)
- Language / localization expert (when language ≠ English)
- ATS specialist (corporate / large org targets)
- Executive branding expert (director+ / C-suite / partner roles)
When Claude Code agent teams are enabled, each of these experts runs as a real independent Claude instance — own context window, own task, direct inter-expert messaging. See Agent teams architecture below.
Each expert scores independently. A weighted overall score is computed. The skill also maintains internal per-section scores and tracks critical blocker flags. It stops only when all three stop conditions are met: score ≥ 8.5, zero blockers, user acceptance.
| Score range | Meaning |
|---|---|
| 0 – 3 | Weak / non-competitive |
| 4 – 6 | Usable but weak |
| 7 – 8.4 | Strong with clear issues |
| 8.5 – 8.9 | Send-ready strong |
| 9.0 – 9.4 | Must-call quality |
| 9.5+ | Exceptional (rare) |
- No hallucinated claims — ever
- No unsupported percentages or metrics
- No fake or inflated seniority
- No generic self-praise without evidence
- No sugarcoating — if something is weak, the panel will say so
- Memory (
workspace/memory.json) and progress (workspace/progress.json) are updated at every stage
- Final resume (formatted text)
- Panel report (per-expert verdicts)
- Scorecard (per-section + weighted overall)
- Rewrite / action plan
- Downloadable
.docx
Optional extras: tailored variants, LinkedIn summary, cover letter starter, interview talking points
Fun epilogue: once your resume is delivered, the agency offers to channel a famous figure from your industry (or a historical wildcard) for a 3–4 sentence in-character reaction to your resume — Elon Musk, Warren Buffett, Marie Curie, Sun Tzu, and more. Purely for fun; zero effect on the resume or scores.
CV_Boutique_Agency/
CLAUDE.md # Wires skill to this project
README.md # This file
requirements.txt # Python dependency (python-docx)
.gitignore
.claude-plugin/ # Marketplace catalog (plugin distribution)
marketplace.json
boutique-resume-agency/ # Plugin folder
.claude-plugin/
plugin.json # Plugin manifest
skills/
boutique-resume-agency/
SKILL.md # Main skill file with YAML frontmatter
scripts/
resume_agency_helpers.py # Panel building, weighted scoring, length checks
memory_manager.py # Load/save memory.json and progress.json
docx_export.py # DOCX export via python-docx
_file_utils.py # Shared atomic JSON write utility
tests/
test_resume_agency_helpers.py # 204 pytest tests across 4 files, 100% coverage
test_e2e.py
test_docx_export.py
test_memory_manager.py
references/
templates.md # Intake + critique + output templates
scoring_rubric.md # Score scale, blocker flags, pass criteria
memory_progress_spec.md # JSON schemas for memory and progress files
example_flows.md # Step-by-step example flows for each path
workspace/
memory.json # Persistent session memory
progress.json # Stage tracking and scores
outputs/ # Generated .docx files land here
Choose the setup that fits you:
| Option | Who it's for | Time |
|---|---|---|
| Plugin (one command) | Claude Code users — quickest start | 30 sec |
| Local clone | Claude Code users — want full control | 5 min |
| Claude.ai Project | No Claude Code — using Claude desktop or browser app | 5 min |
If this repo is public on GitHub, anyone can install the skill directly from Claude Code:
/plugin marketplace add stevesolun/CV_Boutique_Agency
/plugin install boutique-resume-agency@cv-boutique-agency
That's it — no cloning, no pip install needed to get the skill. Python (python -m pip install python-docx) is only needed if you want DOCX export.
- Claude Code installed and running
- Python 3.9+ (only needed for DOCX export)
git clone https://github.com/stevesolun/CV_Boutique_Agency
cd CV_Boutique_AgencyOr download and extract the ZIP, then open the folder.
The DOCX export function requires python-docx. Install it once:
python -m pip install python-docxWhy
python -m pipand notpip? On machines with multiple Python versions, barepipmay target a different interpreter thanpython. Usingpython -m pipensures both commands hit the same installation.
To verify:
python -c "from docx import Document; print('python-docx OK')"Open the CV_Boutique_Agency folder in Claude Code. Claude Code automatically reads CLAUDE.md on project open and activates the boutique resume agency skill.
You do not need to manually load any files. The skill is ready to use immediately.
The workspace/ folder ships with initialized memory.json and progress.json. Confirm they exist:
cat workspace/memory.json
cat workspace/progress.jsonIf either file is missing, regenerate defaults:
python -c "
import sys, json, pathlib
sys.path.insert(0, 'boutique-resume-agency/scripts')
from memory_manager import DEFAULT_MEMORY, DEFAULT_PROGRESS
pathlib.Path('workspace/memory.json').write_text(json.dumps(DEFAULT_MEMORY, indent=2))
pathlib.Path('workspace/progress.json').write_text(json.dumps(DEFAULT_PROGRESS, indent=2))
print('workspace files restored')
"No terminal, no install. The full expert panel, scoring model, intake flows, and resume length research all work inside a Claude Project on claude.ai — on any device (Windows, Mac, Linux, browser).
| Feature | Works? | Notes |
|---|---|---|
| Expert panel (all 8 experts) | ✅ | Full panel runs in conversation |
| Build from scratch (Path A) | ✅ | Section by section |
| Upload / critique resume (Path B) | ✅ | Paste your resume into the chat |
| Scoring model | ✅ | Per-expert + weighted overall |
| Hallucination detection | ✅ | All hard blocks enforced |
| Resume length research | ✅ | Claude.ai can search the web |
| Fast mode | ✅ | Say fast mode as normal |
| Memory / progress persistence | State lives in the conversation only — not persisted across sessions | |
| DOCX export (auto) | Requires manual script run (see below) | |
| Python script execution (auto) | ❌ | No file system access |
Step 1 — Create a new Project
Go to claude.ai → Projects → New Project. Give it a name like "CV Boutique Agency".
Step 2 — Set the skill as Project Instructions
Open the Project → Instructions → paste the full contents of boutique-resume-agency/skills/boutique-resume-agency/SKILL.md into the instructions field.
The agency will activate automatically for every conversation in this Project.
Step 3 — Upload the reference files
Upload these files to the Project's knowledge base (drag and drop):
boutique-resume-agency/references/templates.mdboutique-resume-agency/references/scoring_rubric.mdboutique-resume-agency/references/example_flows.mdboutique-resume-agency/references/memory_progress_spec.md
Step 4 — Start a conversation
Use the same trigger phrases as Claude Code. The agency activates immediately.
Claude.ai cannot execute Python directly, but you have two options:
Option A — Copy-paste into Word / Google Docs
When the resume reaches 8.5+, ask:
Format the final resume for copy-paste into Microsoft Word.
Claude will produce clean, structured text you can paste directly.
Option B — Run the export script manually
Ask Claude to produce the resume_data dict, then run it yourself:
Give me the resume_data dict for docx_export.py.
Then locally:
cd CV_Boutique_Agency
python -c "
import sys; sys.path.insert(0, 'boutique-resume-agency/scripts')
from docx_export import export_resume_to_docx
resume_data = { ... } # paste dict from Claude
export_resume_to_docx(resume_data, 'workspace/outputs/my_resume.docx')
"Memory doesn't auto-persist between conversations. To continue a session:
- At the end of a session, ask:
Give me the current memory.json and progress.json state. - Claude will output the JSON.
- At the start of your next session, paste it back:
Here's my previous session state: [paste JSON]
| Mode | How to activate | What happens |
|---|---|---|
| Tier 1 — Simulation (default) | Just start a session — no config needed | CEO simulates all 8+ experts in one context window. Works on Claude.ai, Claude Code, any subscription tier. |
| Tier 2 — Agent teams (experimental) | Enable CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 in settings.json + Claude Code v2.1.32+ |
Every expert runs as a real independent Claude instance with its own context. See Agent teams architecture. |
| Fast mode | Say fast mode or type /fast in the conversation |
Skips non-critical intake questions. Full agency logic runs behind the scenes. All QA and hallucination controls still enforced. |
| Interactive mode (default) | No phrase needed, or say interactive mode |
One section at a time, full back-and-forth with the panel. |
| Build from scratch | build my resume |
Full intake → section-by-section build → score → export |
| Critique / rewrite | Paste resume + critique my resume |
Executive verdict, per-section scores, fix list |
| Tailor to JD | tailor my resume for this JD: + paste JD |
Gap analysis, fit score, tailored version |
Say fast mode or type /fast at any point in the session (or prefix the session opener: fast mode. build my resume). These are skill trigger phrases — say them in the conversation, not as top-level CLI commands.
Fast mode skips geography, company stage, and other optional intake questions. The agency asks only the minimum blocking questions (language, path, industry/role) and then works autonomously.
To return to interactive mode, say interactive mode or standard mode.
See Tier 2 setup in the Agent teams section. To disable, remove CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS from settings.json — the agency falls back to Tier 1 simulation automatically with no change to the user experience.
Tell Claude Code (or Claude.ai with a Project) any of the following:
Build my resume from scratch.
I have my current resume here. Critique it.
Fast mode. Make this resume must-call quality.
Tailor my resume for this job description: [paste JD]
Push this resume to 9+ if realistically possible.
| Goal | Phrase |
|---|---|
| Build from scratch | build my resume, resume from scratch |
| Critique existing | critique my resume, resume critique |
| Full rewrite | rewrite my resume |
| Role-specific tailoring | tailor my resume |
| Minimal questions | fast mode resume |
| Activate explicitly | boutique resume agency |
Once the resume reaches 8.5+ and you accept it, Claude Code will call docx_export.py and save the file to workspace/outputs/. You can also request it explicitly:
Export the final resume to DOCX.
DOCX export fails with ModuleNotFoundError
python-docx is not installed. Run python -m pip install python-docx and retry. Use python -m pip (not bare pip) to ensure the package is installed for the same Python interpreter Claude Code is using.
Skill not activating
Confirm you opened the CV_Boutique_Agency folder (not a parent folder) in Claude Code so that CLAUDE.md is loaded.
Score stuck below 8.5 after multiple iterations
There are unresolved critical blocker flags. Review boutique-resume-agency/references/scoring_rubric.md for the full blocker flag list. Address each flag explicitly before re-scoring.
Memory or progress file corrupted Delete the affected file and let the skill regenerate it, or run the restore script in Step 4 above.
The boutique resume agency uses a two-tier execution model. The expert panel, scoring, hallucination detection, and context-dependent expert additions are identical in both tiers — only the execution model differs.
| Tier 1 — Simulation (default) | Tier 2 — Agent teams (experimental) | |
|---|---|---|
| Works on | Claude.ai, Claude Code, any tier — zero config | Claude Code v2.1.32+ with CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 |
| Execution model | CEO simulates all experts in one context window | Every expert is a real independent Claude instance |
| Context-dependent experts | ✅ CEO adds them via simulation as context reveals the need | ✅ CEO spawns real subagents on-the-fly with full context |
| Scoring / QC / hallucination detection | ✅ Identical logic | ✅ Identical logic |
| Expert-to-expert messaging | Simulated by CEO | Real direct inter-expert messages |
| Token cost | Single context window | Scales with active experts (8–13 instances) |
| Session announcement | "Running in agency simulation mode…" | No announcement — normal operation |
Both tiers share the same stop conditions, scoring weights, blocker flags, and export flow.
Step 1 — Verify Claude Code version
claude --version # must be v2.1.32+Step 2 — Enable agent teams
// settings.json
{
"env": {
"CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
}
}Step 3 — Start a session as normal. The CEO runs the full Tier 2 flow automatically — no special trigger phrase needed.
The "experimental" label is honest: the Claude Code agent teams API itself is experimental. The skill's architecture and protocols are production-ready.
Session start: CEO spawns all 8 mandatory core experts. Each expert receives a full spawn prompt with persona, scope, input contract (session context + task object), and required JSON output format.
Wave execution per review cycle:
- Wave 1 (parallel): AI Veteran, HR Specialist, Founder, Business Operator, Domain Expert (if active), ATS Specialist (if active)
- Wave 2 (after Wave 1): Devil's Advocate, Creative Reframer
- Wave 3 (after Wave 2): QC Lead, Hallucination Detector
Context-dependent experts: When intake reveals a specific industry, senior role, non-English language, or high-norm sector, the CEO generates a full tailored spawn prompt and spawns the specialist as a real subagent at that moment.
Synthesis: CEO reads all expert return contracts, runs weighted_score(), promotes any HARD_BLOCK: flag (Hallucination Detector) to a confirmed blocker regardless of other scores, and presents the panel verdict.
Error / timeout: Expert timeout = 90 seconds. On timeout, CEO marks status error, redistributes that expert's weight across remaining experts via normalization, and continues. Hallucination Detector failure blocks export entirely until resolved.
Complete spawn prompts (one per expert, ~15 lines each), input/return contract JSON schemas, and error-handling protocol are defined in SKILL.md under "Agent teams architecture".
In-process mode (default) works on Windows and in VS Code's integrated terminal. Split-pane mode requires tmux or iTerm2 and is not available in VS Code. Use Shift+Down to cycle between active expert sessions.
| Target | Score | Meaning |
|---|---|---|
| Minimum to stop | 8.5+ | Send-ready |
| Strong target | 9.0+ | Must-call quality |
| Exceptional | 9.5+ | Rare — only when evidence fully supports it |
This project is released under the MIT License. You are free to use, adapt, and redistribute it. If you use or build on this work, a credit or link back is appreciated but not legally required.
Suggested citation format:
Solun, S. (2026). CV Boutique Agency — Claude Code Skill [Software].
GitHub. https://github.com/stevesolun/CV_Boutique_Agency
BibTeX:
@software{solun2026cvboutique,
author = {Solun, Steve},
title = {{CV Boutique Agency} — Claude Code Skill},
year = {2026},
publisher = {GitHub},
url = {https://github.com/stevesolun/CV_Boutique_Agency}
}