Developer Portal — MCP
Connect 100Hires to Claude, ChatGPT, Cursor, and any AI assistant
100Hires is an AI-native applicant tracking system (ATS). The 100Hires MCP server gives Claude, ChatGPT, Cursor, and any MCP-compatible AI assistant secure access to 130 tools for candidates, jobs, applications, and interviews — driven entirely by natural-language prompts.
One MCP endpoint, 130 tools — manage candidates, jobs, applications, interviews and messages with natural language.
{{ endpointUrl }}
- MIT License
- Glama.ai verified
- Official MCP Registry
Recruiting MCP, ATS MCP, hiring AI integration — bring your applicant tracking system into Claude, ChatGPT and Cursor with secure OAuth 2.1. New to 100Hires? Start a 14-day free trial.
What is MCP?
Model Context Protocol is an open standard from Anthropic that lets AI assistants connect to external systems through a uniform interface — think of it as USB-C for AI tools.
Hosts
AI assistants and IDEs that talk to MCP servers — Claude (web, Desktop, Code), ChatGPT, Cursor, VS Code, Codex, Windsurf, Zed.
Clients
The transport layer inside the host that speaks MCP over Streamable HTTP or stdio.
Servers
100Hires MCP server — exposes 130 tools backed by the public REST API, secured by OAuth 2.1.
100Hires runs a remote MCP server, not a local one.
There’s nothing to install, deploy or update on your machine — every client, including Claude Desktop and Cursor,
points at https://mcp.100hires.com/mcp and authorizes via OAuth.
New tools and bug fixes land server-side and reach all your assistants the next time they call tools/list.
What you can ask
Ten real prompts that work today, in plain English.
- “Show me candidates who applied this week for the Senior PM role”
- “Move all rejected candidates from this job to the talent pool”
- “Schedule a 30-minute interview with Sarah next Tuesday for the Backend Engineer role”
- “Draft a follow-up email to candidates who haven't replied in 5 days and send it”
- “Open a new Senior Product Designer job in New York and publish it to LinkedIn”
- “Find every LinkedIn candidate with Python on their resume and tag them 'pythonista'”
- “What's on my interview calendar tomorrow?”
- “How many candidates do we have at each stage in the Sales Rep pipeline?”
- “Reject everyone still in 'Phone Screen' for the Marketing Manager job with reason 'No response'”
- “Pull the resume and last 3 notes for the candidate I interviewed yesterday”
Quickstart
From zero to your first MCP prompt in under five minutes.
-
Prerequisites
A 100Hires account on any plan, including the 14-day free trial. The MCP endpoint is available to every workspace.
-
Pick your AI client
One-click install for Cursor and VS Code; copy a snippet for everything else. All clients connect to
{{ endpointUrl }}over Streamable HTTP; stdio-only clients use themcp-remoteshim.In ChatGPT, open Settings → Apps and click Advanced settings.
Step 1 — Settings → Apps → Advanced settings. Turn on Developer mode (Elevated risk) and click Create app.
Step 2 — enable Developer mode, then click Create app. In the New App (Beta) dialog, fill in:
- Name:
100Hires - Description (optional):
AI-native ATS — candidates, jobs, interviews via MCP - MCP Server URL:
{{ endpointUrl }} - Authentication:
OAuth - Tick I understand and want to continue, then click Create.
Step 3 — fill in the New App form and confirm. ChatGPT redirects you to the 100Hires consent screen. Sign in, click Allow, and you’re connected.
Install in CursorClick Install in Cursor to add 100Hires MCP automatically. Or paste the snippet below into
~/.cursor/mcp.json.Install in VS CodeOpens VS Code and registers the server. Or paste the snippet into
.vscode/mcp.jsonin your workspace.Add the snippet to your Claude Desktop config and restart the app:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Run this in your terminal:
OpenAI Codex CLI — requires
experimental_use_rmcp_client = truein~/.codex/config.toml.For stdio-only clients (Zed, Windsurf, n8n, older builds) use the
mcp-remoteshim. It’s a third-party open source bridge: github.com/geelen/mcp-remote.{{ activeSnippet }}Full list of MCP-compatible clients: modelcontextprotocol.io/clients.
- Name:
-
Authorize
Your client opens the 100Hires consent screen. Sign in, review the requested scope, click Allow. Tokens are stored on the client; 100Hires never sees its credentials.
-
Verify
Ask your assistant: “List all open jobs in 100Hires.” If you get a list back — you’re wired up. If not, see FAQ.
-
Next steps
Tools
Keep human confirmation on for destructive tools. Feedback: support@100hires.com.
Loading tools…
Tools list temporarily unavailable.
-
{{ tool.name }}{{ tool.description }}
Parameters ({{ toolParameters(tool).length }})
-
{{ param.name }}{{ param.type }} required - {{ param.description || '—' }}
-
No tools match {{ filterQuery }}.
{{ visibleTools.length }} of {{ tools.length }} tools
Authentication
OAuth 2.1 with PKCE and Dynamic Client Registration. Hosts onboard themselves — no API keys to copy and paste, no client secrets to leak.
Flow
AI client → GET /.well-known/oauth-authorization-server (RFC 8414)
→ POST /oauth/register (DCR, RFC 7591)
→ GET /oauth/authorize + PKCE (consent in 100Hires)
→ POST /oauth/token (code → access_token)
→ POST /mcp Authorization: Bearer <token>
Scopes
A single scope, mcp:full, mirrors the permissions of the authorizing user.
Token lifetime & refresh
- Access tokens expire after 1 hour.
- Refresh tokens are issued automatically; clients refresh transparently.
- Tokens are bound to the authorizing user and revoked when they leave the workspace.
Manage sessions
Settings → Integrations → Connected AI clients lists every active session: client name (from DCR), last used, IP, scope, and a one-click Revoke.
Safety
- Access is controlled by your API key permissions.
- Read operations are always safe.
- Destructive actions (delete, reject) require explicit IDs.
- Rate limiting with automatic retry is built-in.
- API key is never sent to third-party hosts.
Access model
Every token — OAuth or API key — is bound to a single 100Hires user. The MCP server only ever sees data that user could see in the UI; cross-company access is impossible. Sessions are listed under Settings → Integrations → Connected AI clients.
Destructive tools
These tools modify or remove data and always require explicit IDs — assistants cannot batch-delete by query:
hires_delete_*hires_reject_applicationhires_disqualify_candidatehires_batch_reject_applications
Best practices
- Don’t hand AI assistants a blanket “delete by filter” permission — keep human confirmation on for destructive tools.
- Use a separate token per client so you can revoke one without disrupting the others.
- Revoke unused sessions on a regular cadence.
- For CI, prefer a restricted API key over a personal token.
FAQ
I’m getting 401 Unauthorized or Internal server error
Your access token has likely expired or was revoked. Disconnect and reconnect the MCP server in your client.
Claude clients store tokens locally. To force a fresh OAuth flow:
rm -rf ~/.mcp-auth/100hires
I’m getting an error from the server
Email support@100hires.com with the failing tool name, the time of the request and the error message your client showed.
WSL / Windows quirks with npx mcp-remote
Run mcp-remote from the same shell as your client (e.g. WSL → WSL, not WSL → Windows host). Clear the on-disk token cache (~/.mcp-auth/100hires) when switching environments.
Does the server support Streamable HTTP?
Yes. Both application/json and text/event-stream responses are supported. If you’re reverse-proxying, set proxy_buffering off for the SSE path.