关于 CV Forge
CV Forge 是一个 MCP 服务,可解析职位描述并生成与岗位匹配的 ATS 友好型简历、求职信和邮件模板。适合求职者快速针对不同职位准备申请材料。
主要功能
- 01解析职位要求、技能与联系人信息
- 02生成针对岗位定制的简历内容
- 03生成个性化求职信
- 04生成申请、跟进等类型的邮件模板
- 05支持 PDF、HTML、Markdown 和文本格式输出
- 06提供一键生成完整申请材料包的工具
适用场景
- 01根据招聘信息为不同岗位定制简历
- 02一次性生成简历、求职信和邮件草稿
- 03在 Claude Desktop 中直接保存 PDF 格式简历
MCP 相关
CV Forge 是一个 MCP 服务,通过 stdio 向 MCP 客户端提供解析职位、生成简历、求职信和邮件模板等工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
11收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| company | string | 是 | 公司名称 |
| jobTitle | string | 是 | 职位名称/岗位 |
| location | string | 否 | 工作地点 |
| salaryRange | string | 否 | 提供时填写的薪资范围 |
| requirements | array | 否 | 单独列出的具体要求 |
| jobDescription | string | 是 | 完整的职位描述文本 |
| preferredSkills | array | 否 | 单独列出的优先技能 |
详细介绍
CV Forge
根据任意职位要求,打造强大且对 ATS 友好的简历。
一款智能 MCP(Model Context Protocol)服务,可分析招聘信息并撰写与职位完美匹配的简历。
功能
- 解析职位要求:从招聘信息中提取关键技能、资质要求、电子邮箱地址和招聘经理姓名
- 生成量身定制的简历:根据用户资料和职位要求创建定制化简历内容
- 生成求职信:为特定职位申请生成个性化求职信
- 创建电子邮件模板:创建专业的电子邮件模板,并自动检测电子邮箱地址
- 完整的求职申请材料包:通过一条命令生成简历、求职信和电子邮件模板
- 默认生成 PDF:未指定格式时,自动生成专业的 PDF 文档
- 多种输出格式:生成 PDF(默认)、HTML、Markdown 和文本格式的文档
- 专业 PDF 生成:创建经过专业排版、可供发布的 PDF 文档
- 对 ATS 友好:通过恰当的关键词布局,针对申请人跟踪系统进行优化
- 智能提取联系人信息:自动从职位描述中提取电子邮箱地址和招聘经理姓名
Star 历史
安装
通过 npm 安装(推荐)
全局安装:
npm install -g cv-forge
或在项目中本地安装:
npm install cv-forge
从源代码安装
- 克隆此代码仓库
- 安装依赖:
npm install - 构建项目:
npm run build
用法
连接到 Claude Desktop
要在 Claude Desktop 中使用此 MCP 服务,需要将其添加到 Claude 配置文件中。
第 1 步:安装 cv-forge
npm install -g cv-forge
第 2 步:找到 Claude Desktop 配置文件
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
第 3 步:将 MCP 服务添加到配置文件
如果是全局安装,请将以下内容添加到 claude_desktop_config.json 文件中:
{
"mcpServers": {
"cv-forge": {
"command": "cv-forge"
}
}
}
如果是本地安装,请指定完整路径:
{
"mcpServers": {
"cv-forge": {
"command": "node",
"args": ["d:/TopSecret/cv-forge/build/index.js"],
"cwd": "d:/TopSecret/cv-forge"
}
}
}
第 4 步:(可选)添加环境配置
你可以使用环境变量自定义服务:
{
"mcpServers": {
"cv-forge": {
"command": "cv-forge",
"env": {
"DEFAULT_OUTPUT_PATH": "D:/CV",
"PDF_BASE_FONT_SIZE": "12px",
"PDF_LINE_HEIGHT": "1.4"
}
}
}
}
第 5 步:重启 Claude Desktop 添加配置后,重启 Claude Desktop 应用。
第 6 步:验证连接 在 Claude Desktop 中,你应该能看到可用的 CV Forge 工具。你可以让 Claude 使用以下工具:
- “帮我解析这则招聘信息”
- “根据我的资料和这份职位信息生成一份量身定制的简历”
- “将我的简历保存为 PDF 文件”
独立运行 MCP 服务(用于测试)
你也可以直接运行服务进行测试:
npm start
服务通过标准输入/输出(stdio)运行,并使用 Model Context Protocol 进行通信。
可用工具
1. parse_job_requirements
解析职位要求,并提取用于定制简历的关键信息。
参数:
jobTitle(字符串,必填):职位名称company(字符串,必填):公司名称jobDescription(字符串,必填):完整的职位描述文本requirements(数组,可选):单独列出的具体要求preferredSkills(数组,可选):单独列出的优先技能location(字符串,可选):工作地点salaryRange(字符串,可选):职位提供的薪资范围
2. generate_cv_data
根据用户资料和职位要求生成量身定制的简历内容。
参数:
userProfile(对象,必填):完整的用户资料信息jobRequirements(对象,必填):职位要求对象
用户资料结构:
{
"personalInfo": {
"fullName": "John Doe",
"email": "[email protected]",
"phone": "+1-555-0123",
"location": "City, State",
"linkedIn": "linkedin.com/in/johndoe",
"github": "github.com/johndoe",
"website": "johndoe.com"
},
"summary": "Professional summary text...",
"experience": [
{
"jobTitle": "Software Engineer",
"company": "Tech Corp",
"location": "City, State",
"startDate": "2020-01",
"endDate": "2023-12",
"description": "Job description...",
"achievements": [
"Achievement 1",
"Achievement 2"
]
}
],
"education": [
{
"degree": "Bachelor of Science in Computer Science",
"institution": "University Name",
"location": "City, State",
"graduationYear": "2020",
"gpa": "3.8",
"honors": ["Magna Cum Laude"]
}
],
"skills": {
"technical": ["JavaScript", "Python", "React"],
"soft": ["Leadership", "Communication"],
"languages": ["English", "Spanish"],
"certifications": ["AWS Certified"]
},
"projects": [
{
"name": "Project Name",
"description": "Project description...",
"technologies": ["React", "Node.js"],
"url": "github.com/johndoe/project"
}
]
}
3. save_cv_text
将 CV 内容保存为格式化的文本文件。
参数:
cvData(object,必填):定制后的 CV 数据对象(来自 generate_cv_data)outputPath(string,必填):保存 CV 的目录路径fileName(string,可选):自定义文件名(不含扩展名),默认为 "generated_cv"
4. generate_cv(推荐 - 主要的 CV 生成工具)
生成定制后的 CV,并保存到指定位置或默认文件夹。如果未指定格式,默认使用 PDF 格式。
参数:
userProfile(object,必填):完整的用户资料信息jobRequirements(object,必填):职位要求对象outputPath(string,可选):保存 CV 的目录路径(未提供时使用 DEFAULT_OUTPUT_PATH)fileName(string,可选):自定义文件名(不含扩展名),默认为 "professional_cv"format(string,可选):输出格式 - "pdf"(默认)、"html" 或 "markdown"pageSize(string,可选):PDF 页面尺寸(例如,'A4'、'Letter'、'Legal')- 未提供时使用 PDF_PAGE_SIZE 环境变量margins(object,可选):PDF 页边距,包含 top、right、bottom、left 属性(例如,'10mm'、'0.8in')- 未提供时使用 PDF_MARGIN_* 环境变量
5. generate_and_save_cv_pdf(旧版 - 请改用 generate_cv)
生成定制后的 CV,并直接保存为专业 PDF(一步完成 CV 生成和 PDF 创建)。
参数:
userProfile(object,必填):完整的用户资料信息jobRequirements(object,必填):职位要求对象outputPath(string,可选):保存 CV 的目录路径(未提供时使用 DEFAULT_OUTPUT_PATH)fileName(string,可选):自定义文件名(不含扩展名),默认为 "professional_cv"
6. generate_and_save_cv_markdown(推荐)
生成定制后的 CV,并直接保存为 Markdown(一步完成 CV 生成和 Markdown 创建)。
参数:
userProfile(object,必填):完整的用户资料信息jobRequirements(object,必填):职位要求对象outputPath(string,必填):保存 CV 的目录路径fileName(string,可选):自定义文件名(不含扩展名),默认为 "cv_markdown"
7. generate_and_save_cv_html(推荐)
生成定制后的 CV,并直接保存为 HTML(一步完成 CV 生成和 HTML 创建)。
参数:
userProfile(object,必填):完整的用户资料信息jobRequirements(object,必填):职位要求对象outputPath(string,必填):保存 CV 的目录路径fileName(string,可选):自定义文件名(不含扩展名),默认为 "cv_html"
8. generate_cv_pdf(高级)
根据预先生成的 CV 数据,生成 CV 并保存为专业 PDF 文档。
参数:
cvData(object,必填):定制后的 CV 数据对象(来自 generate_cv_data)outputPath(string,必填):保存 CV 的目录路径fileName(string,可选):自定义文件名(不含扩展名),默认为 "professional_cv"
9. generate_cv_markdown(高级)
根据预先生成的 CV 数据,将 CV 生成为 Markdown 格式。
参数:
cvData(object,必填):定制后的 CV 数据对象(来自 generate_cv_data)outputPath(string,必填):保存 CV 的目录路径fileName(string,可选):自定义文件名(不含扩展名),默认为 "cv_markdown"
10. generate_cv_html(高级)
根据预先生成的 CV 数据,将 CV 生成为带样式的 HTML 文档。
参数:
cvData(object,必填):定制后的 CV 数据对象(来自 generate_cv_data)outputPath(string,必填):保存 CV 的目录路径fileName(string,可选):自定义文件名(不含扩展名),默认为 "cv_web"
求职信和邮件模板工具
11. generate_cover_letter(推荐)
为特定职位申请生成量身定制的求职信。返回格式化文本,可在屏幕上显示或保存为 PDF。
参数:
userProfile(对象,必填):完整的用户个人资料jobRequirements(对象,必填):职位要求对象hiringManagerName(字符串,可选):已知情况下的招聘经理姓名format(字符串,可选):输出格式——"text"(默认),用于屏幕显示;"html",用于样式化查看
12. save_cover_letter_pdf
生成求职信并保存为 PDF 到指定位置。自动从职位描述中提取电子邮箱地址和招聘经理姓名。
参数:
userProfile(对象,必填):完整的用户个人资料jobRequirements(对象,必填):职位要求对象outputPath(字符串,可选):求职信的保存目录路径fileName(字符串,可选):自定义文件名(不含扩展名),默认为"cover_letter"hiringManagerName(字符串,可选):已知情况下的招聘经理姓名pageSize(字符串,可选):PDF 页面大小(例如,'A4'、'Letter'、'Legal')margins(对象,可选):PDF 页边距,包含 top、right、bottom、left 属性
13. generate_email_template
为职位申请生成专业的邮件模板。自动从职位描述中检测电子邮箱地址。
参数:
userProfile(对象,必填):完整的用户个人资料jobRequirements(对象,必填):职位要求对象templateType(字符串,可选):邮件模板类型——"application"(默认)、"follow_up"、"inquiry"、"thank_you"recipientEmail(字符串,可选):收件人邮箱地址(可选;如果职位描述中有提取到的邮箱,则使用该邮箱)hiringManagerName(字符串,可选):已知情况下的招聘经理姓名
14. draft_complete_application(推荐——一站式解决方案)
起草完整的职位申请材料包:简历、求职信和邮件模板。自动生成 PDF 格式的简历和求职信;如果职位描述中找到电子邮箱地址,还会生成邮件模板。
参数:
userProfile(对象,必填):完整的用户个人资料jobRequirements(对象,必填):职位要求对象outputPath(字符串,可选):文件的保存目录路径baseFileName(字符串,可选):生成文件的基础文件名(不含扩展名),默认为"job_application"hiringManagerName(字符串,可选):已知情况下的招聘经理姓名
配置
环境变量
MCP 服务支持通过 Claude Desktop 配置中的环境变量设置各种配置选项:
{
"mcpServers": {
"cv-forge": {
"command": "node",
"args": ["path/to/cv-forge/build/index.js"],
"cwd": "path/to/cv-forge",
"env": {
"DEFAULT_OUTPUT_PATH": "D:/CV",
"TEMP_DIR": "C:/Users/YourName/AppData/Local/Temp/cv-maker",
"PDF_TIMEOUT": "300000",
"PDF_PAGE_SIZE": "A4",
"PDF_MARGIN_TOP": "10mm",
"PDF_MARGIN_RIGHT": "10mm",
"PDF_MARGIN_BOTTOM": "10mm",
"PDF_MARGIN_LEFT": "10mm",
"PDF_BASE_FONT_SIZE": "12px",
"PDF_LINE_HEIGHT": "1.4",
"PDF_H1_FONT_SIZE": "20px",
"PDF_H2_FONT_SIZE": "15px",
"PDF_H3_FONT_SIZE": "13px",
"PDF_PARAGRAPH_SPACING": "8px",
"PDF_SECTION_SPACING": "12px"
}
}
}
}
配置选项:
DEFAULT_OUTPUT_PATH:保存简历文件的默认目录(未提供outputPath或其值为"./"时)TEMP_DIR:生成 PDF 期间用于存放临时文件的目录PDF_TIMEOUT:生成 PDF 的超时时间,单位为毫秒PDF_PAGE_SIZE:默认 PDF 页面大小,默认为'A4'- 常见尺寸:
'A4'(210×297mm)、'Letter'(8.5×11in)、'Legal'(8.5×14in)
- 常见尺寸:
PDF_MARGIN_*:PDF 页边距(上、右、下、左),默认为'10mm'PDF_BASE_FONT_SIZE:简历正文的基础字号(12px ≈ MS Word 9pt,13px ≈ 10pt)PDF_LINE_HEIGHT:文本行高(建议设为 1.4,以采用紧凑布局)PDF_H1_FONT_SIZE:姓名/标题的字号PDF_H2_FONT_SIZE:章节标题的字号PDF_H3_FONT_SIZE:职位名称和小节的字号PDF_PARAGRAPH_SPACING:段落间距PDF_SECTION_SPACING:主要章节之间的间距
使用 Claude Desktop 的示例
连接到 Claude Desktop 后,你可以使用自然语言与简历制作工具交互:
1. 解析职位要求
"Can you parse this job posting for me:
Job Title: Senior Software Engineer
Company: TechCorp Inc
Description: We are looking for a Senior Software Engineer with 5+ years of experience in JavaScript, React, and Node.js. Must have experience with cloud platforms and agile methodologies. Strong communication skills required."
2. 生成定制简历(简单的一步流程,默认输出 PDF)
"Generate a tailored CV for me based on this job posting:
Job Title: Senior Software Engineer
Company: TechCorp Inc
Job Description: We are looking for a Senior Software Engineer with 5+ years of experience in JavaScript, React, and Node.js. Must have experience with cloud platforms and agile methodologies.
My Profile:
- Full Name: John Doe
- Email: [email protected]
- Phone: +1-555-0123
- Experience: 6 years as Software Engineer at various companies
- Skills: JavaScript, Python, React, Node.js, AWS, Docker
- Education: BS Computer Science from State University
Please save it to C:\Users\John\Documents\CVs with filename 'john_doe_senior_engineer_techcorp'"
注意: 除非指定其他格式,否则系统会自动生成 PDF 文件(默认格式)。
3. 生成不同格式
"Can you generate my CV in multiple formats? I need:
1. A professional PDF for applications (default format)
2. A Markdown version for my GitHub
3. An HTML version for my website
Save them all to C:\Users\John\Documents\CVs with the base filename 'john_doe_cv'"
或者明确指定格式:
"Generate my CV in HTML format and save it to C:\Users\John\Documents\CVs"
或者为 PDF 指定自定义页面尺寸和页边距:
"Generate my CV as a PDF with Letter page size and 1 inch margins on all sides, save it to C:\Users\John\Documents\CVs"
3. 生成求职信
"Generate a cover letter for the Senior Software Engineer position at TechCorp Inc. The job description mentions the hiring manager is Sarah Johnson and applications should be sent to [email protected]."
4. 生成邮件模板
"Create an email template for applying to the Senior Software Engineer position at TechCorp Inc. The job posting includes the email [email protected] and mentions Sarah Johnson as the hiring manager."
5. 起草完整的求职申请材料包(推荐)
"Draft a complete job application package for the Senior Software Engineer position at TechCorp Inc. Include CV, cover letter, and email template. Save everything to C:\Users\John\Documents\Applications with the base filename 'techcorp_application'."
将生成以下文件:
techcorp_application_CV.pdf- 定制简历techcorp_application_Cover_Letter.pdf- 专业求职信techcorp_application_Email_Template.txt- 邮件模板(如果职位描述中找到电子邮件地址)
6. 生成跟进邮件模板
"Generate a follow-up email template for the Senior Software Engineer position I applied to at TechCorp Inc last week."
7. 直接使用工具的示例
如果你想直接使用这些工具(进阶用法):
-
解析职位信息:
{ "tool": "parse_job_requirements", "args": { "jobTitle": "Senior Software Engineer", "company": "TechCorp Inc", "jobDescription": "We are looking for a Senior Software Engineer with 5+ years of experience in JavaScript, React, and Node.js. Must have experience with cloud platforms and agile methodologies." } } -
生成定制简历:
{ "tool": "generate_cv_data", "args": { "userProfile": { /* user profile object */ }, "jobRequirements": { /* job requirements object */ } } } -
生成 PDF 简历:
{ "tool": "generate_cv_pdf", "args": { "cvData": { /* tailored CV data */ }, "outputPath": "C:\\Users\\YourName\\Documents\\CVs", "fileName": "senior_engineer_techcorp_cv" } } -
生成 Markdown 简历:
{ "tool": "generate_cv_markdown", "args": { "cvData": { /* tailored CV data */ }, "outputPath": "C:\\Users\\YourName\\Documents\\CVs", "fileName": "cv_for_github" } } -
生成 HTML 简历:
{ "tool": "generate_cv_html", "args": { "cvData": { /* tailored CV data */ }, "outputPath": "C:\\Users\\YourName\\Documents\\CVs", "fileName": "web_resume" } } -
将简历保存为文本文件:
{ "tool": "save_cv_text", "args": { "cvData": { /* tailored CV data */ }, "outputPath": "C:\\Users\\YourName\\Documents\\CVs", "fileName": "senior_engineer_techcorp_cv" } }
工作原理
-
职位分析:服务会解析职位描述,提取以下信息:
- 必需的技术技能
- 优先考虑的资质
- 公司所属行业和规模
- 所需的经验水平
-
简历定制:根据分析结果,服务会:
- 优先展示相关技能和经验
- 调整专业简介
- 重新排列并突出匹配的成就
- 纳入职位专属关键词,以优化 ATS 匹配效果
-
生成输出:创建格式规范的文本简历,具有以下特点:
- 使用适合 ATS 的格式
- 包含相关关键词
- 保持专业结构
- 突出最相关的资质
文件结构
cv-forge/
├── src/
│ ├── index.ts # Main MCP server
│ └── lib/
│ ├── job-parser.ts # Job requirement parsing logic
│ ├── cv-generator.ts # CV tailoring algorithms
│ ├── document-generator.ts # Multi-format document generation
│ └── word-generator.ts # Word document generation (future)
├── build/ # Compiled JavaScript files
├── package.json # Project configuration
├── tsconfig.json # TypeScript configuration
├── claude_desktop_config.example.json # Example configuration
└── README.md # This file
开发
构建
npm run build
启动开发服务
npm run dev
项目结构
src/index.ts:注册工具的主要 MCP 服务src/lib/job-parser.ts:解析职位要求,提取关键信息、电子邮件和招聘经理姓名src/lib/cv-generator.ts:根据职位要求生成定制简历内容src/lib/cover-letter-generator.ts:为求职申请生成个性化求职信src/lib/email-template-generator.ts:为各种求职申请场景创建专业邮件模板src/lib/document-generator.ts:生成多种格式的文档(PDF、HTML、Markdown)src/lib/word-generator.ts:(未来功能)生成 Word 文档
故障排除
PDF 未保存到配置的位置
- 确保在 Claude Desktop 配置中设置了
DEFAULT_OUTPUT_PATH - 更改配置后,重启 Claude Desktop
- 检查路径是否存在,或应用是否有权限创建该路径
字体过大或过小
- 调整环境变量中的
PDF_BASE_FONT_SIZE(12px ≈ 9pt,13px ≈ 10pt MS Word) - 修改
PDF_LINE_HEIGHT,以调整行距 - 更改后,重启 Claude Desktop
PDF 生成失败
- 检查输出目录是否存在且可写
- 确认
TEMP_DIR路径有效 - 确保有足够的磁盘空间
自定义页面尺寸未生效
- 确保页面尺寸格式有效(A4、Letter、Legal、A3、A5 等)
- 检查 PDF 生成器是否支持该页面尺寸
- 使用标准页面尺寸名称(区分大小写)
自定义页边距未生效
- 使用正确的单位:'mm'、'cm'、'in'、'px'、'pt'
- 示例:'10mm'、'0.8in'、'72pt'
- 更改环境变量后,重启 Claude Desktop
未来增强
- 增强 Word 文档生成功能,支持高级格式设置
- 提供多种简历和求职信模板(现代、经典、简约)
- 高级关键词优化算法
- 集成招聘网站,自动解析职位信息
- 集成 LinkedIn 个人资料,自动获取资料数据
- 根据职位要求提供面试准备问题
- 根据市场数据提供薪资谈判指导
- 支持多语言,满足国际求职需求
- AI 驱动的写作建议和改进
依赖项
@modelcontextprotocol/sdk:核心 MCP 功能zod:模式验证和类型安全typescript:TypeScript 编译器md-to-pdf:将 Markdown 转换为 PDFmarkdown-it:Markdown 解析和 HTML 转换docx:Word 文档生成(用于未来的 Word 输出)
许可证
本项目采用 MIT 许可证。
贡献
欢迎贡献!请随时提交拉取请求,或针对错误和功能请求提出问题。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。