job-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| AUTO_APPLY_ENABLED | No | Fail-closed master switch for autonomous application execution. | false |
| MAX_DAILY_APPLICATIONS | No | Maximum number of daily applications allowed by safety guardrails. |
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": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| set_operation_modeA | Switch between supervised and autonomous operation modes. In autonomous mode, the server signals the LLM client that it may chain
read-only and safe-action tools without per-tool user confirmation.
Only |
| list_configured_sourcesB | Return configured source metadata only, not observed provider health. This path does not use the aggregator, provider health, browser or model. A full MCP transport startup still runs the existing lifespan separately. |
| list_job_sourcesC | List all registered job sources, their capabilities, and current health status. |
| get_job_matchesA | Fetch matched job listings from registered sources (HireMeTech, Comeet, AllJobs, LinkedIn, Workday, Eightfold, DirectTech). Uses cached job listings unless cache is stale or force_refresh is True. Optionally filters by specific source IDs (e.g. ['hiremetech', 'comeet', 'alljobs']). When cv_path is provided, extracts candidate profile and dynamically populates queries, seniority exclusions, and scores. |
| filter_jobs_by_preferencesB | Filter and rank cached job listings based on tech stack, location, salary, or CV. |
| bookmark_jobC | Save or bookmark a job listing by its ID. |
| delete_jobC | Dismiss or hide a job listing from view. |
| auto_apply_jobA | Step 1: Inspect job application form and generate preview without submitting. Uses HybridApplicationDispatcher to map form fields, evaluate safety guardrails,
and stage the application for subsequent confirmation via |
| confirm_auto_applyA | Step 2: Confirm and execute job application submission. Executes application submission through HybridApplicationDispatcher and records an immutable audit record in the ApplicationLedger. Requires |
| get_application_historyB | Retrieve historical job application submissions and outcomes from the persistent audit ledger. |
| mark_job_as_appliedA | Manually record a job as applied in the persistent ledger and dismiss it from cache. This ensures the job will never reappear in future job scout runs. |
| calibrate_selectorsA | Test, discover, and calibrate DOM selectors against the live page. Tests all registered selectors against the live DOM, heuristically discovers alternative selectors if layout changes have occurred, and persists verified selectors into the dynamic selector registry. |
| search_linkedin_jobsB | Search LinkedIn jobs using the high-speed guest seeMoreJobPostings endpoint. |
| get_linkedin_job_detailsA | Retrieve full job details for a specific LinkedIn job posting. |
| notify_new_jobsB | Scan aggregated jobs, filter unseen postings via JobTracker, and dispatch alerts. |
| test_notifierA | Verify notifier connectivity, health check, and dispatch a test alert message. |
| run_job_scoutA | Execute autonomous end-to-end multi-source job scouting pipeline. Discovers available sources, aggregates job listings, evaluates CV match scores against the candidate profile, automatically bookmarks high-affinity positions, stages/submits applications via HybridApplicationDispatcher if enabled, and returns structured tracking metrics. |
| job_searchA | Search normalized jobs across enabled TechJobMCP sources. Returns opaque refs that can be passed to job_fetch. Provider knowledge is not required. |
| job_fetchA | Fetch one canonical job using an opaque ref returned by job_search. Returns factual retrieval status only. |
| discover_companiesA | Identify supported ATS portals from company names or career URLs using bounded deterministic discovery. Returns evidence and optional validated registry configuration. Does not persist configuration. |
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 20 tools
Several tools overlap in the job-discovery space: job_search, get_job_matches, filter_jobs_by_preferences, and run_job_scout all retrieve/aggregate jobs, while list_configured_sources vs list_job_sources and notify_new_jobs vs run_job_scout blur boundaries. Descriptions do help differentiate them (config vs health, one-shot search vs full pipeline), but an agent can still misselect among the search/aggregation tools.
Nearly all tools use snake_case verb_noun phrasing (list_job_sources, mark_job_as_applied, get_application_history), which is predictable and readable. The only deviations are job_search and job_fetch, which lead with the noun instead of the verb, but this is minor.
At 20 tools the surface is on the heavy side for a job-scouting server, and a few tools (job_search/job_fetch vs get_job_matches, notify_new_jobs vs run_job_scout) feel redundant. Each maps to some functionality, but the count is borderline rather than tight.
Coverage is strong: search, fetch, filter, bookmark, dismiss, two-step apply with audit history, notifications, full scout pipeline, source listing, and ATS discovery are all present. Minor gaps like no explicit preference/config update or source-management CRUD remain, but core lifecycles are covered.