Pin MCP server
The recruiting MCP for Claude, Codex, and everything else.
Run Pin from the assistant you already work in. Start a search, review candidates with it, let it learn your taste, and hand it the rest when you're ready. Same Pin, same 850M+ profiles, in plain language.
Included on every paid Pin plan · See pricing
- profiles searchable
- 850M+
- profiles searchable
- MCP tools exposed
- 10
- MCP tools exposed
- from install to first call
- 60s
- from install to first call
- auth — no API keys
- OAuth 2.1
- auth — no API keys
In your chat window
Brief and match, without leaving your assistant.
Real prompts, real Pin tool calls. The assistant starts the search, explains why each person fits, and waits for your call. Accepted candidates go straight into your Pin outreach sequence.
Here's the Greenhouse link for our Senior iOS role. Scrape it, start the search, and pull me the first batch of 10.
Pin scrape_job_description done
url: boards.greenhouse.io/acme/…
Senior iOS Engineer · New York, NY
Pin create_job done
title: Senior iOS Engineer · company: Acme
Search created · sourcing in the background
Pin get_candidates done
limit: 10
10 unreviewed candidates
Here's the first batch. Maya and Jamal both have years of production SwiftUI. Want to go through them one at a time?
get_candidates · 10 results
- SwiftSwiftUI Yes
Maya Chen
Brooklyn, NY · 9 yrs
- SwiftUIKit Yes
Jamal Okafor
Manhattan, NY · 11 yrs
- SwiftUIAccessibility Maybe
Priya Shankar
Jersey City, NJ · 8 yrs
Definition
What is the Pin MCP?
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.
01 · 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.”
02 · 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.”
03 · 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.”
04 · 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.
- 1 Open Claude Desktop → Settings → Developer → Edit Config.
- 2 Paste this block into claude_desktop_config.json.
- 3 Restart Claude. Approve the OAuth window when it opens.
- 4 Try: "Start a search for a senior iOS engineer."
- Full docs at docs.pin.com/pin-mcp
{
"mcpServers": {
"pin": {
"type": "http",
"url": "https://mcp.pin.com/mcp"
}
}
} 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.
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
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
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
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
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
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.
| Aspect | 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.
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.
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.
What is an 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.
Do I need a Pin account to use the Pin MCP?
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.
Which AI assistants does the Pin MCP support?
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.
Is the Pin MCP free?
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.
What transport does the server use?
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.
What OAuth scopes does the Pin MCP request?
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.
What tools does the server expose?
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.
Can the assistant send outreach without my approval?
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.
How does the memory work?
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.
What is autonomous mode?
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.
What data can the assistant see?
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.
How do I revoke access?
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.
Does the Pin MCP work for agencies with multiple clients?
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.
Is this different from a ChatGPT plugin or a Claude skill?
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.
Can I self-host the Pin MCP?
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.
How is this different from Pin's ATS integrations?
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.
What happens if a tool call fails?
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.
Bring Pin into every AI tool you use.
New to Pin? start free, give it a role, and connect your assistant when you're ready. Or book a walkthrough and we'll set it up with you.
Free plan · No credit card