This skill should be used when the user wants to tailor a resume for a specific job description, or write a cover letter for a role. Trigger phrases include "tailor resume", "tailor my resume", "optimize resume for JD", "build resume for", "target job description", "customize resume for", "adapt resume to job", "resume for this role", "refactor resume", "update resume for", "match resume to JD", "resume for this position", "write cover letter", "cover letter for", "tailor cover letter", "draft cover letter", or when a user pastes a job description alongside their resume. It performs keyword extraction, gap analysis, and produces a tailored LaTeX resume with detailed analysis notes. It can also generate a tailored cover letter.
Tailors resumes and cover letters for specific job descriptions by analyzing keywords, performing gap analysis, and generating optimized LaTeX documents.
npx claudepluginhub luqmannurhakimbazman/kapitan-marketplaceThis skill inherits all available tools. When active, it can use any tool Claude has access to.
references/ats-keywords.mdreferences/cover-letter.mdreferences/latex-commands.mdreferences/xyz-formula.mdTailor the master resume (hojicha/resume.tex) for a specific job description. Output goes to hojicha/<company>-<role>-resume/ containing notes.md (analysis) and resume.tex (tailored resume).
fed-res.cls document class. Do not modify \documentclass[letterpaper,12pt]{fed-res} or add packages. Copy hojicha/fed-res.cls into the output directory. See references/latex-commands.md for available commands.\pdfgentounicode=1.references/xyz-formula.md.Read the master resume and the job description provided by the user.
Required:
- Job description (pasted text, file, or URL — if a URL is provided, use a web-fetching tool to retrieve the JD content)
- Master resume: hojicha/resume.tex
Optional (ask if not provided):
- Company name (for output directory naming)
- Role title (for output directory naming)
- Any special instructions (e.g., "emphasize ML experience")
Contact info note: If the role is location-sensitive or requires phone screening, ensure the resume header includes a phone number and city/country alongside email, LinkedIn, and GitHub.
Derive <company> and <role> from the JD for the output directory name. Use lowercase, hyphenated slugs (e.g., kronos-research-ml-researcher-resume).
Extract keywords and requirements from the JD. Categorize them:
| Category | Examples |
|---|---|
| Hard skills | Python, PyTorch, distributed training |
| Soft skills | Leadership, cross-functional collaboration |
| Domain knowledge | NLP, reinforcement learning, quantitative finance |
| Tools/platforms | AWS, Docker, Kubernetes |
| Qualifications | BSc in CS, 3+ years experience |
See references/ats-keywords.md for extraction strategies and ATS mechanics.
Generate a role-specific professional summary to place at the top of the resume. This section is optional — omit it if space is tight and the resume already speaks for itself.
\section{} title. Do NOT use generic titles like "Professional Summary" — use a descriptive noun phrase (e.g., "ML Engineer & Quantitative Researcher").\section{<headline>} with a single paragraph before the Education section.Recommendations:
Common Mistakes:
Examples of good summaries:
Computer Science undergraduate student passionate about full stack development with substantial hands-on experience in Ruby on Rails. Keen problem solver with an ability to learn quickly and apply previous experience and novel, creative solutions to solve problems.
Front End Engineer with six years of experience working in small and large teams to develop interactive, user-friendly, and feature-rich web applications. A self-motivated and lifelong learner familiar with modern web development and web3 technologies (blockchain, crypto, DeFi).
Reorder resume sections based on the candidate's experience level relative to the target role:
| Experience Level | Recommended Order |
|---|---|
| <3 years / recent grad | Summary → Education → Experience → Projects → Skills |
| 3+ years | Summary → Experience → Education → Projects → Skills |
The master resume uses Education → Experience → Projects → Skills. Adjust the order to put the strongest sections first for the target role.
Map each JD requirement to existing resume content. Identify:
For each gap identified in Step 5, generate an actionable mitigation entry. This section helps the candidate understand what they can do before or alongside applying to improve their chances.
For each gap, provide:
Severity:
Mitigation Strategy: A specific, actionable recommendation — not generic advice. Examples of good mitigations:
Why it works: Brief explanation of what signal it sends to the hiring manager
Rules:
references/cover-letter.md for structure and best practicesRewrite experience bullets using the XYZ formula, incorporating target keywords naturally. See references/xyz-formula.md for methodology and examples.
Priority order for keyword placement (optimized for human readers — recruiters read top-down):
references/ats-keywords.md for ATS-specific priority)Review commented-out sections in the master resume. Uncomment entries that strengthen the application:
| Commented Section | Uncomment When Targeting |
|---|---|
| LSE Summer School | Quantitative finance, computational methods |
| SUSS Linear Algebra | Math-heavy roles, ML theory positions |
| Arcane Group | Growth/BD roles, crypto/web3 |
| KlimaDAO | Climate tech, ESG, web3 research |
| SuperAI Hackathon | Regulatory tech, AWS, agentic AI |
| Ripple Hackathon | Blockchain, DeFi, full-stack web3 |
| CFA Challenge | Finance, ESG, investment research |
Similarly, comment out entries that are irrelevant or that weaken the narrative for the target role.
When including projects, ensure project names link to GitHub repos where possible using \href{https://github.com/...}{\textbf{Project Name}}.
Reorder skills categories and items within each category to front-load the most relevant ones. The first items in each line are what ATS and recruiters see first.
Create the output directory and files:
hojicha/<company>-<role>-resume/
notes.md # Analysis and tailoring decisions
resume.tex # Tailored resume
notes.md structure:
# Resume Tailoring: <Company> — <Role>
## JD Summary
<Brief summary of the role and key requirements>
## Keyword Analysis
<Table of extracted keywords by category>
## Gap Analysis
| Requirement | Status | Resume Evidence |
|-------------|--------|-----------------|
| ... | Strong Match / Reframed / Gap | ... |
## Avenues to Strengthen Application
| Gap | Severity | Mitigation Strategy |
|-----|----------|---------------------|
| **<Skill/Requirement>** | 🔴 High — <why it's critical> | <Specific, actionable recommendation> |
| **<Skill/Requirement>** | 🟡 Medium — <why it matters> | <Specific, actionable recommendation> |
| **<Skill/Requirement>** | 🟢 Low — <why it's minor> | <Recommendation or "No action needed"> |
| ... | ... | ... |
## Changes Made
- <List of specific changes: reworded bullets, uncommenting, reordering>
## Sections Commented Out
- <Entries removed and why>
## Sections Uncommented
- <Entries added and why>
resume.tex: Copy the master resume structure exactly, applying all modifications. Include \documentclass[letterpaper,12pt]{fed-res} and all original formatting. Reference references/latex-commands.md for the cls command reference.
Plain text verification: After generating resume.tex, verify that all meaningful content is conveyed through text, not through visual layout alone. Check that: (1) no critical information relies solely on bold/italic/positioning to convey meaning, (2) all special characters render as readable text when LaTeX formatting is stripped, and (3) acronyms are expanded at least once so ATS can match both forms.
After generating the tailored resume, offer to write a cover letter if the user provided a JD. Skip this step if the user only asked for a resume.
When to offer: Always ask after completing the resume. Cover letters are most valuable for entry-level candidates and career changers — see references/cover-letter.md for guidance on when they matter.
Process:
references/cover-letter.mdOutput: Save as cover-letter.md in the same output directory. Use Markdown (not LaTeX) since cover letters don't need the fed-res.cls formatting.
hojicha/<company>-<role>-resume/
notes.md # Analysis and tailoring decisions
resume.tex # Tailored resume
cover-letter.md # Cover letter (if requested)
hojicha/<company>-<role>-resume/
Examples:
hojicha/kronos-research-ml-researcher-resume/hojicha/grab-data-engineer-resume/hojicha/stripe-backend-engineer-resume/Accomplished [X] as measured by [Y], by doing [Z]
See references/xyz-formula.md for full methodology.
| Command | Usage |
|---|---|
\resumeSubheading{Org}{Loc}{Title}{Date} | Experience/education entry |
\resumeItem{text} | Bulleted item |
\resumeSubHeadingListStart/End | Wrap subheading groups |
\resumeItemListStart/End | Wrap bullet lists |
\resumeProjectHeading{Title | Tech}{Date} | Project entry |
See references/latex-commands.md for the full reference.
Expert guidance for Next.js Cache Components and Partial Prerendering (PPR). **PROACTIVE ACTIVATION**: Use this skill automatically when working in Next.js projects that have `cacheComponents: true` in their next.config.ts/next.config.js. When this config is detected, proactively apply Cache Components patterns and best practices to all React Server Component implementations. **DETECTION**: At the start of a session in a Next.js project, check for `cacheComponents: true` in next.config. If enabled, this skill's patterns should guide all component authoring, data fetching, and caching decisions. **USE CASES**: Implementing 'use cache' directive, configuring cache lifetimes with cacheLife(), tagging cached data with cacheTag(), invalidating caches with updateTag()/revalidateTag(), optimizing static vs dynamic content boundaries, debugging cache issues, and reviewing Cache Component implementations.
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.