Skip to main content
Glama
README.md
# jobctl - job application tracker for developers (MCP)

[![jobctl-claude MCP server](https://glama.ai/mcp/servers/DmytroRybka/jobctl-claude/badges/score.svg)](https://glama.ai/mcp/servers/DmytroRybka/jobctl-claude)

AI agents keep your job search organized; you review and plan in a clean dashboard.

- **Agents write** over a remote MCP server (streamable HTTP, OAuth 2.1) at `https://app.jobctl.app/mcp`
- **Humans read** at [jobctl.app](https://jobctl.app): pipeline board, analytics, interview timeline, CV/cover attachments
- Published in the official [MCP Registry](https://registry.modelcontextprotocol.io) as `io.github.DmytroRybka/jobctl` and listed as a [Glama connector](https://glama.ai/mcp/connectors/io.github.DmytroRybka/jobctl) (Healthy, tool quality A)

This repo ships the **Claude Code plugin/skill**, plus a thin **stdio bridge** (`jobctl-mcp`) for clients that prefer local stdio servers.

## Quick start (Claude Code)

```
claude mcp add --transport http jobctl https://app.jobctl.app/mcp \
  --header "Authorization: Bearer jc_..."          # token: app.jobctl.app/settings

/plugin marketplace add DmytroRybka/jobctl-claude
/plugin install jobctl@jobctl
```

Then just talk: "I applied to Bosch as Tech Lead, prio A, due friday" - Claude keeps the tracker current while you interview.

## Other MCP clients

**Remote (recommended)** - any client with streamable HTTP support connects to `https://app.jobctl.app/mcp`. OAuth 2.1 with dynamic client registration is supported; static bearer tokens (`jc_...`) work everywhere.

**Local stdio server** - this repo ships `server.mjs`, a standalone MCP server (stdio) exposing the same 10 tools, backed by the jobctl.app API:

```
git clone https://github.com/DmytroRybka/jobctl-claude && cd jobctl-claude
npm install
JOBCTL_TOKEN=jc_... node server.mjs
```

or via Docker:

```
docker build -t jobctl-mcp . && docker run -i --rm -e JOBCTL_TOKEN=jc_... jobctl-mcp
```

The server starts and lists tools without a token (introspection); every tool call requires `JOBCTL_TOKEN` (create one at app.jobctl.app/settings).

## Tools (10)

| Tool | What it does |
|---|---|
| `add_application` | Create an application from structured fields or a raw string ("Bosch, Tech Lead, prio A, due friday") with deterministic parsing and duplicate detection |
| `list_applications` | Filter by status, priority, text query and saved views |
| `get_application` | Full detail: timeline, contacts, interviews, attachments |
| `update_application` | Status, priority, salary, next action and more |
| `add_note` | Append a note to the application timeline |
| `log_interview` | Schedule or debrief interviews with attendees and links |
| `get_due` | Overdue and upcoming next actions |
| `get_planned` | Agenda for today / tomorrow / this week |
| `attach_analysis` | Attach a single replaceable company-analysis markdown (max 100 kB) |
| `attach_file` | Attach CV or cover letter files (base64) |

## Privacy and safety

- Your data lives in your account only; full JSON export and GDPR account deletion are built in
- The API is deterministic - no LLM calls server-side; your agent is the AI layer
- Every change is an auditable event with an actor tag (agent / human / system)

## License

[MIT](LICENSE)

TDQS

A4.3/5.0

Scored across 10 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: get_due and get_planned handle different timeframes, add_application creates, list_applications filters, get_application provides detail, update_application modifies, add_note appends notes, log_interview manages interviews, attach_analysis and attach_file handle documents. No overlaps.

Naming Consistency5/5

All tool names follow the verb_noun pattern in snake_case (e.g., add_application, get_due, attach_file), maintaining a consistent and predictable structure.

Tool Count5/5

With 10 tools, the set is well-scoped for a job application tracker, covering creation, listing, retrieval, updates, notes, interviews, files, and analysis without being overwhelming.

Completeness4/5

The tool set covers core CRUD (add, list, get, update) and adds notes, interviews, files, and analysis. Missing delete capabilities for applications, notes, or interviews, but these are minor gaps given the focus on tracking.

Maintenance

ActivityStale
ResponsivenessNo issues