Uses OpenAI's GPT-4o-mini model to analyze resumes against job descriptions, identifying gaps, missing keywords, and providing structured recommendations for resume optimization
Resume Gap Analyzer MCP Server
An MCP (Model Context Protocol) server that analyzes resumes against job descriptions to identify gaps, missing keywords, and improvement opportunities using OpenAI's GPT-4o-mini.
https://www.youtube.com/watch?v=JnteMtI5nCs
Features
Gap Analysis: Identifies missing skills, experience, certifications, and keywords
Prioritized Recommendations: Actionable feedback organized by impact
ATS Optimization: Ensures resume compatibility with Applicant Tracking Systems
Strength Mapping: Highlights existing qualifications to emphasize
Sample Resume Resources: Test with pre-loaded sample resumes
Setup
Prerequisites
Python 3.10+
OpenAI API key (Get one here)
Installation
Clone the repository:
Create and activate a virtual environment:
Install dependencies:
Set your OpenAI API key:
Configuration for Claude Desktop
To use this MCP server with Claude Desktop, add it to your config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
Important: Replace /absolute/path/to/gapsinmyresume
with your actual path. Use the .venv/bin/python
from the virtual environment you created.
After updating the config, restart Claude Desktop for changes to take effect.
Usage
Option 1: Via Claude Desktop (Recommended)
Once configured, simply ask Claude in the desktop app:
Claude will automatically use the analyze_resume_gaps
tool.
Option 2: Direct CLI Testing
Run the included test script to test without Claude Desktop:
This will analyze the first resume in sample-resumes/
against a sample job description.
Option 3: MCP Server Directly
Start the MCP server (for debugging or integration):
The server runs in stdio mode and accepts MCP protocol messages.
Tool Parameters
analyze_resume_gaps
resume_path
(string, required): Absolute path to resume file (.docx)job_description
(string, required): Full text of the job posting
Example in Claude Desktop:
Output Format
The tool returns structured JSON with:
Development
File Structure
How It Works
Document Parsing: Extracts text from DOCX files using python-docx
LLM Analysis: Sends resume and job description to OpenAI gpt-4o-mini
Structured Output: Uses Pydantic models with OpenAI's structured output API
MCP Integration: FastMCP exposes analysis as a tool callable from Claude Desktop
Tips for Best Results
Provide complete job descriptions (not just titles)
Ensure resume files are properly formatted .docx files
Include both required and preferred qualifications in job description
Use the quick wins section for immediate, high-impact changes
Place test resumes in
sample-resumes/
to use the resource feature
Quick Start Example
After setup, try this:
Testing with Sample Resumes
Add
.docx
files to thesample-resumes/
directorySample job descriptions are in
sample-job-descriptions/
Run
python test_cli.py
for quick testingIn Claude Desktop, reference your resume files by absolute path
License
MIT
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Analyzes resumes against job descriptions to identify missing skills, keywords, and improvement opportunities using AI. Provides structured feedback including gap analysis, ATS optimization suggestions, and actionable recommendations to improve job application success.