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:
- A paid subscription with an API key from your Account Settings
- 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.
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 nameOptimizedResumeAsJson— The structured resume dataStatusCode,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 resumeSkillsAlreadyInResume— Skills already presentJobMatchAnalysis.MatchingScore— Score from 0 to 100JobMatchAnalysis.StrongMatches,PartialMatches,GapsJobMatchAnalysis.ResultsSummary— Brief summary of resultsJobMatchAnalysis.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:
-
Match first — Use
match_resumeto analyze the resume against the job description and identify skill gaps. -
Optimize — Use
optimize_resumewith the identified gaps passed asskillsToAddandautoOptimizeset to true. - 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.