CV Forge

io.github.thechandanbhagat由 GitHub 帳號 thechandanbhagat 發布v1.0.1更新於 Oct 24, 2026

Forge powerful, ATS-friendly CVs tailored to any job - an MCP server for intelligent CV generation

已驗證STDIO僅桌面效率與工作流檔案與儲存

概覽

AI 產生的概覽

根據職缺描述與使用者資料,產生針對性、對 ATS 友善的履歷、求職信與申請郵件範本,並可存成 PDF、HTML、Markdown 或純文字。

可以做什麼
CV Forge 會解析職缺描述,擷取技能、資歷、聯絡信箱與招募經理姓名,並據此調整履歷內容。它也能產生求職信與申請郵件範本,並可透過一次呼叫產出完整的申請文件包。輸出會寫入你指定的目錄,預設產生 PDF,也支援 HTML、Markdown 與純文字格式。
適用情境
適合在投遞職缺時使用,讓每份履歷與求職信都針對特定職缺調整,而不必手動重寫。適合已經整理好經歷、教育與技能等結構化資料的使用者。
執行需求
需要本機 Node.js 執行環境;透過 npm 安裝 cv-forge 套件,並在 Claude Desktop 設定檔中設定。僅支援桌面端,沒有遠端端點。選用環境變數如 DEFAULT_OUTPUT_PATH、TEMP_DIR 以及 PDF_* 樣式選項可控制輸出位置與排版。未宣告需要帳號或 API 金鑰。
安裝前請注意
它會寫入你指定的輸出目錄,請指向你打算使用的資料夾。你的個人資料(含聯絡方式)與職缺描述文字會傳給此伺服器並寫入產生的文件,寄出前請先檢查檔案。選用環境變數如 DEFAULT_OUTPUT_PATH 與 TEMP_DIR 決定檔案寫入位置。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 CV Forge,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

CV Forge

Forge powerful, ATS-friendly CVs tailored to any job requirement.

An intelligent MCP (Model Context Protocol) server that analyzes job postings and crafts perfectly-matched CVs.

Features

  • Parse Job Requirements: Extract key skills, qualifications, email addresses, and hiring manager names from job postings
  • Generate Tailored CVs: Create customized CV content based on user profile and job requirements
  • Cover Letter Generation: Generate personalized cover letters tailored to specific job applications
  • Email Template Creation: Create professional email templates with automatic email address detection
  • Complete Application Packages: Generate CV, cover letter, and email template in one command
  • PDF by Default: Automatically generates professional PDF documents when no format is specified
  • Multiple Output Formats: Generate documents in PDF (default), HTML, Markdown, and text formats
  • Professional PDF Generation: Create publication-ready PDF documents with professional styling
  • ATS-Friendly: Optimized for Applicant Tracking Systems with proper keyword placement
  • Smart Contact Extraction: Automatically extracts email addresses and hiring manager names from job descriptions

Star History

[Star History Chart]

Installation

Via npm (Recommended)

Install globally:

bash
npm install -g cv-forge

Or install locally in your project:

bash
npm install cv-forge

From Source

  1. Clone this repository
  2. Install dependencies:
    bash
    npm install
  3. Build the project:
    bash
    npm run build

Usage

Connecting to Claude Desktop

To use this MCP server with Claude Desktop, you need to add it to your Claude configuration file.

Step 1: Install cv-forge

bash
npm install -g cv-forge

Step 2: Find your Claude Desktop config file

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

Step 3: Add the MCP server to your config

For global installation, add this to your claude_desktop_config.json file:

json
{  "mcpServers": {    "cv-forge": {      "command": "cv-forge"    }  }}

Or if installed locally, specify the full path:

json
{  "mcpServers": {    "cv-forge": {      "command": "node",      "args": ["d:/TopSecret/cv-forge/build/index.js"],      "cwd": "d:/TopSecret/cv-forge"    }  }}

Step 4: (Optional) Add environment configuration

You can customize the server with environment variables:

json
{  "mcpServers": {    "cv-forge": {      "command": "cv-forge",      "env": {        "DEFAULT_OUTPUT_PATH": "D:/CV",        "PDF_BASE_FONT_SIZE": "12px",        "PDF_LINE_HEIGHT": "1.4"      }    }  }}

Step 5: Restart Claude Desktop After adding the configuration, restart Claude Desktop application.

Step 6: Verify Connection In Claude Desktop, you should see the CV Forge tools available. You can ask Claude to use tools like:

  • "Parse this job posting for me"
  • "Generate a tailored CV based on my profile and this job"
  • "Save my CV as a PDF file"

