From get-me-a-job
Use this skill whenever the user wants to write a cover letter for a job application. Triggers on phrases like "write a cover letter", "draft a cover letter", "cover letter for this role", "help me with a cover letter", or whenever a job description is present and the user mentions wanting a cover letter. Also invoke when the user says "do the same" or "full pipeline" for a new role if cover letters have been part of the workflow. If the user pastes a JD and says something like "let's apply to this one", invoke both the resume-tailor and this skill. Invoke proactively whenever a new application is being processed.
How this skill is triggered — by the user, by Claude, or both
Slash command
/get-me-a-job:cover-letterThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill writes cover letters that sound like a real human wrote them, not a robot summarizing a resume.
This skill writes cover letters that sound like a real human wrote them, not a robot summarizing a resume.
First step every time: Read ~/.claude/get-me-a-job/references/resume.md for context on the user's full background. Also read ~/.claude/get-me-a-job/references/stories.md if it exists — it contains the user's personal stories and hooks. Reading these is for YOUR context — not so you can list them back.
If these files are missing or empty, tell the user to run /setup first.
Do not regurgitate the resume.
The cover letter is not a prose version of the resume. It is not a place to walk through each role chronologically. It is not a place to list accomplishments with metrics from four different jobs.
The resume already exists. The recruiter will read it. The cover letter's job is to do what the resume cannot: tell a story, show personality, and make the reader feel something.
A cover letter that lists "At Company A I did X. At Company B I did Y. At Company C I did Z" is a wasted opportunity. The recruiter already has that information. What they don't have is the why — why the user cares, why this company, why this role, why now.
Every good cover letter opens with something that makes the reader lean in. This is a personal story or observation that connects to the company's mission.
Look for the hook in the user's ~/.claude/get-me-a-job/references/stories.md file — it may contain personal hooks the user shared during /setup. If not, ask the user: "What's your personal connection to what this company does? Why do you actually care about this, beyond wanting a job?"
The hook should be 2-4 sentences. It should feel personal and specific. It should NOT be "I'm excited to apply for the [Role] at [Company]."
Good hooks come from:
Choose the single experience from the user's background that most directly parallels what the company is building. Go deep on this one story — the context, the challenge, the human stakes, what they learned. This is the proof point. ONE, not three or four.
Read ~/.claude/get-me-a-job/references/stories.md and select the story that best maps to the company's domain and the role's core challenge. If the user has multiple relevant stories, pick the one with the strongest result and the most vivid detail.
After the anchor story, connect it to what the company needs. Use THEIR language from the JD — not generic buzzwords. Show that you understand the specific problem they're trying to solve and explain why the user's experience is relevant to it.
This section should feel like a conversation, not an argument. "The compliance thread in the Visitors JD is basically my entire career" is better than "My experience aligns well with the requirements outlined in your job posting."
You can briefly (1-2 sentences) mention one other experience that reinforces the anchor story. This is a supporting character, not a second protagonist. Don't give it its own paragraph. Weave it in naturally.
End by connecting back to why the user cares about what the company is building. Reference something real — the state of the world, a personal conviction, something they observed. Close warm, not corporate.
~/.claude/get-me-a-job/config.json for job_search_folder_id. If it exists, create the doc in that folder:
python ${CLAUDE_PLUGIN_ROOT}/lib/run.py gdocs create "Cover Letter - [Company Name]" FOLDER_ID
python ${CLAUDE_PLUGIN_ROOT}/lib/run.py gdocs write DOC_ID "cover letter text"
If no folder is configured, skip Google Drive and just produce the local file.[Company Name] - Cover Letter.docx in the workspace folderDear [Company] Hiring Team,
[Personal hook — 2-4 sentences. Something from the user's life that connects to the company's mission. Make the reader feel something.]
[Anchor story — the ONE experience that maps to what this company needs. Go deep. Context, challenge, stakes, what happened. 100-150 words.]
[Bridge — connect the anchor story to the specific role. Use their JD language. Show you understand their problem. 50-80 words.]
[Supporting beat — one other quick proof point, woven in naturally. 30-50 words.]
[Close — why this company, why now, what the user cares about. Warm and human. 30-50 words.]
Warmly,
[Name]
[Degree and school, graduation year]
[Phone] | [Email]
The best cover letters feel like you're overhearing someone talk about why they care. Not like you're reading an application.
npx claudepluginhub kope-kope/haas-job-plugins --plugin get-me-a-jobCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.