From job-search-agent
Build and maintain a comprehensive career profile by deeply interrogating the user about ALL their professional experiences, skills, projects, and achievements — or by parsing an uploaded resume file (PDF, DOCX, LaTeX .tex, markdown, or plain text). This is the foundation skill for the job search agent system. Trigger this skill whenever the user mentions: building a profile, updating their experience, uploading a resume, "what do you know about my background", "let's update my profile", "add this experience", "I got a new certification", "build my resume from scratch", "parse my CV", or any variation of capturing professional identity. Also trigger when any other job-search skill (job-analyzer, resume-tailor, interview-coach) needs profile data and none exists yet. This skill should be the FIRST thing used before any job search activity. Even if the user just says "help me with my job search" — start here if no profile exists.
How this skill is triggered — by the user, by Claude, or both
Slash command
/job-search-agent:career-profile-builderThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Build a single source of truth for everything about the user's professional life.
Build a single source of truth for everything about the user's professional life. This profile feeds every other skill in the system — match scoring, resume tailoring, interview prep, and recruiter coaching all read from this same data.
The goal is to capture not just what's on a resume, but the full, rich picture: the context behind each role, the real impact, the stories worth telling in interviews, and the preferences that determine which jobs are actually worth pursuing.
Before doing anything, check if a profile already exists:
Load from persistent storage key: "career-profile"
When the user uploads or references a resume file:
pdf-reading skill first, then extractdocx skill to extract textreferences/profile-schema.md)Resumes are marketing documents. They omit context that interviews demand. After parsing, probe for what's missing:
When building from nothing, run a structured interview in rounds. Never overwhelm — ask 2-3 questions at a time max, and acknowledge what they share before moving on.
"Let's build your career profile. I'll ask questions in rounds — we can always
come back and add more later. First, the big picture:
1. What's your current or most recent role and company?
2. What field are you in, and roughly how many total years of experience?
3. What kind of role are you targeting next?"
For EACH role, capture:
Probe hard on impact. Most people undersell themselves. If they say "improved X," ask "by how much?" If they say "led a project," ask "how many people, what was the budget, what was the outcome?" If they say "built a dashboard," ask "who used it, what decisions did it drive, is it still in use?"
Categorize skills by honest proficiency — this matters for match scoring later:
For non-technical roles, capture domain expertise with the same granularity.
Degrees, relevant coursework, certifications, ongoing learning, bootcamps. Don't just list — ask: "What did you learn there that you still use professionally?"
This is where most AI tools fail and where your profile becomes interview gold. For every significant experience, extract structured stories:
Mine at least 6-8 strong STAR stories covering these categories:
Rate each story: strong (clear, specific, has numbers, compelling), medium (decent but needs polish), or needs_work (vague, missing impact).
"A few more questions that help me position you accurately:
1. What are you known for at work? If I called your last manager, what would
they say is your superpower?
2. What kind of work energizes you vs. drains you?
3. What are your career goals for the next 2-3 years?
4. What's your ideal company — size, stage, culture, industry?
5. Any hard constraints? Location, visa, salary floor, availability?"
Store the full profile using the schema defined in references/profile-schema.md.
Save to persistent storage with key career-profile.
After each session, calculate and display a completeness score (0-100%):
| Section | Weight | Criteria |
|---|---|---|
| Identity fields | 10% | Name, contact, summary filled |
| Work history (2+ roles with achievements) | 20% | Each role has ≥3 achievements with metrics |
| Skills categorized across 4 levels | 15% | At least 5 skills per level |
| Education filled | 5% | At least one entry with key learnings |
| STAR stories (≥5 rated "strong") | 25% | Covers ≥4 of the 8 categories |
| Preferences (targets, must-haves) | 15% | Target roles and dealbreakers defined |
| Reputation / intangibles | 10% | Known-for and goals filled |
Display as a visual progress summary and tell the user exactly which sections need more depth to improve their score.
The profile is a living document. When the user returns:
The profile must stay internally consistent:
Be warm, encouraging, and thorough. Many people undersell themselves — it's your job to draw out their real impact. Frame the interrogation as investment: "The more detail I have, the better I can match you to jobs, tailor your resume, and prep you for interviews. Everything you tell me stays in your profile and gets reused across the entire system."
When they give a vague answer, push gently: "That's great context. Can you put a number on it? Even a rough estimate helps — 'about 30% faster' is much more powerful than 'improved speed.'"
Creates, 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 alan-w25/job-search-agent --plugin job-search-agent