Resume Optimizer Pro
MCP Server

Connect AI agents directly to resume optimization, job matching, and parsing via the Model Context Protocol.

MCP Server Documentation

What is MCP?

The Model Context Protocol (MCP) is an open standard that lets AI agents discover and use tools natively. Instead of writing API integration code, you simply point your MCP-compatible client at our server and the AI automatically discovers all available tools, their parameters, and how to call them.

Our MCP server exposes the same capabilities as the REST API: resume optimization, job matching, and resume parsing. The difference is that MCP clients like Claude Code, Claude Desktop, Cursor, Windsurf, and others can connect with zero integration code.

Supported Clients

Client MCP Support
ChatGPT Desktop Native
OpenAI Agents SDK Native
Claude Code Native
Claude Desktop Native
Cursor Native
Windsurf Native
VS Code (Copilot) Native
Custom agents Via MCP SDK

Quick Start

To connect your MCP client, you need two things:

  1. A paid subscription with an API key from your Account Settings
  2. An MCP-compatible client (see supported clients above)
Server URL
https://resumeoptimizerpro.com/api/mcp
Transport

Streamable HTTP (the standard MCP HTTP transport)

Client Setup

Claude Code

Add the server to your MCP configuration:

claude mcp add resume-optimizer --transport http https://resumeoptimizerpro.com/api/mcp
Claude Desktop / Cursor / Windsurf

Add this to your MCP settings file:

{
  "mcpServers": {
    "resume-optimizer": {
      "type": "streamable-http",
      "url": "https://resumeoptimizerpro.com/api/mcp"
    }
  }
}
Custom Agents (MCP SDK)

Connect programmatically using any MCP client SDK:

// C# example using ModelContextProtocol NuGet package
var client = await McpClientFactory.CreateAsync(
    new StreamableHttpClientTransport("https://resumeoptimizerpro.com/api/mcp"));

var tools = await client.ListToolsAsync();
var result = await client.CallToolAsync("parse_resume", new Dictionary<string, object>
{
    ["apiKey"] = "your-api-key",
    ["resumeText"] = "John Doe, Software Engineer..."
});

Authentication

Every tool call requires your API key as the apiKey parameter. This is the same API key used for the REST API. You can find or generate your API key in your Account Settings.

Keep your API key secure. Do not share your API key publicly or include it in client-side code. If you believe your key has been compromised, regenerate it immediately from your Account Settings.

Available Tools

The MCP server exposes three tools. Each tool accepts the same parameters as the corresponding REST API endpoint.

Tool REST Equivalent Description
optimize_resume POST /v1/optimize Optimize a resume for ATS or a specific job posting
match_resume POST /v1/match Analyze how well a resume matches a job description
parse_resume POST /v1/parse Parse a resume into structured JSON data

optimize_resume

Takes a resume and returns a fully optimized, ATS-compatible version. Optionally targets a specific job posting when autoOptimize is enabled.

Parameters
apiKey string required
Your API key for authentication.
resumeText string conditional
The full text of the resume to optimize. Either resumeText or resumeAsBase64String is required.
resumeAsBase64String string conditional
The resume file as a base64 encoded string (.docx, .txt, or .pdf). Either resumeText or resumeAsBase64String is required.
skillsToAdd string optional
Additional skills to include, as a comma-separated list.
includeProfessionalSummary bool optional
Include a professional summary (default: true).
professionalSummaryStyle string optional
Style for the professional summary. Values: Paragraph (default), BulletList.
includeObjective bool optional
Include an objective (default: false).
includeTechnicalProfile bool optional
Include a technical profile for computer-related skills (default: false).
includeCoverLetter bool optional
Include a targeted cover letter (default: false).
addSkillsToWorkHistory bool optional
Integrate skills into work history to improve matching score (default: true).
addMetricsToAccomplishments bool optional
Add sample metrics to accomplishments (default: false).
hidePersonalInfo bool optional
Redact the candidate's personal information (default: false).
idealJobTitle string optional
Target job title to integrate into the resume header and cover letter.
jobTitle string optional
Job title from the posting being optimized for.
companyName string optional
Company name for the job posting. Included in the cover letter if selected.
writingStyle string optional
Writing style for the resume. Values: Professional (default), Executive, Technical, Creative, Enthusiastic, Warm, Unmodified.
streamlineResume bool optional
Make work history more concise. Recommended for longer resumes (default: false).
categorizeSkills bool optional
Organize skills into Professional, Technical, and Soft categories (default: true).
numberOfSkillsToAddToWorkHistory int optional
Number of skills to add as bullet points into recent work history positions (default: 3).
highlightAccomplishments bool optional
Bold actionable words within accomplishment bullet points (default: false).
autoOptimize bool optional
Automatically optimize the resume based on jobText. Results should be reviewed for accuracy (default: false).
jobText string optional
Text of the job posting. Required when autoOptimize is true.
professionalTraits string optional
Professional personality traits, comma-separated (up to 4). Values: Creative, Analytical, Collaborative, Goal-focused, Reliable, Results-driven, Innovative, Communicative, Autonomous, Proactive, Pragmatic.
motivators string optional
Motivators that drive the candidate's work performance.
savedTemplateName string optional
Name of a saved custom template to apply. Manage templates at the Template Manager.
addRoleSummaries bool optional
Add a concise summary for each work history role (default: false).
includeAdditionalSections bool optional
Include non-standard sections from the original resume (default: false).
language string optional
Language for the output (e.g., "English", "Spanish").
Response

