MCP server for job search and application management. Allows AI to search for jobs and import them into a CV generation tool dashboard.
Two tools with basic schemas and descriptions, but significant gaps in parameter documentation, output schema clarity, and error handling. search_jobs lacks actionable guidance on when/how to use it vs import_jobs. import_jobs has incomplete parameter descriptions (e.g., 'Job title' is too generic). Neither tool documents return structure or error recovery paths. No input validation constraints (enums, ranges) visible. Descriptions are adequate length (100-150 chars) but lack LLM-optimized context about dependencies and failure modes.
Import job listings for the user to apply to. Each job needs a title, company, and URL at minimum. Jobs will appear on the user's web dashboard and browser extension.
Search for job listings matching criteria. Browse job boards (LinkedIn, Indeed, Greenhouse, Glassdoor) for matching positions, then use import_jobs to send them to the user's dashboard.
Output schemas not documented. Neither tool specifies what fields are returned or their types. LLMs cannot plan downstream calls or extract required data.
search_jobs description is vague about its actual behavior. It says 'Browse job boards' but the implementation returns a text prompt asking the AI to search, it does not actually search. This misleads LLMs about what the tool does.
import_jobs parameter 'jobs' array items lack individual field descriptions beyond names. 'Job title' and 'Company name' are too generic, no guidance on format, length, or validation rules.
No error handling guidance. Neither tool documents what happens on failure (invalid URL, duplicate job, API timeout) or how the LLM should recover. No actionable error messages visible in code.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | <=2025-11-25 | v2 |
No input validation constraints. experience_level accepts any string but should be an enum ('senior'|'mid'|'junior'). No regex patterns, length limits, or format specs for URL or title fields.