Skip to main content
Glama
starnikovoleg

hiringindex-mcp

Search job postings

search_jobs
Read-onlyIdempotent

Find live job postings published across Workday, SmartRecruiters, Greenhouse, and more, with filters for title, location, salary, work arrangement, and posting date.

Instructions

Search live job postings read directly from ten applicant tracking systems (Workday, SmartRecruiters, Greenhouse, Workable, Lever, Ashby, Recruitee, Teamtailor, Breezy, Personio). Returns title, employer where the ATS publishes it, location, employment type, advertised salary where disclosed, posting date and the employer's own apply link where the source carries one.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cityNoCity name as employers write it, e.g. "Berlin", "New York", "Bengaluru".
pageNoResult page, starts at 1.
limitNoPostings per page, up to 100.
formatNomarkdown (default) or raw json.
titlesNoJob titles to match, e.g. ["Data Engineer"]. Terms shorter than 3 characters are rejected by the index.
companyNoRestrict to one employer by name.
countryNoCountry as ISO 3166-1 alpha-2 code ("US", "DE") or an English name ("Germany").
keywordsNoTerms mentioned anywhere in the posting — title or description — e.g. ["Kubernetes"]. Any keyword matches. Use titles for the role itself; keywords for a tool, skill or technology the posting talks about.
salary_maxNoHighest advertised salary to include.
salary_minNoLowest advertised salary to include. Only postings that disclose a salary match.
board_handleNoRestrict to one ATS board by its handle, exactly as the `handle` field of a posting reports it, e.g. "EndeavorITSolution" (SmartRecruiters) or "walmart:wd504:WalmartExternal" (Workday). The precise way to pull one employer's postings when names are ambiguous.
work_arrangementNoFilter by how the work is done. Hybrid is not a separate filter upstream.
posted_within_daysNoOnly postings published in the last N days.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/openWorld/idempotent, so the safety profile is covered. The description adds real value on top: live data sourced directly from ATSs, and conditional-field caveats — 'employer where the ATS publishes it', 'advertised salary where disclosed', 'apply link where the source carries one' — which warn the agent that fields are per-posting optional and not fully normalized.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero waste: the action verb and scope are front-loaded, the ATS source list is high-value context, and the return-field enumeration earns its place since there is no output schema. Every sentence carries information an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 13-parameter tool with no output schema, this is nearly complete: the description documents the response contract via its return-field list, the schema covers all parameters at 100%, and annotations cover safety and open-world behavior. Minor gaps remain — result ordering, pagination semantics, and default format behavior are not stated — but nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline of 3 applies. The description itself adds nothing about the 13 parameters; the schema already documents each one richly (3-character title minimum, hybrid not being a separate filter, board_handle ambiguity guidance, salary disclosure requirement). The description correctly defers to the schema here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description pairs a specific verb and resource ('Search live job postings') with concrete detail: ten named ATS sources and the exact return fields (title, employer, location, employment type, salary, posting date, apply link). This clearly positions it against siblings like get_job (single posting) and job_market_insights (market-level analysis) without needing to open the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description establishes clear scope ('live job postings read directly from ten applicant tracking systems') and enumerates what results contain, so when an agent wants a live posting search the choice is implied. However, it never names the siblings or states when NOT to use this tool — the selection guidance that does exist (titles vs keywords, board_handle for ambiguous names) lives in the schema, not the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.