CV Forge MCP Server: CVs from Job Postings
Generate tailored CVs from job postings with the CV Forge MCP server, analyzing roles to craft perfectly matched resumes by Chandan Bhagat.
Overview
CV Forge is an MCP (Model Context Protocol) server that converts job postings into tailored, ATS-friendly CVs, cover letters, and email templates. It analyzes job descriptions to extract skills, qualifications, contact details, and hiring-manager cues, then combines that analysis with a user profile to produce application-ready documents. The server is implemented to run as an MCP tool (stdio) so it can integrate with local LLM clients such as Claude Desktop or be used standalone for automation and testing.
For developers, CV Forge simplifies the repetitive and detail-oriented task of adapting a resume to specific job requirements. It produces multiple output formats (PDF by default), emphasizes ATS-friendly structure and keywords, and exposes a small set of tools for parsing postings and generating CV content programmatically.
Features
- Parse job postings to extract key skills, required qualifications, contact emails, and hiring manager names
- Generate tailored CV content (summary, experience bullet points, skills) based on user profile and job requirements
- Produce cover letters and professional email templates matched to the target role
- Export in multiple formats: PDF (default), HTML, Markdown, and plain text
- PDF generation with publication-ready styling and configurable typography
- ATS-optimized output (keyword placement and standard sectioning)
- Quick CLI startup for local testing and MCP-compatible stdio communication for LLM clients
- Environment-driven configuration for default output directories and PDF styling
Installation / Configuration
Install via npm (recommended):
# global install
# or local install in a project
From source:
Run the server for testing:
# runs on stdio and communicates using the Model Context Protocol
Example Claude Desktop MCP configuration (global install):
Example (local install) with full paths:
Optional environment variables can tune defaults:
"env":
After updating your Claude Desktop config, restart the app to load the MCP server.
Available Tools
The server exposes a concise set of tools. Below is a summary and their primary parameters.
| Tool | Purpose | Key parameters |
|---|---|---|
| parse_job_requirements | Extract skills, contacts, and requirements from a job posting | jobTitle (string), company (string), jobDescription (string), requirements (array, optional) |
| generate_cv_data | Produce tailored CV content using profile + job requirements | userProfile (object), jobRequirements (object) |
| save_cv_text | Save CV content to disk as formatted text | cvData (object), outputPath (string), fileName (string, optional) |
User profile structure (simplified):
Use Cases
- Developer tailoring: A software engineer pastes a LinkedIn job posting, runs parse_job_requirements, then generate_cv_data to get a resume that emphasises the exact technologies and achievements an ATS will match.
- Batch CV generation: HR or career coaches can script generation for multiple roles by feeding job descriptions and standardized candidate profiles to produce PDFs in a target folder.
- Application package creation: With a single command you can generate a CV, a role-specific cover letter, and an email template addressing the hiring manager if found in the posting.
- Local LLM tooling: Integrate CV Forge as an MCP plugin for desktop LLM apps (e.g., Claude Desktop) so an assistant can call parsing and generation tools programmatically during interactive sessions.
Quick example — parse a job and generate CV data (pseudo-JSON exchange):
- parse_job_requirements input:
- generate_cv_data input:
Output formats include PDF (default), HTML, Markdown, and text. PDF generation is optimized for print and electronic distribution; set DEFAULT_OUTPUT_PATH to control where files are written.
For the full source, examples, and issue tracking, see the project on GitHub: https://github.com/thechandanbhagat/cv-forge