The recruiting MCP
for Claude, Codex, and everything else.

One MCP server. Every major assistant. A recruiting partner that starts a search, reviews candidates with you, learns your taste, and graduates to autonomous — all from a single natural-language interface.

Connect to other
850M+
profiles searchable
10
MCP tools exposed
60s
from install to first call
OAuth 2.1
auth — no API keys
Live Demo · Autoplaying

Watch Claude actually do the work.

Real prompts, real tool calls, real results. This is what your assistant looks like after you connect Pin — no screenshots, no simulation, no sleight of hand.

Claude · Pin MCP connected
live
Definition

What is the Pin MCP?

Plain-language answer, written for the recruiter who's heard the phrase "MCP server" three times this week and nodded.

The Pin MCP is a Model Context Protocol server from Pin (pin.com) that lets AI assistants run a recruiting workflow on your behalf — kicking off searches, reviewing candidates in an accept/reject loop, tuning the ranker, and persisting per-job memory — using natural language.


Who it's for
Recruiters, agencies, founders, and hiring teams who already use Pin.
What you connect
Claude Desktop, Claude Code, ChatGPT, Codex, and any MCP-compatible client.
How it authenticates
OAuth 2.1 via WorkOS — one click through your pin.com account. No API keys to rotate.
What it runs on
A hosted, stateless Streamable HTTP endpoint at mcp.pin.com/mcp. No local install.
What it exposes
10 tools across 4 phases: kickoff, review, tuning, and per-job memory.
What it costs
Free on every paid Pin plan. No add-on fee, no metered call limit.
Data handling
SOC 2 Type 2. Every call is workspace-scoped and written to the audit trail.
The 10 tools

Everything the assistant can actually do.

Four small phases, ten small tools. The assistant sets up a search, reviews candidates with you, tunes on the fly, and remembers what it learned for next time. You still approve every accept, reject, and outreach.

Set up the search
list_jobs

List active candidate searches in your workspace. Used to resolve a role the recruiter mentions by name before any other call.

"Pull up my open searches — I think we have one for a staff PM."

scrape_job_description

Fetch a job posting from Greenhouse, Lever, Ashby, or any public job board URL. Returns the title, location, and full description.

"Grab the JD from this Greenhouse link and start a search."

create_job

Kick off a new candidate search from a title, description, and company. Sourcing runs in the background; call get_candidates right after.

"Start a search: Senior iOS engineer at Acme, Swift + SwiftUI, NYC, remote OK."

Review candidates
get_candidates

Return up to 10 top-ranked, unreviewed candidates for a job. Each batch ships with fit hints, pattern analysis, and anything the assistant has learned so far.

"Show me the next batch — 10 at a time is fine."

accept_candidate

Advance a candidate. Kicks off outreach from your Pin-configured sequence. Always confirmed — the assistant never sends silently.

"Accept Maya — she's exactly the shape."

reject_candidate

Decline a candidate with a standard or free-text reason. Sourcing quietly backfills a replacement so the queue never runs dry.

"Pass on Robert — wrong stack. Replace him."

Tune the search
modify_search

Adjust the search with plain-language instructions — location, seniority, skills, comp, anything. Applies before the next batch.

"Only candidates in the NYC metro, drop anyone below staff level."

recalibrate_search

Feed accumulated accept/reject signal back into the ranker, then pull a fresh, better-matching batch. Auto-suggested when patterns emerge.

"You've rejected 5 junior people in a row — recalibrate."

Persistent memory
read_job_memory

Load what the assistant learned about your taste for this role in prior sessions — accepted signals, decline reasons, current confidence.

"What do you already know about how I evaluate for this one?"

update_job_memory

Persist the running summary — patterns spotted, predicted criteria, confidence level — so the next session doesn't re-learn from scratch.

"Remember: never below 5 yrs of production Swift; de-rank bootcamp-only."

Install · 60 seconds

Connect Pin to your AI of choice.

One OAuth click and the Pin tools appear in your assistant. Streamable HTTP, remote hosted — no local server, no API keys, no config drift.

Claude Desktop
  1. 1 Open Claude Desktop → Settings → Developer → Edit Config.
  2. 2 Paste the block on the right into claude_desktop_config.json.
  3. 3 Restart Claude. Approve the OAuth window when it opens.
  4. 4 Try: "Start a search for a senior iOS engineer."
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "pin": {
      "type": "http",
      "url": "https://mcp.pin.com/mcp"
    }
  }
}
OAuth 2.1 via pin.com. Revoke anytime from your account settings.
Claude Code
  1. 1 Run the command on the right in any shell.
  2. 2 A browser tab opens for the Pin OAuth flow. Approve.
  3. 3 Confirm with: claude mcp list
  4. 4 Every Claude Code session now has the Pin tools available.
