resume-processor-mcp

resume-processor-mcp

MCP server for processing Markdown resumes into multiple formats (PDF, LinkedIn templates) with AI analysis and Claude integration.

Category
Visit Server

README

Resume Processing Pipeline

Resume Management System with Model Context Protocol (MCP) Integration
Open Systems Lab - info@opensystemslab.com

๐Ÿš€ Overview

Pipeline that transforms Markdown resumes into multiple formats using AI processing, containerized workflows, and DevOps practices.

Project Motivation

This project addresses the need to reformat Markdown resumes with custom LaTeX styles and fonts, while generating text-based formats for easy copy-paste integration with LinkedIn profiles. The implementation applies DevOps practices through:

  • CI/CD Pipeline: Automated workflow for consistent resume processing
  • Model Context Protocol (MCP): Integration for agentic applications with AI platforms
  • Testing Infrastructure: Validation using the ACT tool for GitHub Actions workflows

This capstone project demonstrates the application of DevOps methodology and MCP extensions to personal document management, combining traditional document processing with modern AI integration and automated testing practices.

Features

  • AI Processing: MCP server with Claude integration for resume analysis
  • Multi-Format Output: PDF (LaTeX), LinkedIn templates, clean text formats
  • Automated CI/CD: GitHub Actions pipeline with Docker containerization
  • Local Testing: Test suite with ACT integration
  • Production Ready

๐Ÿ“š Documentation

๐Ÿ—๏ธ Architecture

๐Ÿ”— Integration

๐Ÿ“– Guides

๐Ÿงช Testing

๐Ÿ“ Samples

๐Ÿš€ Quick Start

Prerequisites

  • Docker
  • Go (for MCP server)
  • Git

Option 1: MCP Server Mode (Recommended)

# Build MCP server
make build

# Run tests
make test-all

# Start MCP server
make run

# Test MCP functionality  
make test-mcp

Option 2: Docker Pipeline

# Build container
docker build -t resume-processor .

# Process resume
docker run --rm \
  -v "$(pwd)/input:/workspace/input:ro" \
  -v "$(pwd)/output:/workspace/output" \
  resume-processor

Option 3: Direct Script Processing

# Process resume with local script
make process-resume

๐Ÿ› ๏ธ Development

Available Make Targets

Building:

make build              # Build MCP server binary
make build-all          # Build for all platforms
make docker-build       # Build Docker image

Testing:

make test               # Run unit tests
make test-all           # Run all tests (unit + integration)
make test-mcp           # Test MCP server functionality
make test-act           # Test GitHub Actions locally
make test-integration   # Run integration test suite

Running:

make run                # Start MCP server (HTTP mode)
make run-stdio          # Start MCP server (stdio mode)
make process-resume     # Run resume processing script

Setup:

make pipeline-setup     # Install dependencies
make integration-setup  # Verify scripts setup
make mcp-setup          # Configure MCP for Claude

๐Ÿ—๏ธ Project Structure