Running the MCP Server Standalone (for testing)

You can also run the server directly for testing:

bash
npm start

The server runs on stdio and communicates via the Model Context Protocol.

Available Tools

1. parse_job_requirements

Parses job requirements and extracts key information for CV tailoring.

Parameters:

  • jobTitle (string, required): The job title/position
  • company (string, required): Company name
  • jobDescription (string, required): Full job description text
  • requirements (array, optional): Specific requirements if separated
  • preferredSkills (array, optional): Preferred skills if separated
  • location (string, optional): Job location
  • salaryRange (string, optional): Salary range if provided
2. generate_cv_data

Generates tailored CV content based on user profile and job requirements.

Parameters:

  • userProfile (object, required): Complete user profile information
  • jobRequirements (object, required): Job requirements object

User Profile Structure:

json
{  "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

Saves CV content as a formatted text file.

Parameters:

  • cvData (object, required): Tailored CV data object (from generate_cv_data)
  • outputPath (string, required): Directory path where the CV should be saved
  • fileName (string, optional): Custom filename (without extension), defaults to "generated_cv"
4. generate_cv (Recommended - Main CV Generation Tool)

Generate tailored CV and save to specified location or default folder. Defaults to PDF format if no format is specified.

Parameters:

  • userProfile (object, required): Complete user profile information
  • jobRequirements (object, required): Job requirements object
  • outputPath (string, optional): Directory path where the CV should be saved (uses DEFAULT_OUTPUT_PATH if not provided)
  • fileName (string, optional): Custom filename (without extension), defaults to "professional_cv"
  • format (string, optional): Output format - "pdf" (default), "html", or "markdown"
  • pageSize (string, optional): PDF page size (e.g., 'A4', 'Letter', 'Legal') - uses PDF_PAGE_SIZE env var if not provided
  • margins (object, optional): PDF margins with top, right, bottom, left properties (e.g., '10mm', '0.8in') - uses PDF_MARGIN_* env vars if not provided
5. generate_and_save_cv_pdf (Legacy - Use generate_cv instead)

Generate tailored CV and save directly as professional PDF (combines CV generation and PDF creation in one step).

Parameters:

  • userProfile (object, required): Complete user profile information
  • jobRequirements (object, required): Job requirements object
  • outputPath (string, optional): Directory path where the CV should be saved (uses DEFAULT_OUTPUT_PATH if not provided)
  • fileName (string, optional): Custom filename (without extension), defaults to "professional_cv"
6. generate_and_save_cv_markdown (Recommended)

Generate tailored CV and save directly as Markdown (combines CV generation and Markdown creation in one step).

Parameters:

  • userProfile (object, required): Complete user profile information
  • jobRequirements (object, required): Job requirements object
  • outputPath (string, required): Directory path where the CV should be saved
  • fileName (string, optional): Custom filename (without extension), defaults to "cv_markdown"
7. generate_and_save_cv_html (Recommended)

Generate tailored CV and save directly as HTML (combines CV generation and HTML creation in one step).

Parameters:

  • userProfile (object, required): Complete user profile information
  • jobRequirements (object, required): Job requirements object
  • outputPath (string, required): Directory path where the CV should be saved
  • fileName (string, optional): Custom filename (without extension), defaults to "cv_html"
8. generate_cv_pdf (Advanced)

Generate and save CV as a professional PDF document from pre-generated CV data.

Parameters:

  • cvData (object, required): Tailored CV data object (from generate_cv_data)
  • outputPath (string, required): Directory path where the CV should be saved
  • fileName (string, optional): Custom filename (without extension), defaults to "professional_cv"
9. generate_cv_markdown (Advanced)

Generate CV as Markdown format from pre-generated CV data.

Parameters:

  • cvData (object, required): Tailored CV data object (from generate_cv_data)
  • outputPath (string, required): Directory path where the CV should be saved
  • fileName (string, optional): Custom filename (without extension), defaults to "cv_markdown"
10. generate_cv_html (Advanced)

Generate CV as styled HTML document from pre-generated CV data.

Parameters:

  • cvData (object, required): Tailored CV data object (from generate_cv_data)
  • outputPath (string, required): Directory path where the CV should be saved
  • fileName (string, optional): Custom filename (without extension), defaults to "cv_web"

Cover Letter and Email Template Tools

11. generate_cover_letter (Recommended)

Generate a tailored cover letter for a specific job application. Returns formatted text that can be displayed on screen or saved as PDF.

Parameters:

  • userProfile (object, required): Complete user profile information
  • jobRequirements (object, required): Job requirements object
  • hiringManagerName (string, optional): Name of the hiring manager if known
  • format (string, optional): Output format - "text" (default) for on-screen display, "html" for styled viewing
12. save_cover_letter_pdf

Generate and save a cover letter as PDF to specified location. Automatically extracts email addresses and hiring manager names from job descriptions.

Parameters:

  • userProfile (object, required): Complete user profile information
  • jobRequirements (object, required): Job requirements object
  • outputPath (string, optional): Directory path where the cover letter should be saved
  • fileName (string, optional): Custom filename (without extension), defaults to "cover_letter"
  • hiringManagerName (string, optional): Name of the hiring manager if known
  • pageSize (string, optional): PDF page size (e.g., 'A4', 'Letter', 'Legal')
  • margins (object, optional): PDF margins with top, right, bottom, left properties
13. generate_email_template

Generate a professional email template for job application. Automatically detects email addresses from job description.

Parameters:

  • userProfile (object, required): Complete user profile information
  • jobRequirements (object, required): Job requirements object
  • templateType (string, optional): Type of email template - "application" (default), "follow_up", "inquiry", "thank_you"
  • recipientEmail (string, optional): Recipient email address (optional, will use extracted email from job description if available)
  • hiringManagerName (string, optional): Name of the hiring manager if known
14. draft_complete_application (Recommended - One-Stop Solution)

Draft a complete job application package: CV, cover letter, and email template. Automatically generates PDF CV and cover letter, plus email template if email address is found in the job description.

Parameters:

  • userProfile (object, required): Complete user profile information
  • jobRequirements (object, required): Job requirements object
  • outputPath (string, optional): Directory path where files should be saved
  • baseFileName (string, optional): Base filename for generated files (without extension), defaults to "job_application"
  • hiringManagerName (string, optional): Name of the hiring manager if known

Configuration

Environment Variables

The MCP server supports various configuration options via environment variables in the Claude Desktop config:

json
{  "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"      }    }  }}

