AI Job Application Agent MCP Server
π― AI Job Application Agent
An AI-powered assistant that manages a full job search end-to-end: track applications, generate tailored cover letters, analyse jobβCV fit, ingest and classify recruiter emails, and prepare for interviews β all from one local Streamlit app.
π§ͺ New β CV & Role Finder: upload a CV β get recommended roles to target β screen a job for fit. Works offline (local matching) or bring-your-own API key.
streamlit run ui/cv_finder.pyβ this is the first slice of a planned multi-user version.
Built as a personal project to explore multi-provider LLM orchestration, the Model Context Protocol (MCP), and a clean data layer around a real-world workflow.
Privacy note: this repo ships no personal data. Your applications, cover letters, CV and API keys live in git-ignored files. A one-command demo seeds realistic fake data so you can try it immediately.
β¨ Features
Multi-provider AI β Groq, Google Gemini, OpenAI, with an offline keyword fallback and an
automode that picks the best available provider.Cover-letter generation tailored to a job description + your CV summary.
JobβCV fit analysis β score, matched skills, gaps, recommendation.
Application tracker β SQLite-backed, with a full change-history audit trail.
Email intelligence β scan a Gmail inbox, classify messages (rejection / interview / offer / scheduling) with an LLM, and auto-update statuses.
Interview prep β practice questions, company research, feedback tracking.
Calendar export β interviews to
.ics.MCP server β exposes the agent's tools over the Model Context Protocol.
Streamlit UI β Dashboard, Applications (table / cards / kanban), Email, CV & Insights, Settings.
ποΈ Architecture
ββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββββββββββββββββ
β Streamlit ββββββΆβ ApplicationAgent ββββββΆβ LLM providers β
β UI (ui/) β β (agent/) β β groq Β· gemini Β· openai Β· localβ
βββββββ¬βββββββ ββββββββ¬ββββββββββββ βββββββββββββββββββββββββββββββββ
β β
βΌ βΌ
ββββββββββββββ ββββββββββββββββββββ ββββββββββββββββ
β tools/ β β db/ (SQLAlchemy) ββββββΆβ SQLite β
β emailΒ·jobs β β modelsΒ·session β β applications β
ββββββββββββββ ββββββββββββββββββββ ββββββββββββββββ
β²
β
ββββββββββββββ
β mcp_server/β Model Context Protocol tools
ββββββββββββββπ Quick start
# 1. Create the environment (Python 3.13)
python3.13 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
# 2. Configure secrets
cp .env.example .env # then add your API keys (all optional; "local" needs none)
# 3a. Try it with demo data (recommended first run)
python scripts/seed_demo_data.py
APP_DB_PATH=applications_demo.db streamlit run ui/app.py
# 3b. β¦or run against your own data
cp data/cv_summary.example.txt data/cv_summary.txt # then edit with your CV
./run_ui.shApp opens at http://localhost:8501.
βοΈ Configuration
All configuration is via environment variables (see .env.example):
Variable | Purpose |
| LLM providers (any subset) |
|
|
| optional Gmail integration (use an App Password) |
| SQLite file to use (defaults to |
π Project layout
agent/ Multi-provider AI agent (cover letters, fit analysis)
ui/ Streamlit app β page functions + components
tools/ Email tracking/analysis, job scraping & search
db/ SQLAlchemy models, session, migrations
mcp_server/ MCP server exposing agent tools
scripts/ Utilities (e.g. seed_demo_data.py)
cli/ Command-line interface
data/ Local data (git-ignored; *.example.* files are shipped)π οΈ Tech stack
Python 3.13 Β· Streamlit Β· SQLAlchemy + SQLite Β· OpenAI / Groq / Google Gemini SDKs Β· Model Context Protocol Β· pandas Β· scikit-learn
πΊοΈ Roadmap
Unify provider logic behind a single
LLMProviderinterfaceStructured logging (replace prints) +
pytesttest suite + CIMigrate
google-generativeaiβgoogle-genaiDockerfile + Compose for one-command run and deployment
Semantic (embedding-based) jobβCV fit scoring
π License
MIT Β© 2026 Philipp Goetting
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/DrSchmerz/ai-job-application-agent'
If you have feedback or need assistance with the MCP directory API, please join our Discord server