resume/
โ”œโ”€โ”€ README.md                     # This file
โ”œโ”€โ”€ Makefile                      # Build and test automation
โ”œโ”€โ”€ Dockerfile                    # Container definition
โ”œโ”€โ”€ go.mod, go.sum               # Go dependencies
โ”œโ”€โ”€ cmd/server/                   # MCP server entry point
โ”œโ”€โ”€ pkg/                         # Go packages
โ”‚   โ”œโ”€โ”€ mcp/                     # MCP protocol implementation
โ”‚   โ”œโ”€โ”€ processor/               # Resume processing logic
โ”‚   โ””โ”€โ”€ server/                  # HTTP server implementation
โ”œโ”€โ”€ scripts/                     # Processing scripts
โ”‚   โ”œโ”€โ”€ process_resume.sh        # Main processing script
โ”‚   โ”œโ”€โ”€ linkedin_template_generator.py
โ”‚   โ”œโ”€โ”€ requirements.txt
โ”‚   โ””โ”€โ”€ testing/                 # Test scripts
โ”‚       โ”œโ”€โ”€ README.md            # Testing documentation
โ”‚       โ”œโ”€โ”€ run-tests.sh         # Main test runner
โ”‚       โ”œโ”€โ”€ test-mcp.sh          # MCP server tests
โ”‚       โ””โ”€โ”€ test-act.sh          # ACT pipeline tests
โ”œโ”€โ”€ docs/                        # Documentation
โ”‚   โ”œโ”€โ”€ architecture/            # System architecture docs
โ”‚   โ”œโ”€โ”€ integration/             # Integration guides
โ”‚   โ”œโ”€โ”€ guides/                  # User guides
โ”‚   โ”œโ”€โ”€ testing/                 # Testing documentation
โ”‚   โ””โ”€โ”€ samples/                 # Example files
โ”œโ”€โ”€ local/                       # Local resume files
โ”œโ”€โ”€ .github/workflows/           # CI/CD pipeline
โ””โ”€โ”€ .vscode/                     # VS Code configuration

๐ŸŽฏ Output Formats

PDF Resume

  • LaTeX formatting via Pandoc
  • Multi-page support with pagination
  • Typography optimized for ATS systems

LinkedIn Templates

  • Headline: 220 character summary
  • About Section: 2600 character summary
  • Experience Entries: Formatted job descriptions
  • Skills Categories: Organized technical competencies
  • Clean text format (no emojis/special characters)

AI Analysis

  • Resume content extraction and analysis
  • Skills categorization and gap analysis
  • ATS optimization recommendations
  • Industry-specific customizations

๐Ÿ”ง Configuration

First-Time Setup

The repository includes template files for local configuration:

  1. Claude Desktop Configuration:
cp claude-desktop-config.json.template claude-desktop-config.json
# Edit paths to match your system
  1. ACT Configuration (for local GitHub Actions testing):
cp .actrc.template .actrc
# Customize as needed
  1. Secrets (for testing with tokens):
cp .secrets.template .secrets
# Add your GitHub token

MCP Server Configuration

After copying the template, update claude-desktop-config.json with your actual paths:

{
  "mcpServers": {
    "resume-processor": {
      "command": "/your/actual/path/to/resume-processor-mcp",
      "args": ["stdio", "--work-dir", "/your/actual/path/to/resume/directory"],
      "env": {
        "WORK_DIR": "/your/actual/path/to/resume/directory"
      }
    }
  }
}

Environment Variables

  • WORK_DIR: Working directory for resume processing
  • LOG_LEVEL: Logging level (debug, info, warn, error)
  • PORT: HTTP server port (default: 8080)

Note: Configuration files are in .gitignore to keep personal paths private.

๐Ÿš€ CI/CD Integration

GitHub Actions Workflow

  • Triggers: Push to resume files, manual dispatch
  • Processing: Automated PDF and LinkedIn template generation
  • Artifacts: 90-day retention with downloadable outputs
  • Branches: main, master, develop

Local Testing with ACT

# Install ACT
brew install act

# Test workflows locally
make test-act

# Full workflow test with Docker
make test-act-full

๐Ÿ“ž Support & Contact

Open Systems Lab
๐Ÿ“ง Email: info@opensystemslab.com
๐ŸŒ Resume processing solutions

Getting Help

  1. Check the documentation for your specific use case
  2. Review testing guides for troubleshooting
  3. Run make help for available commands
  4. Contact us for enterprise support

๐Ÿ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

Tooling by Open Systems Lab.


Resume processing with AI integration ๐ŸŽฏ

๐Ÿ”„ Recent Updates

  • โœ… MCP Integration: Added Claude AI integration via Model Context Protocol
  • โœ… Testing Framework: Test suite with ACT support
  • โœ… Documentation: Organized docs structure with guides
  • โœ… Project Cleanup: Streamlined structure with proper script organization
  • โœ… Makefile Enhancement: Added build and test targets

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured