MCP server for searching and filtering jobs across multiple job platforms (Naukri, LinkedIn, Indeed, Foundit) with AI-powered resume tailoring capabilities
Three tools with basic verb-noun naming (search_*, filter_*) but significant quality gaps. All tools have descriptions (10-50 chars, below the 50-200 char baseline for LLM optimization). Input schemas are present with type definitions but lack parameter descriptions entirely, a critical violation of the rubric. Output schemas are undocumented; tools return JSON strings without declaring field structure. Error handling is minimal (generic exception messages). No tool annotations (readOnlyHint, etc.). The server lacks pagination, result limits, and chaining IDs needed for agent composition.
Filter a list of jobs by keyword in title or description. Pass JSON output from search tools into this.
Search for jobs on LinkedIn based on job title and location. Returns a list of job listings as JSON.
Search for jobs on Naukri.com based on job title and location. Returns a list of job listings as JSON.
All parameters lack descriptions. 'job_title', 'location', 'keyword', 'jobs_json' have no guidance on format, constraints, or expected values. LLMs cannot infer whether 'location' accepts 'Hyderabad', 'Hyderabad, India', or a location ID.
Output schemas are undocumented. Tools return JSON strings (e.g., {"status": "success", "count": ..., "jobs": [...]}) but the structure is not declared. LLMs cannot plan downstream calls or extract fields reliably.
No pagination or result limits. search_* tools return all results as a single JSON array. Large result sets will blow context windows. No limit parameter, no offset/page, no next_cursor.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 38 | 2026-07-28+ | v2 |
Tool descriptions are too short (30-50 chars vs. 50-200 char baseline). 'Search for jobs on Naukri.com based on job title and location. Returns a list of job listings as JSON.' lacks WHEN to use, prerequisites, and dependency hints.
No tool annotations. Tools lack readOnlyHint, destructiveHint, or idempotentHint. Agents cannot determine if calls are safe to retry or have side effects.