AI-powered CV and resume builder using Model Context Protocol. Automatically generates and updates your CV/resume from git commits, Jira tickets, Credly badges, and LinkedIn profile.
Project description
CV Resume Builder MCP
AI-powered CV and resume builder using Model Context Protocol (MCP)
Automatically generate and update your CV/resume from git commits, Jira tickets, Credly certifications, and LinkedIn. Built for developers who want their CV to stay current without manual updates.
Features
- ๐ Git commits - Track your code contributions automatically โ
- ๐ซ Jira tickets - Pull completed projects and tasks โ ๏ธ (requires testing)
- ๐ Credly badges - Sync certifications and achievements โ
- ๐ผ LinkedIn profile - Not implemented yet ๐ง (authentication required)
- ๐ PDF parsing - Extract content from existing CVs โ
- ๐ Enhanced CV generation - Combine all data sources โ
- ๐ LaTeX support - Generate professional CVs โ
Quick Start
Prerequisites
- Python 3.10+
uvinstalled (for uvx):curl -LsSf https://astral.sh/uv/install.sh | sh- An MCP-compatible AI assistant (Claude Desktop, Kiro, etc.)
Installation
Using uvx (recommended - no installation needed!):
Just configure your MCP client and uvx handles the rest.
Or install with pip:
pip install cv-resume-builder-mcp
Configuration
For Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"cv-resume-builder": {
"command": "uvx",
"args": ["cv-resume-builder-mcp"],
"env": {
"AUTHOR_NAME": "your-git-username",
"REPOS": "default:/absolute/path/to/your-repo"
}
}
}
}
For multiple repositories: Change REPOS to: "CompanyA:/path1,CompanyB:/path2,Personal:/path3"
For Kiro IDE
Edit ~/.kiro/settings/mcp.json:
{
"mcpServers": {
"cv-resume-builder": {
"command": "uvx",
"args": ["cv-resume-builder-mcp"],
"env": {
"AUTHOR_NAME": "your-git-username",
"REPOS": "default:/absolute/path/to/your-repo"
}
}
}
}
For multiple repositories: Change REPOS to: "CompanyA:/path1,CompanyB:/path2,Personal:/path3"
Important: Use absolute paths (no ~). Get it with pwd in your repo directory.
Restart Your AI Assistant
After configuration, restart Claude Desktop or Kiro to load the MCP server.
Test It
"List available MCP tools"
You should see tools like get_git_log, read_cv, parse_cv_pdf, etc.
Usage Examples
"Get my git commits from the last 6 months and suggest CV updates"
With multiple repositories:
"List all my configured repositories"
"Get my commits from CompanyA for the last 3 months"
"Show me all my work across all repositories in the last year"
Parse existing CV
"Parse my CV at ~/Documents/resume.pdf"
Generate enhanced CV
"Generate an enhanced CV using my existing resume.pdf and recent work from the last 3 months"
Get certifications
"Get my Credly badges and add them to my CV"
Analyze commit impact (NEW!)
"Analyze my commits from the last month and show me what I actually built"
"Get detailed code changes for commit abc123 to understand the impact"
"Show me the stats for my recent commits to highlight achievements"
Optional Integrations
Add these to your MCP configuration's env section:
Jira (โ ๏ธ Requires Testing)
"JIRA_URL": "https://your-company.atlassian.net",
"JIRA_EMAIL": "your-email@example.com",
"JIRA_API_TOKEN": "your-api-token",
"JIRA_USER": "your-email@example.com"
Get API token: https://id.atlassian.com/manage-profile/security/api-tokens
Note: Jira integration is functional but requires more testing across different Jira configurations. Please report any issues!
Credly (โ Fully Tested)
"CREDLY_USER_ID": "your-credly-username"
Find your username in your Credly profile URL: https://www.credly.com/users/YOUR-USERNAME
LinkedIn (๐ง Not Implemented)
"LINKEDIN_PROFILE_URL": "https://www.linkedin.com/in/yourprofile"
Note: LinkedIn integration is not yet implemented due to authentication requirements. The tool currently only returns your profile URL. For now, manually copy your LinkedIn achievements to wins.md file. Contributions welcome!
CV Formatting
"MAX_BULLETS_PER_EXPERIENCE": "5"
Available Tools
| Tool | Description |
|---|---|
get_git_log |
Get your git commits from default repo (excludes merge commits) |
list_repos |
List all configured repositories |
get_git_log_by_repo |
Get commits from a specific repository |
get_git_log_all_repos |
Get commits from all repos, grouped by project |
get_commit_details |
NEW! Get detailed commit info including code changes (diff) for impact analysis |
analyze_commits_impact |
NEW! Analyze multiple commits with stats to understand actual work done |
read_cv |
Read your current LaTeX CV |
read_wins |
Read your wins.md achievements file |
get_jira_tickets |
Get completed Jira tickets |
get_credly_badges |
Get your certifications from Credly |
get_linkedin_profile |
Read your LinkedIn profile summary |
parse_cv_pdf |
Extract text from existing CV/resume PDF |
generate_enhanced_cv |
Combine all data sources into comprehensive report |
get_cv_guidelines |
Get formatting rules and constraints |
Project Structure
cv-resume-builder-mcp/
โโโ src/cv_resume_builder_mcp/
โ โโโ __init__.py
โ โโโ server.py # Main MCP server
โโโ tests/
โ โโโ test_server.py # Unit tests
โโโ pyproject.toml # Package configuration
โโโ requirements.txt # Dependencies
โโโ .env.example # Configuration template
โโโ cv.tex # LaTeX CV template
โโโ wins.md # Manual achievements tracking
โโโ README.md # This file
Development
Setup
git clone https://github.com/YOUR-USERNAME/cv-resume-builder-mcp.git
cd cv-resume-builder-mcp
pip install -e ".[dev]"
Run Tests
pytest
Format Code
black src/
ruff check src/
Contributing
Contributions welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Ensure no credentials are hardcoded
- Submit a pull request
See CONTRIBUTING.md for details.
Troubleshooting
MCP server not showing up
- Verify absolute paths in config (use
pwd) - Restart your AI assistant completely
- Check for typos in configuration
Git log returns empty
- Check your git author name:
git config user.name - Update
AUTHOR_NAMEto match exactly
"Command not found: uvx"
- Install uv:
curl -LsSf https://astral.sh/uv/install.sh | sh - Or:
brew install uv
Jira/Credly errors
- Verify API tokens are correct
- Check URLs don't have trailing slashes
- Ensure services are accessible
Security
- All credentials stored in environment variables
- No data sent to external services except configured integrations
- Git history stays local
- Open source - audit the code yourself
License
MIT License - see LICENSE file for details.
Support
- ๐ Report bugs - Open an issue on GitHub
- ๐ก Request features - Create a feature request issue
- ๐ฌ Ask questions - Start a discussion on GitHub
Keywords: cv builder, resume builder, mcp, model context protocol, ai resume, ai cv, automatic cv, career tracker, latex cv, resume generator, cv generator, developer resume, tech resume
Made with โค๏ธ for developers who hate updating their CVs manually
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cv_resume_builder_mcp-1.1.2.tar.gz.
File metadata
- Download URL: cv_resume_builder_mcp-1.1.2.tar.gz
- Upload date:
- Size: 19.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d4e21f9f22ef4a41772f7affa37383b66fe022ff5bbb38bc6b0410888bfbd4d4
|
|
| MD5 |
7474bfd61b1e56d812f3a9524fbe07a8
|
|
| BLAKE2b-256 |
ec8cb7f55daf53916a5638a74d1917f9a01820e11e974add611ddd4d0ec26d98
|
File details
Details for the file cv_resume_builder_mcp-1.1.2-py3-none-any.whl.
File metadata
- Download URL: cv_resume_builder_mcp-1.1.2-py3-none-any.whl
- Upload date:
- Size: 13.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5f6ccb156bf005624f7af9e522fc9bd8748f5237a92deed543d541832e0cb139
|
|
| MD5 |
13f5ed26c55be146bcd280e064f937c5
|
|
| BLAKE2b-256 |
fca8217b6b91a468e7c424b4d4bd104a2e217ab6a1993e3981c16a394ed491e9
|