mcpbeat

jobctl MCP Server

io.github.DmytroRybka/jobctl
answering

jobctl is answering right now. Last checked 1 min ago. It exposes 10 tools.

Job application tracker for developers - AI agents write over MCP, you review in a dashboard.

Uptime history 41 hours of history
41 hours agonow
100.0%
Uptime 24h
92 of 92 checks
10
Tools
read from the server
233 ms
Response time
average over 24h
open, no key
Access
streamable-http

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 1 min ago.

run in your terminal
claude mcp add jobctl --transport http https://app.jobctl.app/mcp
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "jobctl": {
      "url": "https://app.jobctl.app/mcp"
    }
  }
}
~/.codex/config.toml
[mcp_servers.jobctl]
url = "https://app.jobctl.app/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "jobctl": {
      "url": "https://app.jobctl.app/mcp"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "jobctl": {
      "url": "https://app.jobctl.app/mcp"
    }
  }
}

Available tools 10

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

application
add_application
Track a new job application. Pass either a single `raw` line — `add_application({raw: "Bosch, Tech Lead, prio A, due friday, remote, via LinkedIn"})` — or structured fields (`company` and `role` required then). Returns the created application and possible-duplicate warnings; if duplicates are listed, tell the user instead of creating again.
get_application
Full detail of one application: all fields, contacts, recent timeline events, and whether a company analysis is attached (fetch it via the dashboard or attach_analysis to replace).
update_application
Update fields of an application (get the id from list_applications). Status changes are logged to the timeline automatically. Example: `update_application({id: "…", status: "interview", next_action: "prepare system design", next_action_due: "2026-07-20"})`.
attach
attach_analysis
Attach a markdown company analysis (research you produced) to an application. Single document per application — a new call REPLACES the previous one. Max 100000 bytes (~100 KB) of utf-8. The user reads it in the dashboard, e.g. before an interview. Example: `attach_analysis({application_id: "…", markdown: "# Bosch\n\n## Culture…"})`.
attach_file
Attach or replace a file on an application so the user sees it in the dashboard: a CV/resume (kind: 'cv') or a cover letter (kind: 'cover_letter'). Pass the file bytes as base64 in data_base64. One file per (application, kind) - a new call REPLACES the previous one. Max ~5 MB; pdf/doc/docx/txt/md (MIME is inferred from the filename if you omit it). Call this whenever you generate a tailored CV or cover letter for an application. Example: `attach_file({application_id: "…", kind: "cv", filename: "CV_Cursor.pdf", data_base64: "JVBERi0…"})`.
applications
list_applications
List job applications. Filter by view (active = default working set, archive = rejected/withdrawn/no-response), status list, priority, or free-text search in company/role. Example: `list_applications({view: "active"})`, `list_applications({q: "bosch"})`.
due
get_due
What is burning today: applications with next_action_due today or overdue. Call this when the user asks "what should I do today?" about their job search.
log
log_interview
Log an interview for an application (max 10 per application): when it takes place, its status (planned or done), who attends (each with an optional profile link), related links (prep materials the company sent, meeting URL), and a short recap of what was discussed. Also keeps the application's next-interview date in sync. Example: `log_interview({application_id: "…", scheduled_at: "2026-07-20T14:00:00+02:00", status: "planned", attendees: [{name: "Anna Weber (HR)", url: "https://linkedin.com/in/annaweber"}], links: [{label: "Prep materials", url: "https://company.com/interview-prep"}], recap: "System design round"})`.
note
add_note
Append a free-text note to an application timeline — recruiter call summaries, interview instructions, pasted messages. Multiline markdown is fine. Example: `add_note({application_id: "…", text: "Recruiter: team of 5, on-call rotation, offer range 85-95k"})`.
planned
get_planned
What is actually SCHEDULED: interviews with their time, attendees and meeting links, plus the actions falling due, for today, tomorrow, or the next seven days. Use this whenever the user asks what is planned, what the day or week looks like, or before proposing a time to anyone — get_due only knows action deadlines and is blind to booked interviews. Example: `get_planned({range: "tomorrow"})`.

Endpoints

URLTransportStateLatencyChecked
https://app.jobctl.app/mcp streamable-http answering 233 ms 1 min ago

jobctl — questions

Answers built from our own checks of this server.

What can jobctl do?
It exposes 10 tools, read directly from the server on our last check. Among them: add_application, add_note, attach_analysis, attach_file, get_application, get_due and 4 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
What is jobctl mostly used for?
Its tools cluster around application and attach. That is what this server is built to work with — the grouping comes from the actual tool names, not from a category we assigned.
Is jobctl working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 92 of 92 checks got a reply (100.0%), average response time 233 ms. The bar chart above shows every period we have measured.
How do I connect jobctl?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does jobctl need an API key?
No. jobctl completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 10 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is jobctl?
It answers our handshake in 233 ms on average, which is faster than 56% of all working MCP servers we measure. The comparison comes from our own checks across the whole registry, every 15 minutes.