An MCP server for ethical resume tailoring.
Four tools with clear, well-written descriptions (avg 150 chars, within baseline 194). All have input schemas with type definitions and parameter descriptions. Naming follows verb_noun convention (tailor_resume, score_fit, extract_keywords, ping). However, output schemas are not documented in the visible code, tool implementations reference schema objects (TailoringResultSchema, ScoreResultSchema, ExtractResultSchema) but their structure is not shown. Error handling is minimal; no recovery guidance or actionable error messages visible. Parameters lack constraints (enums, ranges, format specs). No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all being read-only operations.
Extract the keywords an applicant-tracking system would key on from a job posting, grouped into must-have and nice-to-have.
Health check. Returns 'pong', echoing an optional message.
Score how well a resume fits a job posting on a 1-5 scale (with a recommendation), and separately judge whether the posting looks like a real, active opening. Use it to triage which roles deserve a full tailor.
Tailor a resume to a specific job description without fabricating experience. Returns a fit score, matched/missing keywords, truthful rewrites of existing bullets, honest gaps, and a short cover note.
Output schemas not documented in visible code. Tools reference TailoringResultSchema, ScoreResultSchema, ExtractResultSchema but their structure is not shown. LLMs cannot plan downstream calls or extract fields without knowing what the response contains.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all tools being read-only. Annotations help agents understand safety and retry semantics.
Parameters lack format constraints. 'resume' and 'job_description' accept arbitrary strings with no length limits, encoding hints, or format guidance. LLMs may pass truncated or malformed text.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2025-06-18+ | v2 |
No error handling or recovery guidance visible in tool implementations. If the LLM API fails or returns invalid output, agents have no actionable next steps.
Tool descriptions do not explain when to use each tool or how they relate. 'score_fit' and 'tailor_resume' both accept resume + job_description, the description should clarify that score_fit is for triage and tailor_resume is for detailed rewriting.