项目概述
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.pyPDF生成需要系统级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编码的PDFEmbeddedResource- 所有文件路径都使用
pathlib.Path - 用途
uv用于使用锁文件进行依赖关系管理
Claude桌面配置
{
"mcpServers": {
"ai_resume_editor": {
"command": "uv",
"args": [
"--directory",
"
",
"run",
"main.py"
]
}
}
}Claude桌面使用情况
理想情况下,Claude应该使用您的工作区来处理用户数据的检索和生成,从而了解我们为什么将目录更改为项目文件夹。
- 首先给克劳德你的简历,让他为你的名字生成一个新的用户条目
- 仔细检查documents/user_data/{your_name}.json文件中的信息是否正确。如果你愿意,你也可以添加新条目
- 回到Claude,将提示添加到“创建新简历”。
- 给它一个不带后缀的user_data文件(例如:documents/user_data/Bryan_Hunh.json->Bryan_Huynh)
- 填写公司名称和职位
- 将职位发布复制并粘贴到“职位”字段中,然后按enter键
- 如果一切顺利,你精心策划的简历应该出现在输出文件夹中
