CV Forge

行业场景

by thechandanbhagat

面向任意岗位智能生成强大且 ATS-friendly 的 CV 的 MCP server,帮助快速定制高匹配简历。

什么是 CV Forge

面向任意岗位智能生成强大且 ATS-friendly 的 CV 的 MCP server,帮助快速定制高匹配简历。

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": "john@example.com",
    "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

code
"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. Generate Tailored CV (Simple One-Step Process - PDF by Default)

code
"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: john@example.com
- 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

code
"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:

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

Or specify custom page size and margins for PDF:

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

code
"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 careers@techcorp.com."

4. Generate Email Templates

code
"Create an email template for applying to the Senior Software Engineer position at TechCorp Inc. The job posting includes the email careers@techcorp.com and mentions Sarah Johnson as the hiring manager."

5. Draft Complete Application Package (Recommended)

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

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

code
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.

常见问题

CV Forge 是什么?

面向任意岗位智能生成强大且 ATS-friendly 的 CV 的 MCP server,帮助快速定制高匹配简历。

相关 Skills

面试体系设计

by alirezarezvani

Universal
热门

按岗位、级别和团队设计面试流程,生成能力矩阵、题库与评分标准,分析面试官偏差并校准招聘门槛,适合搭建或优化企业招聘体系。

团队招人没章法时,用它快速搭建岗位化面试流程、题库与评分标准,还能兼顾校准面试偏差,招聘更稳更准。

行业场景
未扫描9.0k

抽认卡

by BytesAgain

热门

Spaced repetition study tool with deck management. Use when you need flashcard.

行业场景
未扫描3.7k

教程文档

by anderskev

热门

Tutorial patterns for documentation - learning-oriented guides that teach through guided doing

行业场景
未扫描3.7k

相关 MCP Server

by boosted-chat

热门

Flight search & booking for AI agents. 400+ airlines, $20-50 cheaper than OTAs.

行业场景
137

Search company disclosures and financial statements from the Korean market. Retrieve stock profiles, market classifications, and historical trading data across major exchanges. Accelerate equity research with accurate, date-specific insights for Korean securities.

做韩国股研时,用它能一站查公司披露、财报和历史行情,按日期精确追溯关键信息,比手动翻交易所高效太多。

行业场景
103

检索韩国市场公司的披露文件与财务报表,并获取股票概况等关键信息。

想研究韩股公司时,它能一站式拉取披露、财报和股票概况,省去跨站查资料的麻烦,对跨境投研尤其省时。

行业场景
103

评论