job-hunt-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| JOBHUNT_DATA_FILE | No | Path to the single local JSON file where the job hunt log is stored. Defaults to data/joblog.json. | data/joblog.json |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
Use list_applications to see everything, what_is_due_this_week for the weekly plan, find_stale_applications for anything that needs a nudge, and draft_follow_up to write a gentle follow-up email from the stored notes. Add or update records with the add_application / update_application / set_status / add_contact / add_interview_feedback tools. All data stays in a local JSON file: data/joblog.json (override with JOBHUNT_DATA_FILE).
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| add_applicationC | Record a new job application. Dates use YYYY-MM-DD. |
| list_applicationsB | List applications as chat-ready plain text; optionally filter by status. |
| update_applicationB | Update one field of an application (company, role, url, notes, next_action, next_action_due, status). |
| set_statusC | Set the status. When it flips to applied/interviewing/offer/closed, contact dates update automatically. |
| add_contactC | Add a contact person to an application (recruiter, hiring manager...). |
| add_interview_feedbackC | Record interview feedback: the interview date (YYYY-MM-DD) plus your notes. |
| what_is_due_this_weekB | Applications whose next action falls in the next |
| find_stale_applicationsA | Applications with no recent contact and no upcoming next-action; the nudge list. |
| draft_follow_upA | Draft a gentle follow-up email for one application, using the stored notes and contacts. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
Most tools target a clear resource+action, and the three query tools (list_applications, what_is_due_this_week, find_stale_applications) have distinct intents. The main overlap is update_application accepting a `status` field while set_status also exists with automatic contact-date side effects, which could lead an agent to pick the wrong one and silently skip that logic.
The dominant pattern is verb_noun (add_application, update_application, add_contact, add_interview_feedback, find_stale_applications, draft_follow_up). Minor deviations: set_status omits the domain noun used elsewhere, and what_is_due_this_week breaks the pattern with a question-phrase style, but overall it stays readable and predictable.
Nine tools is well-scoped for a personal job-application tracker: core CRUD, contact logging, and three targeted views/actions. Each tool covers a distinct workflow step without padding.
Creation, update, listing, and due/stale views are covered, but there is no delete/archive for applications or contacts and no way to read back stored interview feedback once recorded. Agents can work around some gaps via status changes but cannot remove or retrieve certain records.