MCP server
Connect the job index to Claude, Cursor, ChatGPT or any MCP-compatible client, and ask in plain language.
Install
npx -y hiringindex-mcp
In Claude Desktop or Claude Code:
{
"mcpServers": {
"hiringindex": {
"command": "npx",
"args": ["-y", "hiringindex-mcp"],
"env": { "HIRINGINDEX_API_KEY": "your-key" }
}
}
}
Four tools
- search_jobs — "show me senior Go roles in Amsterdam paying over €80k"
- job_market_insights — "what does a data engineer earn in Berlin, and who is hiring?"
- posting_age_report — "are these listings fresh, or have they been open for months?"
- get_job — full detail for one posting
All four take the same filters, so a slice defined once can be searched, aggregated and aged without rewriting the query.
The one nobody else has
posting_age_report answers a question the other job servers cannot: how long these listings have been sitting there. Median age, share posted this week, share still open past sixty days. It reports the numbers — it does not claim to know the employer's intent.
Why the handshake stays local
The tools call REST endpoints directly instead of proxying a remote /mcp. A marketplace meters every request against the declared path, initialize and tools/list included. Through this package the handshake never leaves your machine, and only real queries cost anything.
Output
Markdown by default — repeated fields render as tables, which costs fewer tokens than a labelled list and stays readable for a human. Pass format: "json" on any tool for the raw response.