add-api-route
Add a new JobPilot API route or module the standard way - contracts schema, controller, service, response schema, optional web hook. Use for "add an endpoint",…
Review a freshly uploaded resume and save a stronger rewritten version as a suggestion the user accepts or discards in the dashboard.
$ npx -y skills add suxrobGM/jobpilot --skill review-resume --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/review-resumeContext preview
The summary Claude sees to decide when to auto-load this skill.
Review a freshly uploaded resume and save a stronger rewritten version as a suggestion the user accepts or discards in the dashboard.
name: review-resume description: Review a freshly uploaded resume and save a stronger rewritten version as a suggestion the user accepts or discards in the dashboard. argument-hint: "<resumeId>"
Save one improved version of a base resume as a `Suggested rewrite` variant. The user accepts or discards it in the dashboard. **Never write to the base resume.**
Runs after `extract-resume` on upload: extraction is faithful to the PDF, this pass makes the document better.
Follow `../_shared/setup.md`, then:
curl -fsS -H "authorization: Bearer $JOBPILOT_API_TOKEN" "$JOBPILOT_API/api/resumes/$RESUME_ID"
`content: null` → extraction hasn't run; say so and stop. Also `Read` the source PDF (path per `../_shared/setup.md`) - extraction flattens two-column layouts and drops emphasis.
For a human screener skimming, and the ATS parsing:
Then run the `humanizer` skill in **embedded mode** on the summary and bullets.
The user sees a diff and clicks accept, so the diff is the guard - not a server check:
1. **Wording, ordering, emphasis, grouping. Never facts.** No employer, date, title, degree, school, or number absent from the extracted content or the source PDF. Not a rounded metric, not an inferred date, not a "Senior" added to a title. 2. **`diffNotes` lists every change**, one per line, specific enough to check: `Summary: rewritten to lead with the HIPAA platform`. A change not in the notes is one the user can't decline - if you can't list it, don't make it. 3. **Keep every entry.** Dropping or merging roles is `tailor-resume`, which has server-side guards. 4. **Don't touch `basics` contact fields.** At onboarding the resume fills the profile, so it's the source of truth. 5. If the resume is already good, save nothing and say so. A suggestion the user rejects teaches them to ignore the next one.
`label` must be exactly `Suggested rewrite` - the dashboard finds it by that label and the retention sweep skips it.
curl -fsS -H "authorization: Bearer $JOBPILOT_API_TOKEN" -X POST "$JOBPILOT_API/api/resumes/$RESUME_ID/variants" \
-H 'content-type: application/json' \
-d "$(jq -n --argjson content "$IMPROVED_CONTENT" --arg notes "$DIFF_NOTES" \
'{label:"Suggested rewrite", content:$content, diffNotes:$notes}')"`content` is the full `ResumeData` - same shape `extract-resume` saves, every field carried over. A 400 means it doesn't match the schema; fix and resend.
Then:
> Suggested a rewrite of {label}: {one-line summary}. > Review and accept at $JOBPILOT_WEB/resumes/$RESUME_ID
Don't open the browser or wait for an answer - the cycle ends here.
An AI agent that applies to jobs for you, on the Claude or Codex subscription you already have.
Repo: suxrobGM/jobpilot
Add a new JobPilot API route or module the standard way - contracts schema, controller, service, response schema, optional web hook. Use for "add an endpoint",…
Review and clean up the given file(s)/folder(s)/module(s): rate organization, find dead code, duplication, coupling, over-engineering, deep nesting, structural…
Create and apply a Prisma migration safely against the remote (tunneled) PostgreSQL. Use for schema changes - "create a migration", "apply migrations", "add a…
Add knip to a TypeScript project and use it to remove dead exports, collapse pass-through barrels, and narrow every export to what another file actually…
Bump the unified JobPilot version (host + plugin), update the changelog, commit, and tag a new release
Rebuild the .NET terminal host, restart it, and wait for /healthz. Use after any C# change under apps/terminal, or when asked to "restart the terminal host".