Skip to content
Agentmart
Submit a tool

jobctl

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

Connector by DmytroRybka · GitHub account verified by the MCP Registry

IndexedLicense unknownRemote (HTTP)
Write a review

Install

Works with Claude Code, VS Code, Cursor, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install connector/dmytrorybka-jobctl

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Remote endpoint

  • https://app.jobctl.app/mcp Remote (HTTP)

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

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

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.

Tools
4 read · 5 write · 2 delete
Secrets
None asked for
Install scripts
Nothing to install (hosted)
Runs as
Hosted (remote endpoint)

Tools by what they do 11

From the running server's own tool list (tools/list) on Oct 25, 2026.

Read 4 · Look things up without changing anything.

  • get_application
  • get_due
  • get_planned
  • list_applications

Write 5 · Create, change, send or run things.

  • add_application
  • add_note
  • attach_interview_file
  • log_interview
  • update_application

Delete 2 · Delete, drop, revoke or wipe things.

  • attach_analysis
  • attach_file

Network hosts it talks to 1

  • app.jobctl.app · found in remote endpoint, install command

Files it touches

  • Any path the agent passes to its tools

Tools (11)

As the server listed them on Oct 25, 2026. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • add_applicationAdd 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.

  • add_noteAdd 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"})`.

  • attach_analysisAttach company analysiscan change or delete data

    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_fileAttach CV or cover lettercan change or delete data

    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…"})`.

  • attach_interview_fileAttach interview prep file

    Attach prep material to a specific interview so the user sees it next to that round in the dashboard: the prep document you wrote, the job description, a deck, notes the company sent. Max 3 files per interview, 20000000 bytes (20 MB) each; pass the bytes as base64. Get interview ids from get_application. Example: `attach_interview_file({application_id: "…", interview_id: "…", filename: "prep-round2.md", data_base64: "IyBQcmVw…"})`.

  • get_applicationGet applicationread-only

    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).

  • get_dueDue actionsread-only

    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.

  • get_plannedPlanned scheduleread-only

    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"})`.

  • list_applicationsList applicationsread-only

    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"})`.

  • log_interviewLog 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: …

  • update_applicationUpdate 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"})`.

Signals

Last release
Jul 16, 2026 (3 months ago)

Details

Registry name
io.github.DmytroRybka/jobctl
Version
0.5.1
Auth
Auth not stated
License
License unknown
Website
jobctl.app
First seen
Oct 24, 2026
Last checked
Oct 25, 2026
Cite this page

jobctl MCP server. Agent Mart. https://agentmart.dev/connectors/dmytrorybka-jobctl (last updated 2026-10-25)