Career Agent Workbench MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Career Agent Workbench MCP ServerFind me remote Python developer jobs posted this week."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Career Agent Workbench
Career Agent Workbench is a local, human-governed portfolio application for
researching public job postings, organizing application state, and producing
reviewable résumé variants. The reusable Python application stays public-safe;
profile material, tracker data, model credentials, and generated documents stay
in a separate private workspace selected through one ignored .env file.
The project combines a provider-neutral public-job core, SQLite-backed state, evidence-grounded résumé workflows, deterministic rendering and ATS diagnostics, command-line and Make composition, a small Flask tracker/action adapter, and a proportional FastMCP server. It does not authenticate to LinkedIn, access private member data, submit applications, or contact employers.
Terms
JOD — Job Opening Description: normalized source and prompt-ready job text.
MRO — Master Resume Object: structured, reusable evidence derived from the human-maintained résumé source.
ARO — Application Resume Object: a job-specific résumé mapping derived from the MRO.
CLO — Cover Letter Object: a separately reviewed, human-owned letter.
ATS — deterministic local diagnostics for a résumé/JOD pair.
Variant — an isolated
v1,v2, ormanualrésumé version whose selection is explicit and reversible.
Related MCP server: witness-mcp
Architecture: public code, private state
The repository contains application code, packaged templates, fictional demo
data, synthetic tests, and public documentation. An operator-owned workspace
contains the real profile, SQLite database, output, and temporary files. The
normal local configuration uses two non-secret selectors in the ignored root
.env:
CAREER_AGENT_WORKBENCH_WORKSPACE=../career-agent-workbench-ops
CAREER_AGENT_WORKBENCH_PRIVATE_ENV_FILE=../career-agent-workbench-ops/.envThe bootstrap file is read only to find the workspace and private dotenv. The
private file is then loaded with exact mode 0600 where supported.
Conventional members—including the explicit configured downloads/
destination—resolve beneath the workspace. Optional overrides are documented
in .env.example. Explicit CLI/API values remain highest
precedence, and no loader mutates the process environment.
public checkout private workspace
career_agent_workbench/ ---------> profile/
scripts/, skills/, Makefile output/tracking/applications.sqlite3
packaged templates/static output/, tmp/, and downloads/
fictional examples .blacklist and private .envEvidence and human review
The MRO is built from a bounded YAML file plus its concise source text. Tailored claims must remain grounded in that evidence. Refinement, manual review, and highlighting recheck the configured evidence digests and use conditional database writes so stale work cannot silently replace a newer variant.
The application workflow keeps v1, v2, and manual variants distinct.
Automatic preference is useful, but an explicit selection stays pinned until
the user changes it. External application submission is deliberately outside
the product boundary.
This diagram describes the governed workflow restored in 1.1.0, including
workflow-specific GLM routing and local compare/select controls. Model calls
remain explicit, evidence-grounded, and outside offline tests.
Fictional offline demo
The tracked demo source uses Avery Demo, Nimbus Quay Example Labs, reserved domains, and fixed synthetic dates. It contains no database or generated binary. Materialize it only into ignored, disposable local state:
make demoThat target creates one fictional tracker row, one selected v1 résumé object,
one cover-letter object, and readable YAML, JSON, and HTML examples under
tmp/demo-workspace. make demo invokes the Python demo materializer; the
materializer itself performs no network, provider, model, browser, or
child-process work.
For a normal development/operator checkout:
make install
make console-scripts
cp .env.example .env
make skill-link
make test
make lintEdit only the ignored .env to point at a private workspace. Do not place real
profile or application state in this repository. make install creates the
public .venv, installs the editable .[dev,browser] package, and explicitly
installs Playwright Chromium; it does not install Ollama or call a provider.
Current interfaces
Installed commands:
career-agent-workbench # help and version
career-agent-workbench-seed-jobs # public-job matching and atomic seed
career-agent-workbench-audit-jods # bounded local JOD audit
career-agent-workbench-refine-resume # governed v1-to-v2 refinement
career-agent-workbench-webapp # local Flask tracker/action adapter
career-agent-workbench-mcp # FastMCP stdio serverThe Makefile composes the reusable job-seeding, draft generation, ARO sync,
second-pass refinement, highlighting, manual-pass, local web, demo, test, and
lint workflows through public .venv executables. Omitted state variables emit
no repository-relative private paths; JOB_IDS=all selects eligible active
records where the target supports batch work.
The modular Flask adapter provides tracker filtering/lifecycle, Add/Seed and
bounded public-URL ingestion, allowlisted sequential resume actions with
progress, explicit ATS refresh, JOD and resume/CLO editing, variant comparison
and selection, inline/download artifacts, and explicit configured filesystem
copies. GET routes remain read-only. The MCP adapter exposes three
workspace-independent public job tools plus one lazy matching tool that uses
the same centrally resolved runtime. Public-only tool startup requires no
workspace.
Local website, skills, and MCP
make start-website # browser stays closed
make start-website OPEN_BROWSER=1 # explicit opt-in
make stop-website
make restart-websiteLifecycle state and the bounded server log live under ignored tmp/website/.
Only the exact recorded child PID is stopped; stale records do not trigger port
or process scans. make launch-website remains the foreground command.
make skill-link idempotently links exactly the five tracked public skills
into the configured CODEX_SKILLS_DIR (normally ~/.codex/skills) and refuses
to overwrite a non-symlink. The canonical MCP registration points to the
absolute public .venv/bin/career-agent-workbench-mcp executable. MCP stdio
arguments contain no private workspace values or tokens.
Synthetic presentation
The annotated PNGs below are synthetic documentation illustrations using the tracked fictional identity. They document the restored tracker, action, progress, JOD, résumé, variant, and cover-letter surfaces without exposing a private operator workspace.
Seed and review tracker state
![]()
The Add/Seed surface joins the existing guest provider and generic parser to atomic state seeding and the same app-scoped background action registry.
![]()
![]()

