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.

Illustrative

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

  • Maya Chen

    Brooklyn, NY · 9 yrs

    Yes
  • Jamal Okafor

    Manhattan, NY · 11 yrs

    Yes
  • Priya Shankar

    Jersey City, NJ · 8 yrs

    Maybe

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. 1 Open Claude Desktop → Settings → Developer → Edit Config.
  2. 2 Paste this block 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."
  5. Full docs at docs.pin.com/pin-mcp
~/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.

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.

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.

SOC 2 Type 2GDPR · CCPAOAuth 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.

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.

Book a Demo With Our Team

Free plan · No credit card