Query your pipeline from your own AI
HiringFunnel ships an MCP server (Model Context Protocol) so your AI client — Claude Desktop, Cursor, Continue, or anything else that speaks MCP — can search your job queue, explain why a role was matched, and pull up your saved shortlist without you having to open the dashboard.
Two steps:
- Issue a Personal Access Token at
/dashboard/settings/api. - Add HiringFunnel to your MCP client using the config below.
Step 1: issue a token
- Go to
/dashboard/settings/api. - Give the token a memorable name (e.g. "Claude Desktop on laptop").
- Click Issue token.
- Copy the token now. It's shown once. If you lose it, revoke it and issue a new one.
The token is prefixed with pyp_ so it's recognizable in a config file and findable by secret scanners.
Step 2: add HiringFunnel to your MCP client
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"pypes": {
"url": "https://api.pypes.dev/mcp",
"headers": {
"Authorization": "Bearer pyp_your_token_here"
}
}
}
}
Restart Claude Desktop. In a new conversation you should see the pypes server listed, with six tools available.
Cursor
Cursor reads the same config. Open Settings → MCP and add:
- Name:
pypes - URL:
https://api.pypes.dev/mcp - Header:
Authorization: Bearer pyp_your_token_here
Continue
Add to ~/.continue/config.json:
{
"experimental": {
"modelContextProtocolServers": [
{
"transport": {
"type": "streamable-http",
"url": "https://api.pypes.dev/mcp",
"headers": {
"Authorization": "Bearer pyp_your_token_here"
}
}
}
]
}
}
What you can ask
The server exposes six tools. Your AI client picks the right one based on your prompt — you don't have to name them.
| Tool | What it does | Example prompt |
|---|---|---|
search_jobs | Search your queue by title, company, remote, salary, date | "Show me remote fintech roles posted this week" |
get_job | Full details for one job | "What are the requirements on that Anthropic role?" |
get_similar_jobs | Find jobs like a given one | "More like the Stripe role I saved yesterday" |
explain_fit | Raw match signals for a job | "Why did HiringFunnel queue this one?" |
list_saved | Everything you've bookmarked | "What's on my shortlist?" |
get_scoring_criteria | Your current scan profile | "What am I filtering for right now?" |
Scope and safety
- Read-only. Nothing in the current tool set can mutate your queue, apply to jobs, or change your profile. All writes happen through the web dashboard.
- Scoped to you. Every query is filtered to your
member_id. You never see another member's data or the raw global job firehose. - Rate limited. 60 requests per minute per token, with a burst of 10. If you exceed this, the tool returns 429 and the client will back off automatically.
- Revocable. Delete a token from
/dashboard/settings/apiand the next request 401s immediately.
Troubleshooting
"401 Unauthorized" — Your token is wrong, revoked, or your subscription lapsed. Re-issue from /dashboard/settings/api.
"402 Payment Required" — Your subscription is cancelled. MCP access requires an active HiringFunnel membership.
"429 Too Many Requests" — You hit the rate limit. The Retry-After header tells your client when to try again.
Tool returns empty results — Not an error. Your queue may not have matches for that query. Try get_scoring_criteria to see what filters are active, and adjust at /dashboard/profile.
Client doesn't see the tools — Restart the client after editing config. Some MCP clients cache the tool list at connection time.
Security notes
- Only the SHA-256 hash of your token is stored server-side. A database leak cannot be replayed against
/mcp. - Store the token in your MCP client's config file — same trust boundary as your
~/.ssh/keys. - Never paste a
pyp_token into a chat, an issue tracker, or a shared document. If you do, revoke it immediately. - Rotate tokens periodically. Old tokens don't expire on their own — revoke them when you no longer need them.