mcpforwork
# mcpfor.work
Open-source, MCP-first job-search copilot — any sector, any country. Self-hostable for free; hosted at a flat $5/mo.
**Status: pre-alpha.** Self-host works end-to-end (profile → hunt → briefs →
supervised apply); hosted is not launched yet.
## Quickstart (self-host, zero account)
```bash
uvx --from mcpforwork mcpforwork init # creates ~/.mcpforwork/mcpforwork.db
```
Add the connector to Claude Code / Desktop (`.mcp.json`):
```json
{ "mcpServers": { "mcpforwork": { "command": "uvx",
"args": ["--from", "mcpforwork", "mcpforwork-mcp"] } } }
```
Then, in your client: `/setup` (build your profile, < 3 min) → `/hunt`
(browser-verified job-portal searches; UK, Spain, US, DE + remote boards) →
`/review` → `/apply` (honest drafts + coverage check; **you** click Submit —
the copilot never auto-submits). Zero server-side LLM calls, ever.
## What makes it different
- **The LLM is the client.** All intelligence runs inside your own Claude or ChatGPT/Codex subscription connected to this MCP server. We never make server-side LLM calls, so the hosted plan is infrastructure, not token resale.
- **Graduated autonomy, consent-based.** Default is supervised: the copilot prepares, you review and submit. Autopilot is explicit opt-in, policy-governed, and only ever runs in your own browser session.
- **Open-core.** The full product self-hosts on SQLite with no account. Hosted adds convenience: remote MCP connector, web dashboard, sync, backups.
- **Never fabricate.** Generation briefs carry a facts inventory — drafts may only claim what your profile proves.
- **Sector- and country-agnostic by data.** Job-site knowledge ships as versioned, community-contributable packs, not code releases.
- **You own your data.** Export and delete built in.
## Architecture
Pragmatic hexagonal (ports & adapters) over a modular monolith. The full product
specification lives in [docs/PRODUCT_PLAN.md](docs/PRODUCT_PLAN.md); contributor
rules in [AGENTS.md](AGENTS.md).
## Development
```bash
uv sync
uv run pytest
uv run ruff format --check . && uv run ruff check .
uv run lint-imports
```
## License
Apache-2.0
TDQS
Scored across 41 tools
Most tools have clearly distinct purposes, but a few pairs like hunt_plan/source_playbook and parse_cv/preview_url_import could be confused without careful reading. However, the detailed descriptions effectively disambiguate them, and the application workflow tools each have specific roles.
The majority of tools follow a verb_noun pattern (e.g., get_profile, create_profile, submit_asset), but some read-only data tools use noun phrases (e.g., pipeline_stats, autopilot_queue, ats_coverage_check, profile_gaps) and a few use less standard verbs (preview, hunt, check, request). Overall, the naming is readable and mostly consistent.
With 41 tools, the surface is very large and exceeds the threshold for 'too many'. The domain is broad, but the granularity exposes many fine-grained workflow steps (e.g., confirm_submitted, record_outcome) that could be grouped into higher-level tools, making the set overwhelming for agents.
The tool surface covers the full lifecycle: profile creation/import, job hunting, match management, drafting, application execution, and GDPR data rights. Minor gaps exist, such as no dedicated tool to get an application's current status and no update/delete for achievements, but core workflows are well covered.