resume-editor-mcp

resume-editor-mcp

MCP server for AI-native resume optimization, providing tools to load JD, analyze match, rewrite sections, and assemble customized resumes.

Category
Visit Server

README

基于 MCP 规范的 AI Native 简历自适应优化系统

面向「一岗一简历」与高频海投要求简历快速复用的现实矛盾,独立构思并设计实现的 AI Agent 工程项目。

已在 Claude + DeepSeek + VSCode(Cline)集成环境下完整测试通过。


项目背景

求职时存在一个核心矛盾:每个岗位的 JD 侧重不同,高度定制化的简历才能提高命中率,但海投场景下手动逐条调整耗时且难以复用。

本项目通过 MCP 协议将简历改写流程工具化,构建可跨 JD 场景稳定复用的 AI Agent 系统,并配套工业级自动化评测脚手架(Promptfoo + LangSmith),确保大模型输出质量可控、可审计、可回归。


系统架构

用户输入 JD
    │
    ▼
┌─────────────────────────────────────────┐
│           网页前端(UI 入口)              │
└──────────────────┬──────────────────────┘
                   │
                   ▼
┌─────────────────────────────────────────┐
│         MCP Server(server.py)          │
│                                         │
│  Resources                              │
│  ├── resume://full        完整经历库     │
│  └── resume://current_jd  当前目标JD    │
│                                         │
│  Tools                                  │
│  ├── load_jd              加载并持久化JD │
│  ├── analyze_jd_match     匹配度分析     │
│  ├── rewrite_section      分段改写       │
│  ├── assemble_resume      组装完整简历   │
│  └── save_resume_draft    保存草稿       │
└──────────────────┬──────────────────────┘
                   │
        ┌──────────┴──────────┐
        ▼                     ▼
   Claude API            DeepSeek API
  (工具调用决策)        (内容生成)
        │                     │
        └──────────┬──────────┘
                   ▼
┌─────────────────────────────────────────┐
│         LLM Eval Harness                │
│  Promptfoo 5×3 矩阵评测                 │
│  LangSmith 全链路 Trace                 │
└─────────────────────────────────────────┘

核心功能

1. 标准化上下文接入(MCP Resource)

通过 resume://fullresume://current_jd 两个 Resource,将简历素材库与目标 JD 自动挂载到模型上下文,无需每次手动粘贴,实现跨会话的上下文稳定注入。

2. 模块化改写工作流(Skill)

将非结构化的简历改写经验蒸馏为四步标准流程:

load_jd → analyze_jd_match → rewrite_section → assemble_resume

每段经历按核心匹配 / 次要匹配 / 补充匹配三类分级改写,遵循「JD 需求点 → 我做了什么 → 结果/价值」结构公式,严格不虚构内容。

3. Claude + DeepSeek 多模型协作

模型 职责
Claude MCP 工具调用决策、质量把控
DeepSeek 中文内容生成(降低成本)

通过 Prompt Engineering 强约束格式输出,拦截模型幻觉,消除模型在改写结果中夹带前言与客套话的问题;将非结构化改写经验蒸馏为可调用 Skill,具备从需求抽象到工程交付的完整 AI Native 研发视野。

4. LLM Eval Harness(评测)

Promptfoo 5×3 正交矩阵评测数据集

针对大模型面对不同行业和不同简历背景梯度下的适配问题,构建覆盖:

  • 5 类行业岗位:理工 / 工程 / 农业 / 医疗 / 法律
  • 3 种简历梯度:优秀 / 中等 / 劣势背景

15 个正交测试场景

断言从简单到复合的演进

初版使用 icontains 简单关键词断言,在 promptfoo view 评测看板中发现假阴性问题——模型输出整体质量合格,但因某个特定词缺失即判 FAIL。

根因分析:硬字符串匹配思维在面对生成式 AI 时容易失效——生成式模型的输出本身就存在合理的语义多样性,用固定词强卡必然误杀。

因此将断言重构为基于多同义词模糊正则匹配与 JavaScript 的函数式断言,通过逻辑组合(|| / &&)和关键语义多路覆盖降低误判率:

// 重构后:兼顾格式约束与语义容错的复合断言
function({ output }) {
  const lines = output.split('\n').filter(l => l.trim());
  // 多路语义覆盖:出现任意同义词均视为通过
  const hasContent = /育种|选育|品种/.test(output) ||
                     /实验|试验|测试/.test(output);
  // 格式约束:行数不超过上限
  return lines.length <= 6 && hasContent;
}

LangSmith 全链路白盒 Trace

通过 wrap_openai 为 DeepSeek SDK 挂载自动追踪探针,在云端看板实现:

  • 双层嵌套运行树:Tool 级调用(父层)+ LLM 响应(子层)
  • **精准追踪 Prompt 拼接、Token 消耗、响应延迟、模型成本

工程目录

agent-resume/
├── server.py                          # MCP Server 核心(Resources + Tools)
├── requirements.txt                   # Python 依赖
├── .gitignore
├── agent-sessions.code-workspace      # VSCode 工作区配置
├── .claude/
│   └── agents/
│       └── resume_editor.agent.md    # Agent 系统级行为规范与四步流程
├── data/
│   ├── resume.md                     # 完整经历素材库(自行填写)
│   └── current_jd.txt                # 当前目标 JD(load_jd 工具自动写入)
├── output/
│   └── *.md                          # 各岗位定制化简历草稿
└── tests/
    ├── promptfoo/                     # 5×3 矩阵评测配置 + JS 函数式断言
    └── langsmith/                     # LangSmith 白盒追踪驱动脚本

快速开始

环境准备

# 克隆项目
git clone https://github.com/your-username/resume-adjuster.git
cd resume-adjuster

# 创建虚拟环境
python -m venv venv
source venv/bin/activate        # Windows: venv\Scripts\activate

# 安装 Python 依赖
pip install mcp openai langsmith

# 安装 Promptfoo
npm install -g promptfoo

配置 API Keys

请在工程中填入自己对应的Keys。

DeepSeek官方API接口链接:https://api-docs.deepseek.com/zh-cn/

# .env
ANTHROPIC_API_KEY=your_anthropic_key     # Claude
DEEPSEEK_API_KEY=your_deepseek_key       # DeepSeek
LANGSMITH_API_KEY=your_langsmith_key     # LangSmith
LANGSMITH_PROJECT=resume_adjuster
LANGSMITH_TRACING=true
LANGSMITH_ENDPOINT=https://api.smith.langchain.com

填写简历素材库

data/resume.md 中填入你的完整经历,素材越结构化,改写质量越高。 resume.md文件中已给出示例。


### 在 VSCode + Cline 中启动

1. 启动 MCP Server:

```bash
python server.py
  1. 在 Cline 的 MCP 配置中注册(.vscode/cline_mcp_config.json):
{
  "mcpServers": {
    "resume-adjuster": {
      "command": "python",
      "args": ["/你的绝对路径/server.py"]
    }
  }
}
  1. 重载 Cline,在对话中粘贴 JD,Agent 自动走完四步流程。

运行评测

# Promptfoo 5×3 矩阵评测(--no-cache 避免旧缓存污染结果)
npx promptfoo eval -c tests/promptfooconfig.yaml --no-cache

# 查看评测看板
npx promptfoo view

# LangSmith 白盒追踪
python tests/langsmith/run_langsmith_eval.py

技术栈

类别 技术
AI 协议 MCP(Model Context Protocol)
模型 Claude(Anthropic)/ DeepSeek
客户端 Cline + VSCode
评测框架 Promptfoo
链路追踪 LangSmith
后端 Python / asyncio
文档生成 docx.js

📄 License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured