/cv-upgrade, make the CV better
Usage: /cv-upgrade "<Person Name>" · /cv-upgrade "<Second Person>" --role "Junior Accountant"
Runs the Career-Agents profiles against a CV, under this repo's honesty contract. Those agents are third-party and are not included here; see third-party/README.md for how to install them. Record in your own project where your rules override upstream — the metric rule is the one that matters most, because a CV bullet with a fabricated percentage fails an interview.
Preconditions
- A CV exists in
<person>/cv/
/cv-intake has run, so profile.md and evidence.md exist to check claims against
Steps
Extract the CV text. PyMuPDF is available:
python -c "import fitz,io,sys; sys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding='utf-8',errors='replace'); d=fitz.open(r'<path>'); [print(p.get_text()) for p in d]"
Read the DOCX source too if there is one — it is the editable original and the better thing to change.
ATS parse audit — spawn ats-resume-reviewer. Check:
- Standard section headers (Experience, Education, Skills, Projects). Creative headers do not parse
- No text inside images, headers or footers. Parsers drop them
- No tables or multi-column layouts in the experience section
- Dates in a consistent, parseable format, and in reverse-chronological order
- Contact details as live text, not a graphic
- Text-based PDF, not a scan
- Bullets under two lines each
Narrative audit — spawn resume-strategist. Check:
- Does the summary answer why-you-why-now in one glance, or is it a list of adjectives?
- Is there a single coherent thesis, or three competing ones?
- Does the top third of page one carry the strongest evidence? That is all a six-second skim sees
- Does every headline claim have a linkable artifact?
Student-specific pass — spawn internship-application-strategist when the person is a student or a recent graduate. It mines coursework, projects, societies and competitions for evidence that is on the CV but framed as filler.
Verify every claim against profile.md and evidence.md. Flag anything on the CV that has no source, and anything in the evidence bank strong enough to be on the CV but missing from it.
Write the report to <person>/cv/CV-REVIEW-YYYY-MM-DD.md.
Produce the rewritten CV only when asked. The report comes first, because most of its findings are decisions for the person, not for an agent. When a rewrite is wanted:
- Edit the DOCX source where one exists, never the exported PDF
- Follow the Clean Technical Document standard: US Letter, 1-inch margins, centered black title, dark teal
#0F4761 sentence-case headings, thin gray #7F7F7F borders on every table cell, bold headers, minimal shading, real page breaks, no visible \newpage
- Render the PDF and inspect every page for blank pages, clipping, overlap and broken flow
- Keep the original. Save as a new version, never overwrite
Output format
# CV review — <person>, YYYY-MM-DD
**Source:** <file>, <n> pages
**Target roles:** <what this CV is aimed at>
## Verdict
<two sentences. What is strong, what is costing interviews.>
## Fix first
| # | Issue | Where | Fix | Effort |
|---|---|---|---|---|
## ATS parse
| Check | Result | Note |
|---|---|---|
## Impact rewrites
| Original | Rewritten | Why |
|---|---|---|
## Narrative
Headline: <verdict>
Summary: <verdict>
Top-third test: <what a six-second skim actually picks up>
## Claims without a source
- <claim> — <not in profile.md / evidence.md>
## Evidence missing from the CV
- <thing in evidence.md strong enough to be here>
## Questions
1. <what only they can answer>
Rules
- Never invent or estimate a metric. Upstream asks for a metric per achievement; this repo's honesty contract outranks it. Where no real number exists, write a qualitative impact line. A fabricated percentage survives the screen and dies in the interview.
- Never add a skill or tool the person cannot discuss for five minutes.
- Never inflate a title, a role or a level. Scope and impact do that work honestly.
- Never remove dates or hide a gap. Frame it.
- Preserve their voice. A CV rewritten into agency-speak reads worse and interviews worse.
- Keep it to one page for a student or an early-career candidate.
- Report first, rewrite second. Most findings need the person's answer, not a guess.
1---2name: cv-upgrade3description: Audit and improve a CV using the vendored Career-Agents reviewer and strategist profiles — ATS parse safety, keyword alignment, impact rewrites, narrative and headline. Produces a prioritised report and a rewritten CV. Use when asked to improve, review, ATS-check or tailor a CV, or after /cv-intake surfaces weaknesses.4---56# /cv-upgrade, make the CV better78Usage: `/cv-upgrade "<Person Name>"` · `/cv-upgrade "<Second Person>" --role "Junior Accountant"`910Runs the [Career-Agents](https://github.com/karthikrshet/Career-Agents) profiles against a CV, under this repo's honesty contract. Those agents are third-party and are not included here; see [`third-party/README.md`](../../../third-party/README.md) for how to install them. Record in your own project where your rules override upstream — the metric rule is the one that matters most, because a CV bullet with a fabricated percentage fails an interview.1112## Preconditions1314- A CV exists in `<person>/cv/`15- `/cv-intake` has run, so `profile.md` and `evidence.md` exist to check claims against1617## Steps18191. **Extract the CV text.** PyMuPDF is available:20 ```bash21 python -c "import fitz,io,sys; sys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding='utf-8',errors='replace'); d=fitz.open(r'<path>'); [print(p.get_text()) for p in d]"22 ```23 Read the DOCX source too if there is one — it is the editable original and the better thing to change.24252. **ATS parse audit** — spawn `ats-resume-reviewer`. Check:26 - Standard section headers (Experience, Education, Skills, Projects). Creative headers do not parse27 - No text inside images, headers or footers. Parsers drop them28 - No tables or multi-column layouts in the experience section29 - Dates in a consistent, parseable format, and in reverse-chronological order30 - Contact details as live text, not a graphic31 - Text-based PDF, not a scan32 - Bullets under two lines each33343. **Narrative audit** — spawn `resume-strategist`. Check:35 - Does the summary answer why-you-why-now in one glance, or is it a list of adjectives?36 - Is there a single coherent thesis, or three competing ones?37 - Does the top third of page one carry the strongest evidence? That is all a six-second skim sees38 - Does every headline claim have a linkable artifact?39404. **Student-specific pass** — spawn `internship-application-strategist` when the person is a student or a recent graduate. It mines coursework, projects, societies and competitions for evidence that is on the CV but framed as filler.41425. **Verify every claim against `profile.md` and `evidence.md`.** Flag anything on the CV that has no source, and anything in the evidence bank strong enough to be on the CV but missing from it.43446. **Write the report** to `<person>/cv/CV-REVIEW-YYYY-MM-DD.md`.45467. **Produce the rewritten CV only when asked.** The report comes first, because most of its findings are decisions for the person, not for an agent. When a rewrite is wanted:47 - Edit the DOCX source where one exists, never the exported PDF48 - Follow the **Clean Technical Document** standard: US Letter, 1-inch margins, centered black title, dark teal `#0F4761` sentence-case headings, thin gray `#7F7F7F` borders on every table cell, bold headers, minimal shading, real page breaks, no visible `\newpage`49 - Render the PDF and inspect every page for blank pages, clipping, overlap and broken flow50 - Keep the original. Save as a new version, never overwrite5152## Output format5354```markdown55# CV review — <person>, YYYY-MM-DD5657**Source:** <file>, <n> pages58**Target roles:** <what this CV is aimed at>5960## Verdict61<two sentences. What is strong, what is costing interviews.>6263## Fix first64| # | Issue | Where | Fix | Effort |65|---|---|---|---|---|6667## ATS parse68| Check | Result | Note |69|---|---|---|7071## Impact rewrites72| Original | Rewritten | Why |73|---|---|---|7475## Narrative76Headline: <verdict>77Summary: <verdict>78Top-third test: <what a six-second skim actually picks up>7980## Claims without a source81- <claim> — <not in profile.md / evidence.md>8283## Evidence missing from the CV84- <thing in evidence.md strong enough to be here>8586## Questions871. <what only they can answer>88```8990## Rules9192- **Never invent or estimate a metric.** Upstream asks for a metric per achievement; this repo's honesty contract outranks it. Where no real number exists, write a qualitative impact line. A fabricated percentage survives the screen and dies in the interview.93- Never add a skill or tool the person cannot discuss for five minutes.94- Never inflate a title, a role or a level. Scope and impact do that work honestly.95- Never remove dates or hide a gap. Frame it.96- Preserve their voice. A CV rewritten into agency-speak reads worse and interviews worse.97- Keep it to one page for a student or an early-career candidate.98- Report first, rewrite second. Most findings need the person's answer, not a guess.