AI简历编辑器

一个基于Python MCP协议的AI简历编辑服务,能够根据职位描述自动优化简历并生成PDF格式的专业文档。

  • by BryanHuynh
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 BryanHuynh/Resume-Builder-AI

使用说明

项目概述

AI简历编辑器——一个Python MCP(模型上下文协议)服务器,让AI系统根据招聘信息定制简历,并通过LaTeX生成专业PDF。简历数据以JSON格式存储,使用Pydantic模型进行验证,并通过PyLaTeX呈现。

MCP服务器URL:https://resume-builder-ai-production-b0ae.up.railway.app/mcp 此mcp服务器在注册mcp服务器时使用Auth0对用户进行身份验证。数据作为postgres实例存储在Railway上的MCP Server实例旁边。

自托管版本可以在release/Self_hosted下找到

要在windows上下载PyLaTeX,请访问:https://ctan.mirror.rafal.ca/systems/win32/miktex/setup/

命令

# Install dependencies
uv sync

# Run MCP server (stdio transport)
python main.py

PDF生成需要系统级LaTeX安装(例如TeX Live、MiKTeX)。

建筑

数据流: 用户JSON→ 通过MCP工具进行AI定制→ 定制JSON→ DocBuilder→ LaTeX→ PDF

core/ --MCP集成层

  • tools.py --MCP工具:保存/加载简历数据,生成PDF(save_resume_data, save_catered_resume_data, get_catered_resume_data, generate_pdf)
  • resources.py --将简历数据作为MCP资源公开(doc://resume/{name})
  • prompt.py --结构化提示引导人工智能根据招聘信息定制简历

doc_utils/ --文档生成和数据模型

  • doc_model.py --定义简历模式的Pydantic模型(DocModel, UserInfo, SectionContent, SectionContentDescriptions, AdditionalsListedSectionContent)
  • doc_builder.py --编排LaTeX文档构造; build() 组装完整文档, export() 将PDF+TeX写入 output/
  • doc_config.py --LaTeX包/字体/间距配置(EB Garamond衬线,窄边距)
  • doc_tools.py --定制LaTeX组件(SectionTitle, SectionDivider)

documents/ --恢复数据存储

  • user_data/ --基本简历配置文件(完整JSON)
  • catered_resume_data/{Name}/ --针对特定工作的定制版本

output/ --生成的PDF和TeX文件

关键模式

  • SectionContentDescriptions 是递归的--支持任意深度的嵌套项目符号点
  • 结束日期在中是可选的 SectionContent (支持正在进行/当前的角色)
  • generate_pdf() 该工具返回通过base64编码的PDF EmbeddedResource
  • 所有文件路径都使用 pathlib.Path
  • 用途 uv 用于使用锁文件进行依赖关系管理

Claude桌面配置

{
  "mcpServers": {
    "ai_resume_editor": {
      "command": "uv",
      "args": [
        "--directory",
        "<PATH\\TO\\PROJECT\\DIR>",
        "run",
        "main.py"
      ]
    }
  }
}

Claude桌面使用情况

理想情况下,Claude应该使用您的工作区来处理用户数据的检索和生成,从而了解我们为什么将目录更改为项目文件夹。

  1. 首先给克劳德你的简历,让他为你的名字生成一个新的用户条目
  2. 仔细检查documents/user_data/{your_name}.json文件中的信息是否正确。如果你愿意,你也可以添加新条目
  3. 回到Claude,将提示添加到“创建新简历”。
  4. 给它一个不带后缀的user_data文件(例如:documents/user_data/Bryan_Hunh.json->Bryan_Huynh)
  5. 填写公司名称和职位
  6. 将职位发布复制并粘贴到“职位”字段中,然后按enter键
  7. 如果一切顺利,你精心策划的简历应该出现在输出文件夹中