Job Assistant MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_HOST | No | HTTP bind address inside the container. Default: 0.0.0.0 in Docker. | 0.0.0.0 |
| MCP_PORT | No | HTTP port inside the container. Default: 8000 in Docker. | 8000 |
| MCP_TRANSPORT | No | Transport mode: stdio or streamable-http. Default: streamable-http in docker-compose.yml. | streamable-http |
| JOB_ASSISTANT_DB | No | SQLite file. Default: /data/jobs.db in Docker. | /data/jobs.db |
| JOB_ASSISTANT_HTTP_TIMEOUT | No | Seconds before a job-board request times out. Default: 20. | 20 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
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 |
|---|---|
| search_jobsA | Search live job boards concurrently. If a profile is stored, each result carries a 0-100 fit score and results are sorted best-first; otherwise newest-first. |
| get_jobA | Full details (description, tags, application status) of a job from search results. |
| match_job_to_profileB | Compare a posting with the stored profile: score, matched/missing skills, seniority fit and which of your projects are most relevant to mention. |
| save_jobB | Add a job to your application tracker with status 'saved'. |
| update_statusB | Move a job through the pipeline; every change is kept in its history. |
| list_applicationsB | Your tracked jobs (optionally filtered by status) plus counts per pipeline stage. |
| set_profileB | Create/update your profile. Only the fields you pass are changed. |
| get_profileA | Return the stored profile (empty if none has been set yet). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| find_best_jobs | Find fresh remote jobs and recommend the best fits. |
| prepare_application | Draft a tailored cover letter and talking points for a saved job. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| pipeline | Application tracker snapshot. |
| profile_resource | The stored candidate profile. |
TDQS
Scored across 8 tools
Each tool targets a distinct resource and action: profile (get/set), jobs (search/get/save/match), and applications (update_status/list_applications). The fit-scoring overlap between search_jobs and match_job_to_profile is intentional and clearly separated by scope. An agent can reliably pick the right tool for any task.
All tools use a consistent snake_case verb_noun pattern (get_profile, search_jobs, save_job, list_applications, set_profile, update_status). Naming is predictable and self-describing throughout.
8 tools is well-scoped for a job-assistant domain covering profile management, job discovery, matching, and application tracking. No redundant or filler tools; each earns its place.
Covers the core lifecycle: profile get/set, job search/get/match/save, and application tracking with status updates and counts. Minor gaps exist (no way to remove/unsave a job or delete a profile), but agents can work around them.