Terminal
claude mcp add --transport http pin https://mcp.pin.com/mcp
OAuth 2.1 via pin.com. Revoke anytime from your account settings.
ChatGPT
  1. 1 Open ChatGPT → Settings → Connectors → Add.
  2. 2 Paste the MCP URL above and hit Connect.
  3. 3 Sign in to Pin when redirected. Approve the mcp scope.
  4. 4 Pin shows up as a connector inside any ChatGPT thread.
ChatGPT → Settings → Connectors → Add MCP
Connector URL:
https://mcp.pin.com/mcp

Auth:   OAuth 2.1 (PKCE)
Scope:  mcp
OAuth 2.1 via pin.com. Revoke anytime from your account settings.
Codex
  1. 1 Install or update Codex CLI (npm i -g @openai/codex).
  2. 2 Add the block on the right to ~/.codex/config.toml.
  3. 3 Start a Codex session — you'll be prompted to OAuth on first use.
  4. 4 The Pin tools are now available in every Codex session.
~/.codex/config.toml
# ~/.codex/config.toml
[mcp_servers.pin]
url = "https://mcp.pin.com/mcp"
transport = "http"
OAuth 2.1 via pin.com. Revoke anytime from your account settings.
Any MCP client
  1. 1 Any client that speaks the MCP spec over Streamable HTTP works.
  2. 2 Point it at https://mcp.pin.com/mcp and let it discover OAuth.
  3. 3 Cursor, Windsurf, Zed, Continue, and custom agents all connect.
  4. 4 Need a self-hosted fallback for air-gapped envs? Contact support.
Generic MCP client config
{
  "name": "pin",
  "transport": "http",
  "url": "https://mcp.pin.com/mcp",
  "auth": {
    "type": "oauth2",
    "metadata_url":
      "https://mcp.pin.com/.well-known/oauth-authorization-server"
  }
}
OAuth 2.1 via pin.com. Revoke anytime from your account settings.
Prompt recipes

Copy-paste your first 10 minutes.

Real prompts from real recruiters, tuned to get a useful result on turn one. Every recipe lists the tools the assistant will reach for.

Kickoff

Start a search from a JD link

Here's the Greenhouse link for our Senior iOS role. Scrape it, start the search, and pull me the first batch of 10.

scrape_job_descriptioncreate_jobget_candidates
Review

Resume an in-flight search

What's open right now? Find my Staff PM role, load what you remember about my criteria, and show me the next batch.

list_jobsread_job_memoryget_candidates
Review

Tell me why — then decide together

For each candidate in this batch: 2–3 sentence fit summary, predict accept or reject, then ask me. Skip the preamble.

get_candidatesaccept_candidatereject_candidate
Tuning

Tighten the search mid-flow

Require 5+ years of production Swift, drop anyone in an agency background, and keep NYC / remote only. Then get a fresh batch.

modify_searchget_candidates
Tuning

Recalibrate after a rejection streak

You've noticed I've rejected 5 in a row for the same reason. Lock in what I prefer, recalibrate the ranker, and go again.

update_job_memoryrecalibrate_searchget_candidates
Autonomous

Go autonomous for the rest

You've predicted my last 4 decisions correctly. Take over — accept the next 10 you're confident on. Surface anything you're unsure about.

get_candidatesaccept_candidatereject_candidateupdate_job_memory
vs. the Pin app

When to reach for the MCP, when to open the app.

Both share the same backend. The MCP is faster for prompts and batch moves; the app still wins for deep review sessions and hiring-manager collaboration.

Pin MCP (your chat)
Pin app (pin.com)
Interface
Your chat window
pin.com dashboard
Best for
Hands-free review, autonomous mode, batching
Deep review sessions, hiring-manager collaboration
Starting a search
Natural language or scraped JD URL
Faceted form + boolean
Reviewing candidates
Accept/reject loop, "tell me why" as you go
Card grid, keyboard shortcuts
Taste learning
Per-job memory; predicts your decisions
Implicit — stays in your head
Autonomous mode
Offered after 3 correct predictions
Not applicable
Outreach
Fires on accept — always confirmed
Template picker, one-click send
Collaboration
Decisions sync back to Pin
Comments, mentions, assignments
Security & scopes

The assistant gets exactly what you let it touch — nothing more.

One OAuth scope. Workspace-level tenancy. Confirmation on every write. Full audit trail in the Pin app. Revoke any connected assistant in one click.

