MCP server for agentic job search pipeline — provides 9 tools for job discovery, analysis, resume tailoring, and watchlist management
Role Scout has 9 well-structured tools with complete JSON schemas and clear descriptions. All tools have proper input schemas with type definitions, enums, and patterns. Descriptions are concise (50 - 200 chars) and action-oriented. However, parameter descriptions are sparse or missing entirely, most params lack inline guidance on format, constraints, or when to use them. Output schemas are not documented in the tool definitions themselves; agents must infer structure from implementation. Error handling is present but generic (PIPELINE_BUSY, not found errors lack recovery guidance). No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear read/write semantics. Composition is sound, tools are single-responsibility and chain well (get_jobs → get_job_detail → analyze_job). Naming follows verb_noun convention consistently.
Run (or return cached) JD-vs-resume alignment analysis. Returns strong_matches, reframing_opportunities, genuine_gaps.
Fetch the full record for one job including JD text and subscores.
List qualified jobs (match_pct >= threshold) filtered by status and optional source. Newest first.
Return the most recent N run_log entries with cost, source health, and status.
Return the current watchlist (list of company names).
Add or remove a company from the watchlist. Idempotent by content.
Run the full Role Scout pipeline (fetch → score → export). Always auto-approves the HiTL interrupt because MCP tools are request/response and cannot wait for human input. Returns PIPELINE_BUSY if another run is in progress.
Parameter descriptions missing or minimal. 'status', 'limit', 'source', 'hash_id', 'force', 'action', 'company' lack inline guidance on format, constraints, or when to use them. LLMs cannot infer parameter semantics from names alone.
Output schemas not documented in tool definitions. Agents must infer response structure from implementation code. No documented return types for any tool.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear semantics. run_pipeline, update_job_status, and manage_watchlist are destructive/write operations; get_* tools are read-only. Annotations would guide agent planning and safety.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 68 | <=2025-11-25 | v2 |
Generate (or return cached) tailored resume content for a qualified job.
Update a job's review status (new → reviewed → applied → rejected).
Error handling lacks recovery guidance. 'PIPELINE_BUSY' and 'not found' errors do not suggest next steps. Per pattern:recovery-guide, errors should tell LLMs what to do: retry, call a discovery tool, or ask the user.
run_pipeline description states 'Always auto-approves the HiTL interrupt', this is a workaround, not a feature. The tool cannot actually wait for human input over STDIO. This should be documented as a limitation and agents should be warned not to rely on approval.