MCP Resume Server
Fetches resume data from a GitHub gist to provide professional background context to LLMs.
š¤ AI Resume - Interactive Chat Interface
Chat with Michael Wybraniec's AI-powered resume using open-source LLMs - Deploy for FREE!
⨠Now built with a clean, modular architecture for maximum maintainability and scalability.
š Features
- š Interactive Resume Chat - Ask any question about Michael's background and experience
- š Free Deployment - Deploy on Streamlit Cloud for free
- š¤ Multiple LLM Providers - OpenRouter (free models), OpenAI, Ollama (local)
- š¬ Modern Chat UI - Beautiful Streamlit interface with quick action buttons
- š± Mobile Responsive - Works perfectly on all devices
- ā” Real-time - Instant responses with intelligent context retrieval
- š PDF Download - Generate and download professional CV
- šÆ Smart Matching - Job description analysis for recruiter insights
- ā System Status - Real-time status indicator shows when all systems are ready
- š§ Auto-Configuration - Smart setup flow with contextual help
- šļø Purpose-Based Architecture - Professional project organization with logical file grouping
šÆ Quick Start (Local)
# 1. Clone the repository
git clone <your-repo-url>
cd mcp-resume
# 2. Install dependencies
pip install -r requirements.txt
# 3. Run the application
streamlit run app.py
# 4. Open http://localhost:8501
# 5. Get a free API key from OpenRouter.ai
# 6. Add your API key in the sidebar and start chatting!
š Deploy to Streamlit Cloud (FREE!)
1. Push to GitHub
git add .
git commit -m "Deploy AI Resume to Streamlit Cloud"
git push origin main
2. Deploy on Streamlit Cloud
- Go to share.streamlit.io
- Connect your GitHub account
- Select your repository
- Set main file path:
app.py
- Click "Deploy"!
3. Configure Secrets (Optional)
For enhanced LLM providers, add secrets in Streamlit Cloud dashboard:
[secrets]
OPENROUTER_API_KEY = "your_openrouter_api_key_here"
OPENAI_API_KEY = "your_openai_api_key_here"
4. Your app is live! š
You'll get a URL like: https://your-username-mcp-resume-app-xyz.streamlit.app
š¤ LLM Provider Setup
Option 1: OpenRouter (Recommended)
- Free models available!
- Sign up at OpenRouter
- Get API key and add via the sidebar or Streamlit secrets
- Use free models like
meta-llama/llama-3.1-8b-instruct:free
Option 2: Ollama (Local Development)
# Install Ollama
brew install ollama # macOS
# or visit https://ollama.ai for other platforms
# Start Ollama
ollama serve
# Install models
ollama pull llama3.2
ollama pull llama3.1
Option 3: OpenAI (Paid)
- Get API key from OpenAI
- Add to Streamlit secrets or enter in the app
šļø Architecture
Purpose-Based Organization:
mcp-resume/
āāā š app.py # Main entry point (Streamlit-ready)
āāā š requirements.txt # Dependencies
ā
āāā š§ core/ # Foundation & Configuration
ā āāā config.py # Settings & constants
ā āāā models.py # Data models & types
ā
āāā āļø services/ # Business Logic & Integrations
ā āāā resume_service.py # Resume data handling
ā āāā llm_providers.py # AI/LLM integrations
ā āāā document_generator.py # PDF generation
ā āāā fallback_resume.py # Data fallback service
ā
āāā šØ ui/ # User Interface Layer
ā āāā ui_components.py # UI components & styling
ā āāā session_manager.py # Session state management
ā
āāā š data/ # Data Files
ā āāā resume.json
ā āāā michael_wybraniec_resume.json
ā āāā CV_Michael_Wybraniec_15_Jun_2025.pdf
ā
āāā šØ utils/ # Utility Scripts
āāā create_gist.py # GitHub Gist utilities
Data Flow:
āāāāāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāāāāā
ā UI Components āāāāāŗā Resume Service āāāāāŗā JSON Resume ā
ā (Chat Interface)ā ā (Data Processing)ā ā Data ā
āāāāāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāāāāā
ā
ā¼
āāāāāāāāāāāāāāāāāāā
ā LLM Providers ā
ā ⢠OpenRouter ā
ā ⢠Ollama ā
ā ⢠OpenAI ā
āāāāāāāāāāāāāāāāāāā
Module Responsibilities:
š§ Core Layer
core/config.py
- Configuration, constants, and settingscore/models.py
- Data models and type definitions
šØ UI Layer
ui/ui_components.py
- UI components, styling, and modalsui/session_manager.py
- Session state management and initialization
āļø Services Layer
services/resume_service.py
- Resume data retrieval and context generationservices/llm_providers.py
- LLM provider implementations and unified chat interfaceservices/document_generator.py
- PDF generation and export functionalityservices/fallback_resume.py
- Resume data service and context management
š Data Layer
data/
- Resume JSON files and PDF assetsutils/
- Utility scripts and helper functions
š” Usage Examples
š¬ Chat Examples:
- "Tell me about Michael's work experience"
- "What are his technical skills?"
- "Summarize his background for a recruiter"
- "Find projects involving JavaScript"
- "What's his experience with AI and machine learning?"
- "How many years of Python experience does he have?"
- "Has he worked with AI/ML technologies?"
- "What industries has he worked in?"
ā” Quick Actions:
- š¤ Summarize Profile - Get comprehensive candidate overview
- š Years Experience - View career progression timeline
- š ļø Technical Skills - Analyze technical competencies
- šÆ Smart Match - Job fit analysis with match scores
- š Download CV - Professional PDF resume
šÆ For Recruiters & HR:
- "Is this candidate suitable for a senior developer role?"
- "What's their leadership experience?"
- "Do they have experience with cloud platforms?"
- "Rate their frontend vs backend skills"
- "Analyze fit for this job description..." (paste job description)
š§ Features & Functionality
š± Modern Chat Interface
- Clean, professional design with expanded sidebar
- Quick action buttons for instant insights
- Real-time system status indicator
- Message timestamps and processing indicators
- Mobile-responsive design
šÆ Smart Context Retrieval
- Intelligent context selection based on user questions
- Focused responses with relevant resume sections
- Experience, skills, projects, and achievements matching
- Job description analysis capabilities
š Professional CV Generation
- Generate PDF CV on demand
- Clean, professional formatting
- Download directly from the interface
š§ Enhanced User Experience
- System Status: Real-time indicator showing "All Systems Ready!" when configured
- Help & Tips: Comprehensive setup guide and sample questions
- Quick Actions: Organized, expandable panel for common tasks
- Auto-Setup: Smart configuration flow with contextual guidance
š Deployment Options
1. Streamlit Cloud (Recommended - Free) ā
- Free hosting for public repositories
- Automatic deployments from GitHub
- Built-in secrets management
- Perfect for demos and portfolios
2. Local Development
pip install -r requirements.txt
streamlit run app.py
3. Other Cloud Platforms
- Railway, Render, Heroku
- Use provided
requirements.txt
andruntime.txt
- Set startup command:
streamlit run app.py --server.port $PORT
š Project Structure
mcp-resume/
āāā š app.py # Main entry point (Streamlit-ready)
āāā š requirements.txt # Python dependencies
āāā š runtime.txt # Python version for deployment
āāā š README.md # Documentation
āāā š DEPLOYMENT.md # Deployment guide
āāā š§ secrets.toml.example # Example secrets configuration
ā
āāā š§ core/ # Foundation & Configuration
ā āāā __init__.py
ā āāā config.py # Settings & constants
ā āāā models.py # Data models & types
ā
āāā āļø services/ # Business Logic & Integrations
ā āāā __init__.py
ā āāā resume_service.py # Resume data handling
ā āāā llm_providers.py # AI/LLM integrations
ā āāā document_generator.py # PDF generation
ā āāā fallback_resume.py # Data fallback service
ā
āāā šØ ui/ # User Interface Layer
ā āāā __init__.py
ā āāā ui_components.py # UI components & styling
ā āāā session_manager.py # Session state management
ā
āāā š data/ # Data Files
ā āāā resume.json # Primary resume data
ā āāā michael_wybraniec_resume.json # Backup resume data
ā āāā CV_Michael_Wybraniec_15_Jun_2025.pdf # Professional CV
ā
āāā šØ utils/ # Utility Scripts
ā āāā __init__.py
ā āāā create_gist.py # GitHub Gist utilities
ā
āāā š venv/ # Virtual environment
šļø Purpose-Based Architecture Benefits
š§ For Developers:
- Easy Navigation: Find files by purpose (UI, services, data, etc.)
- Maintainable: Clear separation of concerns across directories
- Scalable: Add new features without touching existing modules
- Testable: Each layer can be tested independently
- Professional: Industry-standard project organization
š For Features:
- New LLM Providers: Extend
services/llm_providers.py
- UI Changes: Modify
ui/ui_components.py
- Export Formats: Add to
services/document_generator.py
- Data Sources: Extend
services/resume_service.py
- Configuration: Update
core/config.py
š Organization Highlights:
- Streamlit Compatible:
app.py
stays in root for deployment - Logical Grouping: Files organized by functionality, not arbitrarily
- Clean Root: No clutter - only essential files visible
- Python Packages: Proper
__init__.py
files for clean imports
Architecture Highlights:
- 88% reduction in main file complexity (1,500 ā 180 lines)
- 8 focused modules instead of monolithic structure
- Clear dependencies and import relationships
- Single responsibility principle throughout
š Getting Started
-
Clone and Install
git clone <your-repo> cd mcp-resume pip install -r requirements.txt
-
Run Locally
streamlit run app.py
-
Configure & Chat
- Navigate to
http://localhost:8501
- Get a free API key from OpenRouter.ai
- Add your API key in the sidebar
- When you see "ā All Systems Ready!" you're good to go!
- Start chatting with the AI resume!
- Navigate to
šØ Customization
Adding Your Own Resume
- Replace
michael_wybraniec_resume.json
with your resume data - Update the
resume_service.py
if needed - Modify branding in
ui_components.py
header section - Replace the CV PDF file with your own
LLM Configuration
- Add your preferred LLM providers in
llm_providers.py
- Configure API keys via sidebar or Streamlit secrets
- Customize system prompts in the provider implementations
UI Customization
- Modify the header branding and colors in
ui_components.py
- Update Quick Action buttons and modal content
- Customize the Help & Tips content in the sidebar
- Adjust the responsive CSS styling
Adding New Features
- New Export Format: Extend
document_generator.py
- Additional Data Sources: Modify
resume_service.py
- New UI Components: Add to
ui_components.py
- Custom Session Logic: Extend
session_manager.py
š Contact & Support
- Developer: Michael Wybraniec
- Website: One-Front.com
- LinkedIn: Connect with Michael
- Custom AI Solutions: Contact through One-Front for enterprise implementations
š ļø Recent Updates
- ā Modular Architecture: Refactored into 8 focused modules for better maintainability
- šÆ 88% Code Reduction: Main app now just 180 lines vs original 1,500
- š Improved Documentation: Clear module responsibilities and architecture overview
- š§ Enhanced Testability: Each module can be tested independently
- š Better Scalability: Easy to add features without touching existing code
- š± Maintained All Features: Full functionality preserved in cleaner structure
Ready to revolutionize resume interactions with a maintainable, scalable architecture? š
Deploy your AI-powered resume today - now with professional-grade code organization!
Related Servers
Paylocity
A server to fetch data from Paylocity API endpoints.
Cursor Admin
Monitor team productivity, usage, and spending for AI assistants using the Cursor Admin API.
Zapier
Connect your AI Agents to 8,000 apps instantly.
Google Sheets
A server that connects to the Google Sheets API, enabling AI-driven spreadsheet automation and data manipulation.
PDF Tools
A server for manipulating PDF files, including merging, page extraction, and searching.
Umbraco MCP
Interact with the Umbraco CMS Management API for administrative tasks.
Outlook Meetings Scheduler
Schedule meetings in Microsoft Outlook using the Microsoft Graph API.
Remote macOS Use
An open-source MCP server that allows AI to fully control a remote macOS system.
Basecamp by CData
A read-only MCP server by CData that allows LLMs to query live Basecamp data.
Teamwork MCP
Connects to the Teamwork API to interact with projects and tasks.