MCP server for searching LinkedIn jobs and retrieving job details using the LinkedIn Data API
Three tools with basic verb-noun naming (search_jobs, get_job_details, search_locations). Descriptions present but generic (10-50 chars, below 194-char baseline). Input schemas visible with types and defaults, but parameter descriptions are minimal. Output schemas undocumented, LLMs cannot predict response structure. No error recovery guidance. No pagination despite search returning lists. No tool annotations. Composition is reasonable (three distinct concerns), but parameter naming lacks type suffixes (job_id is good; keyword could be location_keyword for clarity).
Get detailed information about a specific LinkedIn job posting.
Search for jobs on LinkedIn and return as a dictionary.
Search for LinkedIn location IDs by keyword.
Output schemas undocumented. search_jobs returns dict with 'query', 'count', 'jobs' fields; get_job_details returns job_data dict; search_locations returns location_id string. LLMs cannot plan downstream calls or extract fields without documented schemas.
Parameter descriptions are minimal or missing. 'keywords' (search_jobs) lacks guidance on format/length. 'limit' has no min/max bounds (baseline: 1 - 100). 'location' defaults to 'Israel' with no explanation of why or how to discover valid values. 'job_id' (get_job_details) lacks format hint (is it numeric? URN format?).
No pagination support. search_jobs accepts 'limit' but no offset/page/cursor. If API returns 100+ jobs, LLM receives all or truncated results with no way to fetch next page. Violates pattern:paginated-result.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 42 | <=2025-11-25 | v2 |
Error handling returns raw strings or dicts without recovery guidance. 'API Error: {message}' or 'Error searching jobs: {e}' tells LLM nothing about retry eligibility or next steps. Violates pattern:recovery-guide.
Tool descriptions are 25 - 35 characters (baseline: 194 chars). 'Search for jobs on LinkedIn and return as a dictionary' lacks WHEN to use, prerequisites, or distinction from similar tools. Descriptions should be 50 - 200 chars with actionable context.