CV Forge MCP

by thechandanbhagat

Not rated
GitHub

About

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

Details

Author
thechandanbhagat
Categories
Productivity

Setup

Install CV Forge MCP in your MCP client (Claude Desktop, Cursor, Windsurf, and others).

Repository: https://github.com/thechandanbhagat/cv-forge

Follow the installation instructions in the repository README, then restart your MCP client.

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.

- 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
- Clone this repository
- Install dependencies:

npm install

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

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 yourclaude_desktop_config.jsonfile:

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

Or if installed locally, specify the full path:

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

{ "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 DesktopAfter adding the configuration, restart Claude Desktop application.

Step 6: Verify ConnectionIn 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:

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

Parses job requirements and extracts key information for CV tailoring.

- 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

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

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

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

Saves CV content as a formatted text file.

- 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 formatif no format is specified.

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

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

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

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

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

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

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

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

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

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

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

- 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

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

- 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

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

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

- 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

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

{ "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: 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)

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

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

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

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

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

"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- Tailored CV
- techcorp_application_Cover_Letter.pdf- Professional cover letter
- techcorp_application_Email_Template.txt- Email template (if email address found in job description)

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

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

{ "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 / } } }
{ "tool": "generate_cv_pdf", "args": { "cvData": { / tailored CV data / }, "outputPath": "C:\\Users\\YourName\\Documents\\CVs", "fileName": "senior_engineer_techcorp_cv" } }
{ "tool": "generate_cv_markdown", "args": { "cvData": { / tailored CV data / }, "outputPath": "C:\\Users\\YourName\\Documents\\CVs", "fileName": "cv_for_github" } }
{ "tool": "generate_cv_html", "args": { "cvData": { / tailored CV data */ }, "outputPath": "C:\\Users\\YourName\\Documents\\CVs", "fileName": "web_resume" } }
No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.