# Cv Upgrade

> 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.

- Skill: `faaz17/cv-upgrade` (Agent Skill)
- Install (CLI): `npx skillmds@latest add faaz17/cv-upgrade`
- Raw SKILL.md: https://api.skillmd.com/api/skills/faaz17/cv-upgrade/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Security
- Author: Faaz17 (https://skillmd.com/u/faaz17)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/faaz17/cv-upgrade

---


# /cv-upgrade, make the CV better

Usage: `/cv-upgrade "<Person Name>"` · `/cv-upgrade "<Second Person>" --role "Junior Accountant"`

Runs 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.

## Preconditions

- A CV exists in `<person>/cv/`
- `/cv-intake` has run, so `profile.md` and `evidence.md` exist to check claims against

## Steps

1. **Extract the CV text.** PyMuPDF is available:
   ```bash
   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.

2. **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

3. **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?

4. **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.

5. **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.

6. **Write the report** to `<person>/cv/CV-REVIEW-YYYY-MM-DD.md`.

7. **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

```markdown
# 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.

