From career-navigator
Assembles an optimized resume for a specific role from the ExperienceLibrary, scores it for ATS compatibility, and saves it to the artifact inventory. Fires automatically when the user shares or pastes a job description, or expresses intent to apply to a specific role. Also invocable via /career-navigator:tailor-resume.
npx claudepluginhub tmargolis/career-navigator --plugin career-navigatorThis skill uses the workspace's default tool permissions.
Assemble the best possible resume for a specific role, drawn from the user's ExperienceLibrary. Invoke the `resume-coach` agent to do the work.
Guides Payload CMS config (payload.config.ts), collections, fields, hooks, access control, APIs. Debugs validation errors, security, relationships, queries, transactions, hook behavior.
Builds scalable data pipelines, modern data warehouses, and real-time streaming architectures using Spark, dbt, Airflow, Kafka, and cloud platforms like Snowflake, BigQuery.
Builds production Apache Airflow DAGs with best practices for operators, sensors, testing, and deployment. For data pipelines, workflow orchestration, and batch job scheduling.
Assemble the best possible resume for a specific role, drawn from the user's ExperienceLibrary. Invoke the resume-coach agent to do the work.
Job description — required. If the user has not provided one:
"Paste the job description and I'll tailor your resume for it."
Target role and company — extract from the JD if not stated explicitly.
ExperienceLibrary — read {user_dir}/CareerNavigator/ExperienceLibrary.json. If the file is missing or the units array is empty:
"Your ExperienceLibrary is empty. Run
/career-navigator:add-sourceto add a resume first, then I can tailor one for this role."
Profile — read {user_dir}/CareerNavigator/profile.md for differentiators, skills, and target preferences. Do not ask the user for anything that is already in the profile.
Hand off to the resume-coach agent with:
CareerNavigator/ExperienceLibrary.json)CareerNavigator/profile.md)resume-coach will:
performance_weightsVoice-aligned Summary (optional): If the user explicitly asks to match their LinkedIn voice / voice-profile.md for the Summary only, ask resume-coach for a ResumeSummaryBrief per agents/resume-coach/AGENT.md. Before invoking writer, run the same voice preflight as draft-outreach (ask for ## User writing samples / ## User writing samples (launch) or skip). Then invoke writer in resume-summary mode, substitute the returned ## Summary into the draft, then continue to ATS presentation below.
Present the full assessment returned by resume-coach before saving:
Resume assembled for {Role} at {Company}
ATS score: {n}/100
Keyword coverage: {matched_keywords} / {total_required} must-have keywords matched
Strengths
- {What the ExperienceLibrary covers well for this role}
Gaps (honest)
- {Requirements with no or weak ExperienceLibrary coverage}
- {Achievements that need metrics or sharpening}
If the score is below 70, ask before saving:
"This resume scores {n}/100 for ATS. The main gaps are {keywords}. Do you want me to address them before saving?"
Once the user confirms (or if the score is ≥ 70 with no gaps flagged), save the resume:
Filenames (avoid host / MCP validation errors): use ASCII-safe names only—hyphens -, no em dashes or smart quotes. Sanitize company and role: remove \ / : * ? " < > | and newlines; collapse whitespace; limit basename (~100 chars).
Example: Anthropic-PM-Claude-Code-Resume-2026-03-24.md
{SanitizedCompany}-{SanitizedRole}-Resume-{YYYY-MM-DD}.md{user_dir}/{user_dir}/CareerNavigator/artifacts-index.json:{
"id": "{uuid}",
"type": "resume",
"filename": "{filename}",
"path": "{user_dir}/{filename}",
"target_company": "{company}",
"target_role": "{role}",
"date_created": "{today}",
"source": "generated",
"ats_score": {n},
"source_units": ["{unit_ids used}"],
"jd_keywords": ["{keywords matched}"],
"notes": ""
}
If other artifact files (PDF/DOCX) exist in {user_dir}, run the artifact-saved workflow once after saving so artifacts-index.json stays aligned with disk.
Confirm to the user:
"Saved as {filename}. Run
/career-navigator:cover-letterto generate a matching cover letter."
If the user hasn't already logged an application for this role, prompt:
"Want me to add this to your tracker? Just say 'yes' or tell me the application details."