Returns the same response as the REST API optimize endpoint, including:

  • OptimizedResumeAsBase64String — The optimized resume as a .docx file (base64 encoded)
  • CoverLetterAsBase64String — The cover letter as a .docx file (if requested)
  • CandidateName — The candidate's name
  • OptimizedResumeAsJson — The structured resume data
  • StatusCode, Message, CreditsRemaining

match_resume

Evaluates a resume's alignment with a job posting and identifies strong matches, partial matches, gaps, required skills, and provides a matching score.

Parameters
apiKey string required
Your API key for authentication.
resumeText string conditional
The full text of the resume. Either resumeText or resumeAsBase64String is required.
resumeAsBase64String string conditional
The resume file as a base64 encoded string. Either resumeText or resumeAsBase64String is required.
jobText string conditional
The text of the job posting to match against. Either jobText or idealJobTitle is required.
idealJobTitle string conditional
Target job title to get required skills for (alternative to providing full job text).
generateInterviewQuestions bool optional
Generate sample interview questions and answers (default: false).
language string optional
Language for the output.
Response

Returns the same response as the REST API match endpoint, including:

  • AdditionalSkillsNeededForJob — Skills missing from the resume
  • SkillsAlreadyInResume — Skills already present
  • JobMatchAnalysis.MatchingScore — Score from 0 to 100
  • JobMatchAnalysis.StrongMatches, PartialMatches, Gaps
  • JobMatchAnalysis.ResultsSummary — Brief summary of results
  • JobMatchAnalysis.InterviewQuestions — Sample Q&A (if requested)
  • StatusCode, Message, CreditsRemaining

parse_resume

Takes a resume and returns its unmodified parsed data as structured JSON, including a resume analysis that evaluates adherence to best practices.

Parameters
apiKey string required
Your API key for authentication.
resumeText string conditional
The full text of the resume to parse. Either resumeText or resumeAsBase64String is required.
resumeAsBase64String string conditional
The resume file as a base64 encoded string. Either resumeText or resumeAsBase64String is required.
language string optional
Language of the resume.
Response

Returns the same response as the REST API parse endpoint, including:

  • ParsedResumeAsJson — Structured resume data (contact info, work history, education, skills, certifications)
  • StatusCode, Message, CreditsRemaining

Example Workflow

Here is a typical workflow for optimizing a resume for a specific job using an AI agent:

  1. Match first — Use match_resume to analyze the resume against the job description and identify skill gaps.
  2. Optimize — Use optimize_resume with the identified gaps passed as skillsToAdd and autoOptimize set to true.
  3. Review — The AI agent can present the results to the user for review, highlighting changes made and the new matching score.

With MCP, the AI agent handles all of this automatically. Simply ask: "Optimize my resume for this job posting" and the agent will execute the right sequence of tool calls.

Credits

Each MCP tool call consumes the same credits as the equivalent REST API call. Credit usage is identical regardless of whether you use MCP or the REST API. Your remaining credits are included in every response.

Rate Limits

The same rate limits apply to MCP and REST API requests. If your application requires higher limits, please contact us.

Need Help?

If you have questions or need assistance with the MCP integration, reach out to support@resumeoptimizerpro.com or visit the REST API documentation for detailed field definitions and response schemas.