MCP Recruiting Server

RESTume MCP is a production recruiting surface for Claude Desktop, ChatGPT, Cursor, and other MCP clients on paid recruiter plans: 15 tools, 2 resources, deterministic profile intelligence + candidate scoring, and auditable tool activity over Streamable HTTP at https://mcp.restume.com/mcp.

Quick Start (30 seconds)

Paste this into Claude Desktop, ChatGPT, or Cursor MCP config.

{
  "mcpServers": {
    "restume": {
      "url": "https://mcp.restume.com/mcp"
    }
  }
}

What MCP is used for in RESTume

The Model Context Protocol (MCP) lets AI assistants call RESTume as native tools. In RESTume, this is no longer just profile lookup. The MCP server now supports end-to-end recruiting workflows such as candidate search, ranking, shortlisting, multi-candidate comparison, and skill-gap analysis.

Results are structured and deterministic so the LLM can reason on top of reliable data. Tool calls are auditable, profile exposures are tracked, and paginated endpoints keep large result sets stable for agent loops.

Discovery + Profiles

List developers, run broad or skill-specific search, fetch full profiles, and compare candidates quickly.

Recruiting Intelligence

Search candidates by constraints, rank against job text, explain fit, build shortlists, compare many candidates, and identify skill gaps.

Setup

Point your MCP client to the server URL. No local server process is required.

ChatGPT, Claude Desktop / Cursor / Windsurf

Direct URL connection:

{
  "mcpServers": {
    "restume": {
      "url": "https://mcp.restume.com/mcp"
    }
  }
}

Stdio-only clients

Use mcp-remote bridge:

{
  "mcpServers": {
    "restume": {
      "command": "npx",
      "args": ["mcp-remote", "https://mcp.restume.com/mcp"]
    }
  }
}

Security and discovery

The endpoint uses Streamable HTTP with stateless transport. Optional access controls include static bearer token or JWT bearer validation. Optional origin checks and per-minute rate limiting are configurable in MCP runtime settings.

OAuth metadata endpoints: /.well-known/oauth-protected-resource/mcp and /.well-known/oauth-authorization-server/mcp.

Response Contract

All tools return a stable envelope with machine-readable metadata.

Success envelope

{
  "ok": true,
  "data": {},
  "error": null,
  "meta": {
    "tool": "tool_name",
    "version": "2026-02-18",
    "generated_at": "2026-02-18T12:34:56Z"
  }
}

Error envelope

{
  "ok": false,
  "data": null,
  "error": {
    "code": "invalid_input|not_found|internal_error",
    "message": "human readable message",
    "details": {}
  },
  "meta": {
    "tool": "tool_name",
    "version": "2026-02-18"
  }
}

Pagination metadata

Paginated tools accept limit and cursor, and return continuation metadata.

"meta": {
  "tool": "search_candidates",
  "total": 145,
  "limit": 25,
  "cursor": null,
  "next_cursor": "eyJvZmZzZXQiOjI1fQ=="
}

Tools

15

Core Discovery and Profile Tools

These tools expose platform entities and profile structure for downstream recruiting decisions.

list_developers(limit?, cursor?)

Enumerate developers with summary fields and section counts.

search_developers(query, limit?, cursor?)

Broad text search across profile, skills, experience, education, and projects.

get_user_profile(username)

Return full structured profile, including skills, experience, education, and projects.

search_developers_by_skill(skill, limit?, cursor?)

Skill-specific candidate discovery with semantic + typo-tolerant matching and proficiency-aware results.

compare_developers(username1, username2)

Two-candidate side-by-side comparison for fast screening decisions.

Profile Intelligence Tools

These tools help agents verify profile freshness, extract deterministic facts, and answer profile questions with explicit evidence.

get_profile_index_status(username)

Report section-level embedding freshness, missing document IDs, and index coverage health.

get_profile_facts(username, facets?)

Return deterministic facts (skills, titles, companies, current role) for reliable agent grounding.

search_profile_evidence(username, query, facets?, top_k?)

Facet-aware lexical evidence search with matched terms and scored snippets.

answer_profile_question(username, question, strict_mode?)

Deterministic profile Q&A with explicit confidence and evidence payloads.

Recruiting Workflow Tools

These tools support sourcing, ranking, explanation, and shortlist generation from job context.

search_candidates(skills?, location?, companies?, keywords?, min_years_experience?, sort_by?, limit?, cursor?)

Constraint-based candidate search designed for recruiter filtering workflows.

rank_candidates_for_job(job_description, required_skills?, preferred_skills?, limit?, cursor?)

Deterministic ranking with score components so results are explainable and repeatable.

explain_candidate_fit(username, job_description, required_skills?, preferred_skills?)

Detailed fit narrative for a single candidate: strengths, gaps, and recommendation signal.

shortlist_candidates(job_description, required_skills?, preferred_skills?, min_score?, limit?, cursor?)

Generate shortlist-ready outputs by thresholding candidate scores.

compare_candidates(usernames, criteria?)

Compare multiple candidates at once with overlap and differentiation signals. The optional criteria input controls which metric groups are included.

find_skill_gaps(username, target_role_or_job, max_suggestions?)

Identify missing skills and practical upskilling targets for a candidate and role.

Resources

2

restume://users/{username}/profile

Plain-text profile summary for lightweight agent context injection.

restume://users/{username}/resume

Full resume in Markdown for rich context loading without extra tool orchestration.

Example Recruiting Workflow

A practical sequence an AI recruiting assistant can run:

1. Source candidates

Run search_candidates(...) with skill/location/company constraints.

2. Rank for role

Call rank_candidates_for_job(job_description, ...) for deterministic scoring.

3. Build shortlist

Use shortlist_candidates(..., min_score) to get interview-ready candidates.

4. Explain top profiles

Call explain_candidate_fit(username, ...) to brief hiring managers.

5. Final comparison + growth plan

Use compare_candidates(usernames) and find_skill_gaps(username, target_role_or_job).

Recruiter Prompt Examples

Prompt

Find backend engineers with 5+ years in Python and FastAPI in New York.

Expected MCP flow

`search_candidates` -> `rank_candidates_for_job` -> `shortlist_candidates`

Prompt

Compare `alex` and `sam` for this Staff Platform Engineer role and explain tradeoffs.

Expected MCP flow

`compare_developers` -> `explain_candidate_fit` for each candidate

Prompt

Shortlist candidates scoring above 0.75 and identify the top 3 missing skills for each.

Expected MCP flow

`shortlist_candidates` -> `find_skill_gaps` per shortlisted candidate

MCP vs REST API

FeatureREST APIMCP Recruiting Server
TransportHTTP/JSONStreamable HTTP
Auth modelJWT/API key endpointsOptional bearer/JWT auth at MCP edge
Primary useApp integrations and CRUDAI-native recruiting orchestration
Tool surfaceEndpoint-by-endpoint15 tools + 2 resources
Result consistencyStandard JSON responsesUnified envelope + pagination metadata
AuditabilityAPI analyticsTool invocation logging + MCP profile view tracking

Troubleshooting

HTTP 404 from MCP client

Confirm client URL is exactly https://mcp.restume.com/mcp and verify protected-resource metadata is reachable.

HTTP 401

Only expected when MCP bearer auth is enabled by deployment settings. Check token format and JWT claims if JWT auth is configured.

HTTP 429

Request rate exceeded the configured MCP per-minute limit. Add retry with backoff and lower reconnect churn.

Tools missing in client

Restart the MCP client after config changes and validate JSON syntax. Some clients cache tool schemas per session.

See also: Developer Portal · REST API docs · OpenAPI