Two tools with clear naming and reasonable descriptions, but significant gaps in schema completeness and parameter documentation. list_job_sites has no input schema (empty object) and minimal description. search_jobs has a comprehensive input schema with 15 parameters, but lacks output schema documentation and several parameters lack proper type constraints (e.g., job_type, description_format should be enums). Error handling returns a dict with error/message fields but provides no recovery guidance. No tool annotations (readOnlyHint, destructiveHint) despite both being read-only operations.
Returns the list of job board site names that can be passed to search_jobs. Call this first if you are unsure which sites to target.
Search for jobs across one or more job boards using JobSpy. Returns a list of job postings with title, company, location, salary, description, and direct URL. At least search_term or location should be provided for useful results.
list_job_sites has empty input schema ({}). Tool is discoverable but provides no formal input validation structure.
search_jobs parameters job_type and description_format accept free-form strings instead of enums. job_type description says 'One of: fulltime, parttime, internship, contract' but schema lacks enum constraint. description_format says 'markdown or html' but no enum. LLMs will hallucinate invalid values.
Output schema not documented for either tool. search_jobs returns {total, jobs, error, message} but the structure of job objects is not specified. LLMs cannot plan downstream operations without knowing available fields.
Error handling returns raw exception type and message but provides no recovery guidance. 'error: ValueError, message: invalid site' tells the LLM nothing about what to do next. Should suggest 'Call list_job_sites() to see valid values.'
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
No tool annotations despite both tools being read-only. Missing readOnlyHint in tool definitions. Agents cannot distinguish safe tools from destructive ones without explicit hints.