activate-top-candidates
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@activate-top-candidatesFind me 5 Meta + TikTok media buyers for a DTC skincare brand, as a table with profile links."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Activate Top Candidates
Search, shortlist, and pitch Activate Talent's pre-vetted Top Candidates from Grok Bot, Cursor, or Claude, without leaving your chat.
@activatetalent/top-candidates-mcp is a read-only Model Context Protocol server for recruiters and account managers. You describe the role and get back a ranked shortlist with profile links and a draft pitch you can review, built only from public data.
What it does
Searches Activate Talent's public Top Candidates by role, skill, or tool (Meta Ads, Klaviyo, Shopify, and more).
Matches a role brief to a ranked, deduped shortlist, with a why-fit line for each candidate.
Browses 22 categories, from Media Buyers to AI Specialists to Video Editors.
Drafts value-first pitches that lead with outcomes, never price, and never name clients.
Shares profile links for a human to open.
Related MCP server: QueryQuarry
What it never does
Never sends email, Slack, or messages. Every pitch is a draft for you to review.
Never reads private data: no surnames, contact details, LinkedIn, DOB, past employers, internal notes, or pay rates.
Never crawls profile pages or scrapes the site.
Never needs credentials. No API keys, no login, no database access.
Install
Requires Node.js ≥ 18.17. Transport: stdio. Auth: none.
Grok Bot
Ask Grok Bot:
Add an MCP server named
activate-top-candidateswith commandnpx -y @activatetalent/top-candidates-mcp.
Or install it from the Grok Bot plugin marketplace once the listing is live.
Cursor
Plugin: install Activate Top Candidates from the Cursor Marketplace. It bundles the MCP server and two skills, and runs
node ${CURSOR_PLUGIN_ROOT}/index.js.Manual: add to
~/.cursor/mcp.json:
{ "mcpServers": { "activate-top-candidates": { "command": "npx", "args": ["-y", "@activatetalent/top-candidates-mcp"] } } }Claude Desktop
Add to claude_desktop_config.json:
{ "mcpServers": { "activate-top-candidates": { "command": "npx", "args": ["-y", "@activatetalent/top-candidates-mcp"] } } }From source
git clone https://github.com/jared502/top-candidates-mcp && cd top-candidates-mcp
npm install && npm test && node index.jsTools
Tool | Purpose |
| Turns a role brief into a ranked shortlist (1–3 merged searches, why-fit lines from the public title and category). Start here. |
| Keyword search, up to 25 results, with an optional category filter. Never returns rates. |
| All 22 category slugs, names, and browse URLs. |
| Builds a profile URL and never fetches it. |
| Value-first pitch draft: no client names, no price unless asked. |
| Deprecated alias of |
Bundled skills (Cursor / Grok Bot plugin)
activate-sourcing-shortlists: brief →
match_role→ refine → ranked table with links.activate-candidate-endorsements: candidate → link →
draft_candidate_pitch→ a draft you review.
Example prompts
"Find me 5 Meta + TikTok media buyers for a DTC skincare brand, as a table with profile links."
"Who does Activate have for a Shopify developer who knows Klaviyo?"
"List the categories, then show executive assistants."
"Draft a value-first pitch for the top media buyer for a performance marketing lead role."
"Shortlist video editors for short-form social content."
Privacy & data policy
Source: only the public endpoint
https://topcandidates.activatetalent.app/api/top-candidates/search.Fields returned: candidate id, first name + last initial (enforced even if the API returns more), role title, category, profile URL. Nothing else.
Never returned: full surname, email, phone, address, LinkedIn, DOB, past employers, internal notes, recruiter/owner, pay rates, or bill rates (stripped from every tool output).
No crawling: profile pages are never fetched. Opening one triggers an AI resume read, so links go to humans.
Storage: search results are cached in memory for 10 minutes and nothing is written to disk. No telemetry.
Outbound: nothing is sent anywhere. Pitches are drafts.
Support
Built and maintained by Activate Talent.
Development
npm test runs an end-to-end stdio smoke test against the live public API. It checks for field leaks, the category filter, match_role, links, and that pitches contain no price.
License
MIT © Activate Talent
Changelog
1.0.0 (2026-10-15): Marketplace-ready release. Added
list_categories,match_role,get_candidate_link, anddraft_candidate_pitch; the category filter andmaxResults; name and field sanitization; a 10-minute search cache; the Video Editors category; better role-phrase matching; two bundled skills; the Cursor plugin manifest; and polished docs and logo.0.1.0: Initial search and profile-URL tools.
Available Tools
6 toolsdraft_candidate_pitchDraft Candidate PitchA
Draft a short, value-first candidate endorsement for the sender to review. Pass a generic roleDescription with no client name. The draft leads with outcomes tied to the public role title and never invents experience. It never includes pay or bill rates. Returns a DRAFT only; this tool sends nothing.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | ||
| url | No | ||
| name | Yes | Public name (first name + last initial) | |
| role | Yes | Public role title | |
| category | No | Category slug or name | |
| roleDescription | Yes | Generic role description (no client names) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does so well: it states the tool never invents experience, never includes pay/bill rates, and crucially that it 'Returns a DRAFT only; this tool sends nothing.' It does not cover permissions or rate limits, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Six tight clauses, no waste, and the core purpose is front-loaded in the first sentence. Each subsequent sentence adds a distinct, non-redundant guardrail (input form, content constraints, output nature).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly compensates by stating what is returned ('a DRAFT only; sends nothing'). It covers the key behavioral guardrails for a 6-param generation tool but omits how id/url/category influence the draft and any auth or rate-limit context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%, and the one parameter the description highlights (roleDescription as generic with no client name) is already documented in the schema itself, so it adds little. The other parameters (id, url, category) receive no explanation in either the schema or the description. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (Draft) and resource (candidate endorsement/pitch) and immediately qualifies the output as 'short, value-first' and 'for the sender to review.' This clearly separates it from all siblings, which are retrieval/match tools (search_top_candidates, match_role, get_candidate_link), so there is no plausible tool confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives usage conditions ('Pass a generic roleDescription with no client name') and content guardrails, which implies when the tool is appropriate. However, it never explicitly states when to use this tool versus an alternative, nor names any sibling, leaving the routing decision to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_candidate_linkGet Candidate LinkA
Build a candidate's public profile URL from id and an optional category slug from. This never fetches the page, because opening a profile triggers an AI resume read. Share the link; do not crawl it.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| from | No | Optional category slug |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full behavioral burden and does so well: it discloses that the call is purely constructive (never fetches the page) and explains the consequence of the opposite behavior (opening a profile triggers an AI resume read). That is exactly the kind of side-effect/cost context an agent cannot get from the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with what the tool produces, followed by the critical behavioral constraint and the usage directive. No filler or restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter, side-effect-free URL builder with no output schema, the description covers purpose, inputs, behavior, and safe usage. The return value (a URL string) is clearly implied by 'Build ... URL', so nothing material is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% (only `from` is documented). The description restates both parameters and clarifies `from` as an optional category slug and that the URL is composed from `id`, adding mild meaning beyond the bare types, though `id`'s format is still only implied.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Build') and resource ('candidate's public profile URL') and names both inputs. It does not, however, differentiate itself from the nearby sibling get_top_candidate_profile_url, so an agent must infer the distinction from the argument shape alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear operational context ('Share the link; do not crawl it') and a reason to avoid dereferencing. It stops short of naming an alternative tool or stating when a caller would prefer get_top_candidate_profile_url over this one, but the intended usage is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_top_candidate_profile_urlGet Profile URL (legacy)A
Deprecated alias of get_candidate_link, kept for older configs. Prefer get_candidate_link. Returns the URL only and never fetches it.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| from | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden, and it does disclose one important trait: it never fetches the URL, avoiding a costly side effect. However, it says nothing about permissions, error behavior, or how the alias differs functionally from its replacement, so it is only partially transparent for an unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, deprecation status front-loaded, followed by the routing guidance and the one behavioral note. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Return shape is covered ('URL only'), but with no output schema, no annotations, and 0% parameter coverage, the definition leaves the parameter meanings and any auth/error characteristics undocumented. Adequate for a deprecated alias, but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and neither 'id' nor 'from' is explained in the description. Since the schema provides no semantics, the description should compensate and does not, leaving the meaning of 'from' entirely unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the exact resource and behavior ('alias of get_candidate_link') and explicitly states what it returns ('the URL only'). It also distinguishes itself from the sibling get_candidate_link by framing itself as the deprecated alias, so an agent can tell them apart without reading schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit routing instruction: 'Prefer get_candidate_link,' and scopes its own use to 'older configs.' That is a clear when-to-use/when-not-to-use statement naming the alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesList CategoriesA
List every Top Candidates category with its slug, display name, and browse URL. Call this first when you need a valid category filter or from value.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses that the call returns *every* category (implying no pagination) and names the returned fields, but says nothing about auth requirements, rate limits, or whether the list can grow unbounded. Adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with zero padding. The what-it-returns statement comes first and the guidance for when to call it is front-loaded immediately after.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description compensates well by naming the three returned fields and positioning the tool as a prerequisite for valid category/from values. Nothing an agent needs to invoke this zero-arg lookup is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to document beyond the empty schema; the baseline for a parameterless tool applies. The description does add value by stating the shape of the returned items.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List every Top Candidates category') and enumerates exactly what comes back (slug, display name, browse URL). This also routes the agent away from the search/profile siblings, since it is clearly a reference-listing operation rather than a search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to 'call this first when you need a valid `category` filter or `from` value,' which tells the agent the prerequisite context for the sibling search tools. No when-not conditions are given, but the tool has no real alternative, so the guidance is practically complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
match_roleMatch Role to ShortlistA
Turn a role brief into a ranked shortlist. Pass a one-line brief with must-haves and no client names (e.g. 'Meta + TikTok media buyer for DTC skincare'). Runs 1–3 searches, merges and dedupes them, and returns candidates with why-fit lines based ONLY on the public role title and category. Use this first for sourcing requests; tell the recruiter to verify fit on the profile.
| Name | Required | Description | Default |
|---|---|---|---|
| brief | Yes | Role brief or must-haves | |
| category | No | Optional category slug to restrict to | |
| maxResults | No | Shortlist size, default 10 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose internal behavior: 1-3 searches, merge/dedupe, and a key limitation that why-fit lines are derived ONLY from the public role title and category. It omits auth requirements, rate limits, and latency characteristics, keeping it out of 5 territory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core action, then input guidance, then behavior and caveat. Every sentence carries distinct information with no repetition of the title or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description does cover the return shape (candidates with why-fit lines) plus the limitation on those lines. It lacks error/failure behavior and pagination or result-truncation details for a 1-25 result tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds real meaning beyond the schema's terse 'Role brief or must-haves' by specifying a single-line brief format and an important constraint ('no client names'), which the schema does not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb+resource transformation ('Turn a role brief into a ranked shortlist') that an agent can distinguish from siblings like search_top_candidates or list_categories. The example brief makes the input shape unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent: 'Use this first for sourcing requests,' which positions it ahead of sibling search/list tools, and adds the recruiter-verification caveat. No named exclusions or explicit when-not-to-use conditions, so it falls short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_top_candidatesSearch Top CandidatesA
Search Activate Talent's pre-vetted Top Candidates by role, skill, or tool (e.g. 'media buyer', 'Klaviyo', 'shopify developer'). Returns up to 25 results with public fields only: first name + last initial, role title, category, profile URL. Use category (a slug from list_categories) to narrow results. Report only returned candidates; never invent any.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search words: role, skill, or tool | |
| category | No | Optional category slug filter, e.g. media-buyers | |
| maxResults | No | 1–25, default 25 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the load and does meaningful work: it discloses a hard result cap (up to 25), states that only public fields are exposed (a data-privacy constraint), and enumerates the returned fields. It stops short of permissions/rate-limit/empty-result behavior, but the safety-relevant disclosure is unusually good for an annotation-free tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core verb and resource, then filtering guidance, then the anti-hallucination rule. No redundant restatement of the name or schema, and each sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully enumerates the return fields (name + last initial, role title, category, profile URL) and the 25-item ceiling. It is close to complete; only ranking/relevance ordering and empty-result handling are left unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, so the baseline is 3, but the description adds real meaning beyond the schema: example query terms, and the constraint that `category` must be a slug sourced from the sibling list_categories rather than an arbitrary string. That cross-tool dependency is not captured in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Search) and a precisely scoped resource (Activate Talent's pre-vetted Top Candidates) with the queryable dimensions (role, skill, tool). It is clearly distinguishable from siblings like get_top_candidate_profile_url and list_categories, which the description even references for filtering.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains how to narrow results by pointing at the `category` slug from list_categories, and adds a behavioral rule ('Report only returned candidates; never invent any'). It does not, however, state when to prefer this over siblings such as match_role or get_candidate_link, so routing between search-like tools remains implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
v1.0.0- First observed
draft_candidate_pitch - First observed
get_candidate_link - First observed
get_top_candidate_profile_url - First observed
list_categories - First observed
match_role - First observed
search_top_candidates
TDQS
Scored across 6 tools
get_top_candidate_profile_url is explicitly a deprecated alias of get_candidate_link, giving two tools nearly identical purposes. search_top_candidates and match_role also overlap, both returning candidate shortlists, though match_role is clearly positioned as the higher-level sourcing entry point.
All six names follow a consistent snake_case verb_noun pattern (get_, list_, search_, match_, draft_). Verb choices map predictably to the action performed, with no mixed conventions.
Six tools is well-scoped for a candidate-sourcing workflow: discover categories, search/match candidates, build profile links, and draft a pitch. Each tool has a plausible role, aside from one deprecated alias.
The surface covers the core sourcing lifecycle: category discovery, search, ranked matching, link generation, and pitch drafting. The absence of a candidate-detail fetch appears deliberate (fetching triggers an AI resume read), so it is a minor, documented gap rather than a dead end.
Maintenance
Related MCP Connectors
Query professional profiles, search candidates, and get AI-powered summaries and job fit analysis.
Talent discovery for AI. Search and read agent-readable candidate profiles; cite by URL.
Paste a role; get candidates with evidence per requirement and outreach drafts you approve.
Recruiting tools for candidate sourcing, enrichment, ATS workflows, campaigns, and outreach.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceTurns a recruitment database into an AI-queryable pipeline, enabling natural language queries to search contractors, build shortlists, draft outreach, and book engagements.MIT

QueryQuarryofficial
AlicenseNot gradedqualityDmaintenanceConsent-based, double-blind talent marketplace. Recruiters' AI assistants search an anonymous corpus of opted-in candidates in natural language, evaluate match cards, and request contact — identity is revealed only when the candidate chooses to respond. Hosted remote server (streamable HTTP + OAuth) at queryquarry.com/api/mcp.MIT- FlicenseNot gradedqualityBmaintenanceProvides MCP tools for job search, inbound recruiter activity triage, conversation inbox access, and guarded profile updates.-
- AlicenseNot gradedqualityBmaintenanceEnables users to find companies hiring by role and geography, qualify them, and monitor them for hiring changes.MIT