| name | setup |
| description | Bootstrap or refresh the resume-builder project. Creates project structure, writes plugin docs for the AI. Run first after installing the plugin, or after plugin updates. Use when: 'setup', 'bootstrap', 'refresh plugin docs', 'sync plugin', 'update resume-builder docs'. |
| argument-hint | [--force to overwrite existing docs] |
/setup — Bootstrap Resume Builder Project
Purpose
Create the project structure and write comprehensive plugin documentation to platform-specific instruction files. This gives the AI full context for all skills in every future session.
Run this:
- First time after installing the plugin
- After plugin updates to refresh documentation
User flow: /setup → restart Claude Code → use any skill with full context
Process
Step 1 — Create Project Structure
Create the following directories and files. Skip anything that already exists — never overwrite user content.
resume.yaml — create empty scaffold if it doesn't exist:
header:
name: ""
title: ""
location: ""
email: ""
phone: ""
linkedin: ""
github: ""
summary:
paragraph: ""
bullets: []
skills: []
experience: []
projects: []
education:
degree: ""
institution: ""
knowledge/corrections.yaml — create with corrections: [] if it doesn't exist
knowledge/sessions/.gitkeep — create directory with keepfile
artifacts/.gitkeep — create directory with keepfile
.gitignore — append these entries if they don't already exist (never overwrite):
.DS_Store
__pycache__/
*.pyc
node_modules/
.$*.drawio.bkp
.$*.drawio.dtmp
Step 2 — Write Plugin Docs to CLAUDE.md
Write the plugin documentation to the consumer project's CLAUDE.md:
- Use
<!-- resume-builder:start vX.Y.Z --> / <!-- resume-builder:end --> markers
- If markers exist → replace between them. If file doesn't exist → create it. If no markers → append.
The section must contain the following content. Write it exactly — this is the AI's reference guide for all future sessions:
<!-- resume-builder:start v0.2.7 -->
# Resume Builder Plugin
A Claude Code plugin for resume management. Parse, generate, tailor, score, and verify resumes with anti-fabrication enforcement. Includes company research and strategic qualification to approach job search like a sales professional — understand the buyer's pain before pitching.
## Project Structure
### Source Files (plugin-managed)
| File | Description | Created By |
|------|-------------|------------|
| `resume.yaml` | Single source of truth for all resume content | /setup |
| `knowledge/corrections.yaml` | Fabrication error log — records corrected claims | /setup |
| `knowledge/sessions/{company}/{role}/{date}_{skill}.yaml` | Per-role session history | skills |
| `knowledge/sessions/{company}/company.yaml` | Company research profiles | /research |
| `knowledge/sessions/{company}/{role}/summary.md` | Append-only skill run summaries | skills |
| `artifacts/` | Project documents for /ingest — Confluence exports, diagrams, design docs | user |
### Generated Files (do not edit — regenerated by skills)
| File | Created By |
|------|------------|
| `resume.md`, `resume.pdf`, `resume.docx`, `index.html` | /generate |
| `knowledge/sessions/{company}/{role}/tailored/` (resume.yaml, PDF, DOCX, HTML, MD, cover letter) | /tailor, /cover-letter, /apply |
> The pdf/docx/md basename defaults to `resume`. Set a top-level `output_name:` in `resume.yaml` (e.g. `wilson_resume`) to personalize it for every `/generate`. HTML is always `index.html`.
### Customization Files (optional, user-created in `templates/`)
`pdf_styles.yaml` (PDF) | `docx_styles.yaml` (DOCX, same schema) | `resume.html.j2` (full HTML replacement) | `style.css` (CSS overrides)
### NOT Plugin Files
| Pattern | Why |
|---------|-----|
| `skills.yaml` | Skill data belongs in `resume.yaml` under `skills:` |
| `generate_resume_*.*` | Legacy script. Replaced by `resume-builder generate` |
| | Project AI instructions — not resume data, preserved |
Bootstrap or refresh the resume-builder project. Creates project structure, writes plugin docs for AI context. Run first after installing, or after plugin updates.
Import an existing resume into resume-builder format. Scans for existing resume files (PDF, DOCX, Markdown, YAML), interviews the user to fill gaps, writes .
Generate PDF, DOCX, HTML, and Markdown from . Fully deterministic, no LLM involvement in rendering. Supports template customization via directory.
Tailor resume for a specific job description. Adjusts header title, rewrites summary, and reorders/trims skills for JD relevance — experience and projects are copied verbatim. Internally runs , verifies, generates outputs, scores before/after, and does a quick persona check. Uses CompanyProfile for sharper results if available. Saves to — never modifies the original.
Score resume against a job description using ATS (8-component) and HR (6-dimension) rubrics. Use after /generate or /tailor to measure match quality.
Quick gap analysis — match resume skills against a job description. Identifies missing skills, weak areas, transferable skills, and overcovered areas. Use for a fast 2-minute skills check before deciding whether to apply.
Multi-persona resume review with up to 7 AI personas (ATS bot, recruiter, hiring manager, HR screener, technical reviewer, engineer peer, sales strategist). Automatically discovers and loads all available prior context — CompanyProfile, match/qualify/tailor/score sessions — so personas give informed feedback rather than cold reads. Sales strategist activates when a CompanyProfile exists. Reviews the tailored resume when one exists. Use for deep feedback beyond /tailor's quick check.
Anti-fabrication verification. Checks all claims trace to source, no fabricated metrics or technologies, no previously corrected errors reintroduced.
Analyze project artifacts (source code, GitHub repos, blog posts, docs, diagrams) and propose verified resume updates. Drafts bullets with provenance. Use after completing a project to capture achievements while details are fresh.
Research a company and build a CompanyProfile — pain points, tech stack, culture, growth signals, key people. Every fact traced to source. Profiles persist in for reuse. Use before /tailor, /qualify, /review, or /cover-letter for sharper results.
Assess "how much do they need me?" instead of "do I meet their bar?" Scores across 6 strategic dimensions. Produces a brief with positioning angle, interview talking points, and discovery questions. Use after /research to decide go/no-go on an opportunity.
Generate a tailored cover letter (250-400 words) with claim verification. Every factual claim must trace to . Consumes , , and CompanyProfile data when available for stronger positioning. Saves to .
End-to-end application pipeline. Fire-and-forget: runs research → match → qualify → tailor → score → review → cover-letter → verify in one shot. Produces tailored resume (PDF/DOCX/HTML/MD), cover letter, scores, and review. Optimized for multi-job-same-company use — company research is performed once and reused. All output lands in .
setup ──→ project structure + plugin docs
import ──→ resume.yaml ──→ generate (outputs)
│
├──→ ingest ──→ verify (auto)
│
├──→ research ──→ sessions/{company}/company.yaml ─┬─→ qualify
│ ├─→ tailor ──→ verify (auto) ──→ score
│ ├─→ review (enables sales-strategist)
│ └─→ cover-letter
│
├──→ match (called internally by tailor, cover-letter, qualify)
│
├──→ apply (runs: research → match → qualify → tailor → score → review → cover-letter → verify)
│
├──→ score
├──→ review
└──→ verify
Arrows show data flow, not required ordering.
"auto" means the skill runs it internally.
Skills work without optional inputs but produce better results with them.
/apply is the full pipeline — individual skills can still be run standalone.
## Workflows
| Scenario | When to Use | Skills | Time |
|----------|------------|--------|------|
| First-Time Setup | Just installed, no resume.yaml | setup, import, generate | 15-30 min |
| Quick Apply | Have resume, need to tailor fast | tailor | 5-10 min |
| Full Application | Complete pipeline, fire-and-forget | apply | 30-60 min |
| Dream Job Deep-Dive | High-value opportunity, full prep | research, qualify, tailor, review, cover-letter | 30-60 min |
| Resume Maintenance | Finished a project, capture achievements | ingest, generate | 10-20 min |
| Pre-Interview Prep | Got an interview, need company intel | research, qualify, review | 15-30 min |
| Opportunity Evaluation | Deciding whether to apply | match, qualify | 10-20 min |
## Anti-Fabrication Rules
Enforced across all skills and tools:
1. Never add technologies, metrics, or experiences not in `resume.yaml`
2. Never modify quantified metrics (dates, percentages, numbers)
3. Never invent performance numbers, cost savings, or user counts
4. Never claim certifications, degrees, or titles not in the source
5. Never embellish shared work as solo accomplishments
6. May reorder, emphasize, or trim existing content
7. May rephrase bullets to use JD keywords if meaning is preserved
8. Never reorder experience entries during tailoring; preserve original order
## Writing Style Rules
Enforced across all generated content (tailored resumes, cover letters, summaries):
1. Never use em-dash (—) or en-dash (–). Use commas, periods, or semicolons.
2. Never use hyphens (-) as clause separators. Hyphens only for compound words (e.g., "full-stack").
3. Prefer direct, concrete language. No filler phrases.
## resume.yaml Schema
```yaml
header:
name: "Jane Doe"
title: "Senior Software Engineer"
location: "San Francisco, CA"
email: "jane@example.com"
phone: "(555) 123-4567" # optional — omit to exclude from outputs
linkedin: "linkedin.com/in/janedoe"
github: "github.com/janedoe"
summary:
paragraph: "Software engineer with 10+ years..."
bullets:
- label: "Track Record"
text: "Scaled platform from 100 to 10K RPS..."
provenance: { source: "manual", artifacts: [], verified: true }
skills:
- category: "Languages"
items: "Python, Go, TypeScript"
provenance: { source: "manual", artifacts: [], verified: true }
experience:
- company: "Acme Corp"
location: "San Francisco, CA"
dates: "2018 - 2024"
roles:
- title: "Senior Software Engineer"
dates: "2021 - 2024"
bullets:
- label: "API Redesign"
text: "Redesigned REST API layer..."
technologies: [FastAPI, Python, Redis]
metrics: ["500ms to 120ms", "3x throughput"]
provenance:
source: "ingested:2025-01-15_acme"
artifacts: ["github:janedoe/acme-api"]
verified: true
projects:
- name: "OpenTracer"
url: "https://github.com/janedoe/opentracer"
description: "Distributed tracing library..."
technologies: [Python, OpenTelemetry]
provenance: { source: "manual", artifacts: ["github:janedoe/opentracer"], verified: true }
education:
degree: "B.S. Computer Science"
institution: "UC Berkeley"
Provenance
Every bullet carries a provenance field:
source: "manual" (hand-written) or "ingested:{session-id}" (from /ingest)
artifacts: Source references (GitHub URLs, blog posts, docs)
verified: Has the user confirmed this claim?
MCP Tools
| Tool | Description |
|---|
generate | Generate resume outputs from resume.yaml |
verify | Check provenance of all claims |
verify_against_generated | Anti-fabrication diff check between source and generated output |
export_templates | Export default template files as customization starting point |
validate_templates | Validate template configuration before generating |
---
### Step 3 — Report
✓ Project structure created
✓ CLAUDE.md written (version X.Y.Z)
⚠ Restart Claude Code so it loads the updated docs.
After restart, the AI will have full plugin context for all skills.
Next: /import to migrate an existing resume, or start building resume.yaml manually.
Re-run /setup after plugin updates to refresh docs.
## Rules
- NEVER overwrite user content in resume.yaml if it already has data
- NEVER remove user content outside the `<!-- resume-builder:start/end -->` markers in any file
- ALWAYS preserve existing .gitignore entries — append only
- If any step fails, report what succeeded and what failed — do not silently skip