Skip to main content

Skills Catalog

"Skill" means three different things in this repository. This catalog is about exactly one of them:

LayerWhat it isCountWhere
A. AI Skills (this page)Named, versioned AI prompt bodies the app runs against your career data.16apps/api/src/ai/default-prompts.ts
B. MCP toolsThin API-relay tools exposed to an MCP client (Claude Code, Cursor, etc).81See the MCP Tool Reference
C. Claude Code SkillA distributable SKILL.md plugin that teaches an agent to use the MCP tools.1See The Jobweave Claude Code Skill

The repo itself calls Layer A "skills" — the executor is apps/api/src/ai/skill-tools.ts, and default-prompts.ts calls these "skill bodies." An AI Skill is not the same thing as an MCP tool: a skill is a specific prompt run server-side against your data; a tool is an API endpoint an MCP client can call directly, some of which (ai:generate-scoped tools) happen to invoke a skill's prompt underneath. They overlap but are not interchangeable, and this page states which one it means every time.

Status

Not every prompt key in the source file is wired to a live route. Three statuses:

  • Shipped — has a live route (and usually an MCP tool) that runs this exact prompt.
  • Orphan — prompt body exists in source, but nothing in the product calls it.
  • Orphan (ships via a different path) — the feature is shipped and used daily, but through a different, separately-maintained prompt — not this key. Editing this key's body has zero effect on production behavior.
SkillStatusPurposeUse case
career_fact_extractorShippedPulls a confidence-scored fact library out of your resume, including projects and repos.Run once before other AI actions so later actions ground in verified facts.
job_description_analyzerShippedExtracts required/preferred skills, keywords, and a match score from a job posting.Deciding whether — and how — to tailor before you commit to a full rewrite.
resume_tailorShippedWipes and rebuilds a resume from your full Career Library against one job posting.The most aggressive AI action; gated behind a confirmation dialog.
tech_resume_optimizerOrphanPrompt-only. No route, no tool, never runs.None — documented as unshipped.
resume_ats_optimizerOrphanPrompt-only. No route, no tool, never runs.None — documented as unshipped.
resume_bullet_writerOrphan (ships via a different path)Prompt-only under this key. The shipped "Enhance Bullets" feature uses a separate inline prompt.None under this key — see the page for the real path.
resume_quantifierShippedAdds numbers to a caller-supplied set of bullets — nothing else in context.Tightening bullets that already exist without a full resume rewrite.
linkedin_profile_optimizerOrphanPrompt-only. No route, no tool, never runs.None — documented as unshipped.
interview_prep_generatorShippedGenerates ranked interview questions with a STAR-format breakdown.Prepping for a specific application from the application detail view.
recruiter_first_screen_simulationShippedRead-only scoring across 8 dimensions, simulating a recruiter's first pass.Feedback before you send, without the AI rewriting anything.
cover_letter_generatorOrphan (ships via a different path)Prompt-only under this key. Cover letters ship through a separate, hardcoded provider prompt.None under this key — see the page for the real path.
company_insightsShippedA company briefing (funding, culture, comparable companies) independent of your resume.Research before an interview or before deciding whether to apply.
outreach_coldShippedDrafts a cold outreach message with up to 600 chars of job-description context.First contact with a hiring manager or recruiter.
outreach_follow_upShippedDrafts a follow-up message with up to 400 chars of job-description context.Checking in after an application with no response.
outreach_thank_youShippedDrafts a thank-you message with zero job-description context by design.After an interview, where the JD is no longer the point.
import_url_extractShipped (fallback)AI extraction of job posting fields, used only when structured JSON-LD parsing fails.Importing a posting from a URL the extension didn't auto-detect.

16 rows, verified: sed -n "/^export const PROMPT_KEYS/,/^] as const/p" apps/api/src/ai/default-prompts.ts | grep -oE "'[a-z_]+'" | wc -l. Reachability, orphan status, and every "does not touch" claim above are cited per-skill on each page — see .omc/handoffs/skills-triage.md for the full investigation this table is built from.