Open-source MCP server for job discovery across ATS platforms (Greenhouse, Lever, Ashby).
jobscope-mcp has well-structured tool definitions with clear naming (verb_noun pattern) and comprehensive input schemas using Zod. All four tools have descriptions and typed parameters with enums where appropriate (e.g., remote filter). However, parameter descriptions are sparse or missing in several cases, output schemas are not documented, and error handling lacks recovery guidance. The server follows basic MCP patterns but falls short of production-grade polish expected for A-tier tools.
Fetch full detail for a single job, including the complete description. Use this after triage via `search_jobs` to read a posting you want to consider seriously. Requires source (ats name), company_slug (from the directory), and job_id (as returned by search_jobs).
List companies in the job directory with optional filtering by query, ATS platform, and tags.
List all available ATS sources (job board platforms) that this server can search.
Search for jobs across multiple ATS platforms with filtering by query, location, remote status, companies, and posting date.
Output schemas not documented. LLMs cannot predict response structure for search_jobs, get_job, list_companies, or list_sources. Responses are JSON-stringified text, forcing LLMs to parse unstructured output.
Parameter descriptions incomplete or missing. 'ats' array in search_jobs and list_companies lacks description. 'posted_since' uses informal format ('30d') without explaining valid formats. 'companies' array description is vague ('Filter by company slugs').
Error handling provides no recovery guidance. errorResponse() returns only a message string. LLMs cannot determine if errors are retryable, user-fixable, or fatal. No suggestions for alternative tools or next steps.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
list_sources has minimal description (60 chars) and empty input schema. Description does not explain when to call it or what structure it reveals. Empty schema object {} is valid but underdocumented.
No pagination guidance in descriptions. search_jobs and list_companies accept 'limit' but descriptions do not explain default behavior, max results, or whether results are paginated. Agents may not know to call again for more results.