From headhunter
Generate a tailored CV and cover letter for a specific job application, and answer any application form questions. Triggers on apply, tailor my CV, cover letter, application form, submit application, write cover letter, customize resume.
How this skill is triggered — by the user, by Claude, or both
Slash command
/headhunter:application-assistantThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Help the candidate submit a strong, tailored application for a specific role.
Help the candidate submit a strong, tailored application for a specific role.
Mode A (default) — "Generate tailored CV + cover letter": triggered by /headhunter:apply or when the user asks to prepare an application.
Mode B — "Q&A advisor": triggered when the user asks "how do I answer X?" or "what should I write for Y field?" — answer immediately in context without spawning agents.
node ${CLAUDE_PLUGIN_ROOT}/scripts/candidate-profile.js show
If no profile or experience.key_skills is empty, stop immediately:
"Run
/headhunter:setupfirst — the application assistant needs your profile and CV text to tailor anything meaningful."
If profile exists but cv.text is empty, ask the user to either paste their CV or provide a file path, then save it before continuing.
Resolve the application: $ARGUMENTS may be an app ID, company name, or URL.
node ${CLAUDE_PLUGIN_ROOT}/scripts/crud.js get applications <id>
# or search for it
node ${CLAUDE_PLUGIN_ROOT}/scripts/crud.js list applications --json
Load job metadata if available (from research_dir/02_job_metadata.json), or use the application's job_description field.
Load scanner results if available (match_score, success_score, scanner_notes on the application record).
Low score warning: If match_score is set and match_score < 50, pause and show:
"⚠️ This role scanned at {match_score}/100 match ({scanner_notes}). You're in Long Shot territory — a tailored CV helps, but won't close a large skills gap. Proceed with tailoring? Or run
/headhunter:scanfirst to understand the gaps." Only continue if the user confirms.
Issue both Task calls in a single message:
Task 1: cv-tailor
Input: {
"cv_text": "<profile.cv.text>",
"job_metadata": <metadata or summary>,
"candidate_profile": <profile>,
"top_strengths": ["<from scanner or inferred>"],
"top_gaps": ["<from scanner or inferred>"],
"output_note": "Write the tailored CV to data/cvs/tailored-<appId>.md"
}
Task 2: cover-letter-writer
Input: {
"candidate_profile": <profile summary>,
"job_metadata": <metadata>,
"company_intel": "<brief company summary>",
"top_strengths": ["..."],
"top_gaps": ["..."],
"output_note": "Write the cover letter to data/cvs/cover-letter-<appId>.md"
}
After agents return, write their outputs to disk:
# Save tailored CV markdown
# (Write tool): data/cvs/tailored-<appId>.md ← agent output
# Generate HTML
node ${CLAUDE_PLUGIN_ROOT}/scripts/generate-cv-html.js \
--input ${CLAUDE_PLUGIN_ROOT}/data/cvs/tailored-<appId>.md \
--out ${CLAUDE_PLUGIN_ROOT}/data/cvs/tailored-<appId>.html
# Save cover letter
# (Write tool): data/cvs/cover-letter-<appId>.md ← agent output
Update application record:
node ${CLAUDE_PLUGIN_ROOT}/scripts/crud.js update applications <id> \
'{"tailored_cv_path":"data/cvs/tailored-<appId>.html","cover_letter_path":"data/cvs/cover-letter-<appId>.md"}'
Show a summary:
✓ Tailored CV saved: data/cvs/tailored-<appId>.html
→ Open in browser → Cmd+P → Save as PDF
✓ Cover letter saved: data/cvs/cover-letter-<appId>.md
CV changes made:
• Added targeted summary for {role} at {company}
• Reordered bullets in {company} role to lead with {skill}
• Removed: {irrelevant section}
Cover letter:
Subject: {Role} Application — {Name}
[show first paragraph preview]
Gaps addressed:
• {gap}: bridged via {strategy}
Remaining gaps (acknowledge in interview if asked):
• {gap}
Present a checklist before submitting:
/headhunter:brief <company> if you haven't done full company research/headhunter:add-taskWhen the user asks "how should I answer [specific question]":
Common application questions:
why_looking + company-specific factcareer_goal_3yrsalary.target_base_ils + the brief's salary scriptpreferences.why_looking — be honest but positiveavailability.notice_period_daysCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub tamircohen28/plugins --plugin headhunter