Inspect stored objects and variants





Operational limits
LinkedIn integration uses guest-accessible public pages only. There is no authentication, private-member access, or application submission.
Generic URL ingestion uses a bounded public HTTP seam and normalized parser; tests inject responses and never use the network.
Public providers and optional model runners can fail, rate-limit, or change shape. Failures remain bounded and content-hidden, and retries are finite.
No workflow contacts an employer. Human review and an external decision are required before any real application action.
SQLite state, profile evidence, generated documents, credentials, and model configuration are local and operator-owned.
This is a single-user portfolio application, not an enterprise deployment or multi-tenant service.
Development and validation
The public-safety checker scans tracked and distribution candidates without
printing matched content. CI is read-only and proportional. Version 1.1.0
remains a release candidate until the reviewed PR is merged normally and its
merge commit receives the separately authorized v1.1.0 tag.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityFmaintenanceEnables users to search for jobs, prefill applications using AI, and automate submissions across major platforms like Lever and Ashby directly from Claude or Cursor. It provides a full suite of tools for managing job queues, profile data, and resumes within a chat interface.Last updated33MIT
- Alicense-qualityCmaintenanceEnables to interact with job application workflows through MCP, allowing users to find jobs, generate non-trivial applications with proof-maps, and build offline dashboards, all without auto-submitting.Last updatedApache 2.0
- Alicense-qualityCmaintenanceAn MCP server that exposes job-search and application-management capabilities to compatible AI clients, enabling discovery of vacancies, drafting of tailored application materials, and coordinated human-approved submissions.Last updatedMIT
- Alicense-qualityAmaintenanceEnables AI agents to discover, filter, and track job openings based on the user's local resume, without uploading data to the cloud.Last updated5MIT
Related MCP Connectors
Securely search and manage workspace context files for AI agents and teams.
Cross-agent artifact workspace with provenance across Claude Code, Codex, Cursor, LangGraph.
Search AI-native jobs, inspect application forms, and fetch free interview-prep resources.
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/mperkhou/career-agent-workbench'
If you have feedback or need assistance with the MCP directory API, please join our Discord server