Configuration Options:

  • DEFAULT_OUTPUT_PATH: Default directory for saving CV files (when outputPath is not provided or is "./")
  • TEMP_DIR: Directory for temporary files during PDF generation
  • PDF_TIMEOUT: Timeout for PDF generation in milliseconds
  • PDF_PAGE_SIZE: Default PDF page size - defaults to 'A4'
    • Common sizes: 'A4' (210×297mm), 'Letter' (8.5×11in), 'Legal' (8.5×14in)
  • PDF_MARGIN_*: PDF page margins (top, right, bottom, left) - defaults to '10mm'
  • PDF_BASE_FONT_SIZE: Base font size for CV body text (12px ≈ MS Word 9pt, 13px ≈ 10pt)
  • PDF_LINE_HEIGHT: Line height for text (1.4 recommended for compact layout)
  • PDF_H1_FONT_SIZE: Font size for name/title heading
  • PDF_H2_FONT_SIZE: Font size for section headings
  • PDF_H3_FONT_SIZE: Font size for job titles and subsections
  • PDF_PARAGRAPH_SPACING: Spacing between paragraphs
  • PDF_SECTION_SPACING: Spacing between major sections

Example Usage with Claude Desktop

Once connected to Claude Desktop, you can use natural language to interact with the CV maker:

1. Parse Job Requirements

"Can you parse this job posting for me:
Job Title: Senior Software EngineerCompany: TechCorp IncDescription: 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. Generate Tailored CV (Simple One-Step Process - PDF by Default)

"Generate a tailored CV for me based on this job posting:
Job Title: Senior Software EngineerCompany: TechCorp IncJob 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'"

Note: This will automatically generate a PDF file (default format) unless you specify a different format.

3. Generate Different Formats

"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'"

Or specify format explicitly:

"Generate my CV in HTML format and save it to C:\Users\John\Documents\CVs"

Or specify custom page size and margins for 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 Cover Letters

"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. Generate Email Templates

"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 Complete Application Package (Recommended)

"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'."

This will generate:

  • techcorp_application_CV.pdf - Tailored CV
  • techcorp_application_Cover_Letter.pdf - Professional cover letter
  • techcorp_application_Email_Template.txt - Email template (if email address found in job description)

6. Generate Follow-up Email Template

"Generate a follow-up email template for the Senior Software Engineer position I applied to at TechCorp Inc last week."

7. Direct Tool Usage Examples

