Extract structured descriptions and employment criteria from job-offer URLs. Supports LinkedIn, InfoEmpleo, TecnoEmpleo, Indeed and InfoJobs.
Single-tool server with moderate issues. Tool name 'get_job_offer' follows verb-noun convention and is clear. Description exists (117 chars) and explains purpose adequately. However, the input schema is minimal (only 'url' parameter with generic string description), lacks output schema documentation, and error handling returns inconsistent structures (sometimes structured error objects, sometimes plain dicts). Tool is marked as READ_ONLY and IDEMPOTENT which is good, but the parameter description is generic ('The URL of the job offer to scrap') without format constraints, validation rules, or guidance on supported domains. Return type annotation shows 'JobOfferInfo | dict[str, object]' but the underlying JobOfferInfo structure is not visible in the source provided, making it impossible to verify output schema quality. The fallback error handling returns ad-hoc error shapes ({"error": {"code", "message"}}) that don't align with the JobOfferInfo contract.
Extract the description and employment criteria from a public job-offer URL.
Input parameter 'url' lacks format constraints and validation guidance. Description does not specify: supported job board domains (LinkedIn, InfoEmpleo, TecnoEmpleo, Indeed, InfoJobs), required URL format, or what happens if an unsupported domain is passed.
Output schema is not documented. Tool returns 'JobOfferInfo | dict[str, object]' but JobOfferInfo structure is not visible in the provided source code. LLM cannot infer what fields to expect, blocking downstream tool composition and result extraction.
Inconsistent error response structures. Fallback errors return {"error": {"code", "message"}} but success returns JobOfferInfo or {"content": "..."}. LLM cannot reliably parse responses or distinguish success from failure.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | <=2025-11-25 | v2 |
Error messages are generic and non-actionable. 'The page could not be downloaded' and 'The job offer could not be extracted' provide no recovery guidance. Should specify: 'Try a different URL', 'Check if the page is public', 'Ensure the URL is from a supported job board'.
Tool description mentions 5 supported job boards (LinkedIn, InfoEmpleo, TecnoEmpleo, Indeed, InfoJobs) in server instructions, but the tool description itself does not document this. LLM may attempt unsupported domains without knowing they will fall through to a generic scraper.