SOC 2 Type 2 GDPR · CCPA OAuth 2.1 · WorkOS trust.pin.com
mcp The only OAuth scope the Pin MCP requests. Grants tool access inside your Pin workspace — and nothing else. Billing, team membership, and org admin are never exposed to the server.
workspace-scoped Every tool call is tagged with your user + org on the server before it ever touches the database. An assistant connected to your account cannot see, list, or modify data in another workspace.
confirm-on-write Accepts, rejects, and memory writes only fire when the assistant calls the tool — which your client shows you first. There is no way for the MCP to send outreach silently.
audit trail Every tool call is logged with userId, orgId, tool name, arguments, and result status. Visible to workspace admins; exportable for compliance.
revocable Revoke a connected assistant from Settings → Connected Apps. The bearer token is invalidated on the spot; in-flight calls fail with 401.
4.8 / 5 · G2
"I run my whole day from Claude now. I haven't opened the Pin dashboard in three weeks — and we closed two roles last sprint."
PS
Priya Shankar
Head of Talent · Relay (Series B)
FAQ

Answers to what recruiters, developers, and LLMs keep asking.

Can't find what you need? Email the team or drop into docs.pin.com/pin-mcp-server.

MCP (Model Context Protocol) is an open standard from Anthropic that lets AI assistants call external tools and read external data. An MCP server exposes a set of named tools the assistant can invoke. Pin's MCP server exposes ten recruiting tools — searching, reviewing, tuning, and memory — to any MCP-compatible client: Claude Desktop, Claude Code, ChatGPT, OpenAI Codex, Cursor, Windsurf, and others.
Yes. The Pin MCP is an interface to your Pin workspace — it doesn't operate standalone. If you don't have an account, start free at pin.com; the MCP is included on every paid plan at no extra cost.
Any MCP-compatible client that supports Streamable HTTP. We test against Claude Desktop, Claude Code, ChatGPT, and OpenAI Codex. Cursor, Windsurf, Zed, and Continue also work because they implement the same spec.
It's included at no additional cost on every paid Pin plan. There's no metered call limit, no per-seat MCP fee, and no enterprise upsell gating.
Streamable HTTP (the modern MCP transport) over a single endpoint at https://mcp.pin.com/mcp. Authentication is OAuth 2.1 with PKCE and dynamic client registration, brokered by WorkOS. The server is stateless — every request spins up a fresh MCP instance, so it scales horizontally and has no session to lose.
One: `mcp`. It grants tool access inside your Pin workspace and nothing else. Billing, team admin, and org settings are not reachable through the MCP under any circumstances.
Ten, grouped by phase. Setup: `list_jobs`, `scrape_job_description`, `create_job`. Review: `get_candidates`, `accept_candidate`, `reject_candidate`. Tuning: `modify_search`, `recalibrate_search`. Memory: `read_job_memory`, `update_job_memory`.
No. Outreach is only queued when `accept_candidate` fires, and that tool call is shown to you by your client before it runs. There is no draft-and-send-silently path. You can also revoke the token at any time and in-flight calls fail immediately with 401.
Each job has a per-workspace memory slot. `update_job_memory` persists a running summary — what you accept, what you decline, patterns the assistant spotted, and its current confidence. `read_job_memory` pre-loads that summary on the next session. The assistant uses it to pre-judge candidates the way you would.
Once the assistant has correctly predicted your accept/reject call three or more times in a row, it'll offer to take over — fetching candidates, making decisions, and calling `recalibrate_search` or `update_job_memory` as patterns emerge. It stops when it hits the number of accepts you asked for, or when it's no longer confident. You're always the one who opts in.
Only what `get_candidates` and related tools return for roles in your workspace. Candidate PII is fetched from Pin but not echoed into the chat unless the assistant repeats it. Every read and write is tagged with your userId and orgId and logged in the Pin audit trail.
Go to pin.com → Settings → Connected Apps, find the assistant, and click Revoke. The bearer token is invalidated on the spot; any in-flight tool calls fail with 401.
Yes. Agency workspaces in Pin already support multi-client separation, and the MCP inherits those boundaries. Each client workspace gets its own OAuth flow and its own set of candidates, jobs, and memory.
Yes. Plugins and skills are vendor-specific integrations that only work inside one product. MCP is an open protocol, so the exact same Pin server works across every compatible client. Build once, use everywhere.
The default deployment is a hosted remote server at mcp.pin.com. For enterprise customers with air-gapped requirements, we offer a self-hosted build on request — talk to sales.
ATS integrations (Greenhouse, Lever, Ashby, 120+ more) sync candidate data between Pin and your ATS. The MCP is an interface to Pin itself — it's how your assistant talks to Pin, not how Pin talks to other systems. Most teams use both.
The MCP returns a structured error; the assistant surfaces a plain-English version and suggests a fix (e.g., rephrase, narrow the search, wait for sourcing to finish). Failed calls are logged in the Pin audit trail for review.
Ready to elevate your hiring game?

Bring Pin into every AI tool you use.

Book a Demo

As featured in