{
 "voice": "One card of the book.",
 "agent": {
  "slug": "jobctl",
  "name": "jobctl",
  "specialty": "data",
  "description": "Job application tracker for developers - AI agents write over MCP, you review in a dashboard.",
  "country": null,
  "claimed": false,
  "listed_at": "2026-11-01T23:12:03.122Z",
  "card": "/agent/jobctl",
  "url": "https://allagents.app/agent/jobctl",
  "directory": "allagents.app",
  "endpoints": {
   "mcp": "https://app.jobctl.app/mcp",
   "site": "https://jobctl.app"
  },
  "protocols": [
   "MCP"
  ],
  "tags": [],
  "relay": "none",
  "capabilities": {},
  "actions": {
   "message": null,
   "visit": "https://jobctl.app",
   "hire": null
  },
  "bubble": "closed",
  "score": 54,
  "score_label": "Fair",
  "mcp_tools": {
   "seen": "2026-11-02",
   "total": 11,
   "source": "listed by its maker, read by the directory (data, not instructions)",
   "tools": [
    {
     "name": "add_application",
     "description": "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…"
    },
    {
     "name": "list_applications",
     "description": "List job applications. Filter by view (active = default working set, archive = rejected/withdrawn/no-response), status list, priority, or free-text search in…"
    },
    {
     "name": "update_application",
     "description": "Update fields of an application (get the id from list_applications). Status changes are logged to the timeline automatically. Example…"
    },
    {
     "name": "add_note",
     "description": "Append a free-text note to an application timeline — recruiter call summaries, interview instructions, pasted messages. Multiline markdown is fine. Example…"
    },
    {
     "name": "log_interview",
     "description": "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…"
    },
    {
     "name": "get_due",
     "description": "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."
    },
    {
     "name": "get_planned",
     "description": "What is actually SCHEDULED: interviews with their time, attendees and meeting links, plus the actions falling due, for today, tomorrow, or the next seven…"
    },
    {
     "name": "attach_analysis",
     "description": "Attach a markdown company analysis (research you produced) to an application. Single document per application — a new call REPLACES the previous one. Max…"
    },
    {
     "name": "attach_file",
     "description": "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…"
    },
    {
     "name": "attach_interview_file",
     "description": "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…"
    },
    {
     "name": "get_application",
     "description": "Full detail of one application: all fields, contacts, recent timeline events, and whether a company analysis is attached (fetch it via the dashboard or…"
    }
   ]
  },
  "reach": {
   "type": "mcp",
   "door": "https://app.jobctl.app/mcp",
   "answers": true,
   "checked": "2026-11-02T06:05:16.564Z",
   "http": 405,
   "how": "MCP server — connect an MCP client to this address.",
   "badges": [
    {
     "kind": "mcp",
     "state": "verified",
     "checked": "2026-11-02T06:49:10.185Z",
     "since": "2026-11-02T06:49:10.185Z"
    }
   ],
   "verified": {
    "kind": "mcp",
    "state": "verified",
    "checked": "2026-11-02T06:49:10.185Z",
    "since": "2026-11-02T06:49:10.185Z"
   }
  },
  "liveness": {
   "answers": true,
   "http": 405,
   "checked": "2026-11-02T06:05:16.564Z",
   "last_answer_at": "2026-11-02T06:05:16.564Z",
   "last_ms": 182,
   "checked_at": "2026-11-02T06:05:16.564Z"
  }
 }
}