If you want to use the tools directly (advanced usage):

  1. Parse a job posting:

    json
    {  "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."  }}
  2. Generate tailored CV:

    json
    {  "tool": "generate_cv_data",   "args": {    "userProfile": { /* user profile object */ },    "jobRequirements": { /* job requirements object */ }  }}
  3. Generate PDF CV:

    json
    {  "tool": "generate_cv_pdf",  "args": {    "cvData": { /* tailored CV data */ },    "outputPath": "C:\\Users\\YourName\\Documents\\CVs",    "fileName": "senior_engineer_techcorp_cv"  }}
  4. Generate Markdown CV:

    json
    {  "tool": "generate_cv_markdown",  "args": {    "cvData": { /* tailored CV data */ },    "outputPath": "C:\\Users\\YourName\\Documents\\CVs",    "fileName": "cv_for_github"  }}
  5. Generate HTML CV:

    json
    {  "tool": "generate_cv_html",  "args": {    "cvData": { /* tailored CV data */ },    "outputPath": "C:\\Users\\YourName\\Documents\\CVs",    "fileName": "web_resume"  }}
  6. Save CV as text file:

    json
    {  "tool": "save_cv_text",  "args": {    "cvData": { /* tailored CV data */ },    "outputPath": "C:\\Users\\YourName\\Documents\\CVs",    "fileName": "senior_engineer_techcorp_cv"  }}

How It Works

  1. Job Analysis: The server parses job descriptions to extract:

    • Required technical skills
    • Preferred qualifications
    • Company industry and size
    • Experience level requirements
  2. CV Tailoring: Based on the analysis, it:

    • Prioritizes relevant skills and experience
    • Adjusts the professional summary
    • Reorders and emphasizes matching achievements
    • Incorporates job-specific keywords for ATS optimization
  3. Output Generation: Creates a well-formatted text CV that:

    • Uses ATS-friendly formatting
    • Includes relevant keywords
    • Maintains professional structure
    • Highlights the most relevant qualifications

File Structure

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

Development

Building

bash
npm run build

Starting Development Server

bash
npm run dev

Project Structure

  • src/index.ts: Main MCP server with tool registration
  • src/lib/job-parser.ts: Parses job requirements, extracts key information, emails, and hiring manager names
  • src/lib/cv-generator.ts: Generates tailored CV content based on job requirements
  • src/lib/cover-letter-generator.ts: Generates personalized cover letters for job applications
  • src/lib/email-template-generator.ts: Creates professional email templates for various application scenarios
  • src/lib/document-generator.ts: Multi-format document generation (PDF, HTML, Markdown)
  • src/lib/word-generator.ts: (Future) Word document generation functionality

Troubleshooting

PDF not saving to configured location

  • Ensure DEFAULT_OUTPUT_PATH is set in your Claude Desktop config
  • Restart Claude Desktop after changing configuration
  • Check that the path exists or the application has permission to create it

Font size too large or small

  • Adjust PDF_BASE_FONT_SIZE in environment variables (12px ≈ 9pt, 13px ≈ 10pt MS Word)
  • Modify PDF_LINE_HEIGHT for tighter/looser spacing
  • Restart Claude Desktop after changes

PDF generation fails

  • Check that output directory exists and is writable
  • Verify TEMP_DIR path is valid
  • Ensure sufficient disk space

Custom page size not working

  • Ensure page size is a valid format (A4, Letter, Legal, A3, A5, etc.)
  • Check that the page size is supported by the PDF generator
  • Use standard page size names (case-sensitive)

Custom margins not applied

  • Use proper units: 'mm', 'cm', 'in', 'px', 'pt'
  • Example: '10mm', '0.8in', '72pt'
  • Restart Claude Desktop after changing environment variables

Future Enhancements

  • Enhanced Word document generation with advanced formatting
  • Multiple CV and cover letter templates (modern, classic, minimal)
  • Advanced keyword optimization algorithms
  • Integration with job boards for automatic job parsing
  • LinkedIn profile integration for automatic profile data
  • Interview preparation questions based on job requirements
  • Salary negotiation guidance based on market data
  • Multi-language support for international applications
  • AI-powered writing suggestions and improvements

Dependencies

  • @modelcontextprotocol/sdk: Core MCP functionality
  • zod: Schema validation and type safety
  • typescript: TypeScript compiler
  • md-to-pdf: PDF generation from Markdown
  • markdown-it: Markdown parsing and HTML conversion
  • docx: Word document generation (for future Word output)

License

This project is available under the MIT License.

Contributing

Contributions are welcome! Please feel free to submit pull requests or open issues for bugs and feature requests.

來源:README.md,提交 a1cf021

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v1.0.1最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分