Skip to main content
Glama
rasmuslinkin

ActiveVacancies MCP Server

by rasmuslinkin

ActiveVacancies MCP Server

npm version License: MIT MCP Protocol Node.js Version CI Docker

The official Model Context Protocol (MCP) server for ActiveVacancies — connecting AI assistants directly to real-time, verified tech job listings, compensation percentiles, company ATS pipelines, and candidate skill matchmaking.


🌟 Key Features

  • 🔍 Real-Time Job Search: Query verified tech jobs by role, remote status (remote, hybrid, onsite), salary minimums, tech stack keywords, and locations.

  • 🎯 AI Resume Matchmaker: Score candidate resumes and tech skills against active vacancies with weighted ranking ($0$–$100%$) across skills, title relevance, remote preference, and compensation compatibility.

  • 💰 Salary Intelligence: Instant salary distribution analysis (25th percentile, median, 75th percentile, and ASCII compensation curve) across titles and geographies.

  • Zero-Stale Verification: Active direct-to-ATS links verified through continuous prober health checks.

  • 🤖 Pre-Packaged Agent Prompts: Built-in career-coach and salary-negotiator workflows that guide LLMs through structured job search and offer negotiation strategies.

  • 📦 Multi-Client Ready: Native 1-click support for Claude Desktop, Cursor IDE, Antigravity IDE, Claude Code CLI, and Docker.


Related MCP server: trackly-cli

🚀 Quick Start & Installation

Option 1: Claude Desktop

Add the server to your claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "activevacancies": {
      "command": "npx",
      "args": ["-y", "@activevacancies/mcp-server"]
    }
  }
}

Option 2: Cursor IDE

Add to .cursor/mcp.json or Settings > Features > MCP Servers:

{
  "mcpServers": {
    "activevacancies": {
      "command": "npx",
      "args": ["-y", "@activevacancies/mcp-server"]
    }
  }
}

Option 3: Claude Code CLI

Add directly to your Claude Code workspace:

claude mcp add activevacancies -- npx -y @activevacancies/mcp-server

Option 4: Docker Container

Run directly via GitHub Container Registry (GHCR):

docker run -i --rm ghcr.io/rasmuslinkin/activevacancies-mcp:latest

🛠️ MCP Tools Reference

1. search_jobs

Search active, verified tech job listings with expressive multi-attribute filters.

Parameter

Type

Required

Description

query

string

No

Keyword query (e.g., "staff backend engineer", "rust").

remote_status

enum

No

"remote", "hybrid", "onsite", or "any".

location

string

No

Location query (e.g., "San Francisco", "Europe", "Worldwide").

employment_type

string

No

"full-time", "contract", "part-time", "internship".

min_salary

number

No

Minimum annual base salary threshold.

currency

string

No

ISO currency code (defaults to "USD").

company_slug

string

No

Target company slug identifier.

sort_by

enum

No

"verified_desc" (default), "salary_desc", "date_desc".

limit

number

No

Results per page (default: 10, max: 50).

page

number

No

Pagination page index (1-based).


2. get_job_details

Retrieve complete role requirements, team details, verified salary ranges, and direct application links.

Parameter

Type

Required

Description

job_id_or_slug

string

Yes

Numeric job ID or URL slug.


3. match_resume_to_jobs

Match candidate CV skills, target role, and location preferences against live vacancies using deterministic weighted scoring.

Parameter

Type

Required

Description

candidate_skills

string[]

Yes

Array of technical skills (e.g. ["Go", "Kubernetes", "PostgreSQL"]).

target_title

string

No

Ideal role title (e.g. "Lead Infrastructure Engineer").

remote_status

enum

No

Candidate remote preference ("remote", "hybrid", "onsite").

preferred_location

string

No

Geographic constraint.

min_salary

number

No

Desired annual compensation floor.

currency

string

No

Currency code (defaults to "USD").

limit

number

No

Number of top matches to return (default: 5, max: 20).


4. get_salary_benchmarks

Query market compensation percentiles and ASCII distribution curves for technical titles.

Parameter

Type

Required

Description

role

string

Yes

Role title (e.g. "Staff Software Engineer").

location

string

No

Location filter (e.g. "United States", "Remote").

currency

string

No

ISO currency code (defaults to "USD").


5. list_companies

List actively hiring tech companies and ATS systems represented on ActiveVacancies.

Parameter

Type

Required

Description

limit

number

No

Maximum companies to retrieve (default: 25).

search

string

No

Optional company name filter.


6. report_expired_job

Submit community feedback on expired or filled listings to trigger immediate background verification.

Parameter

Type

Required

Description

job_id_or_slug

string

Yes

Target job identifier.

reason

string

No

Context regarding closure (e.g., "404 on ATS link").


📚 Resources & Prompts

Resources

  • jobs://feed/latest: Top 30 most recently verified jobs in markdown table format.

  • jobs://stats/market-summary: Real-time aggregated hiring metrics, remote percentages, and top hiring engineering departments.

Workflows & Prompts

  • career-coach: Initiates an interactive career advisory session to evaluate candidate preferences, run skill matchmaking, and generate customized application pitches.

  • salary-negotiator: Analyzes compensation offers against market percentiles (get_salary_benchmarks) and drafts tailored counter-offer negotiation scripts.


⚙️ Environment Configuration

Variable

Default

Description

ACTIVEVACANCIES_API_URL

https://activevacancies.com/api/v1

ActiveVacancies gateway API base endpoint.

ACTIVEVACANCIES_API_KEY

(None)

Optional API key for elevated rate limits.


💻 Local Development & Testing

# Clone the repository
git clone https://github.com/rasmuslinkin/activevacancies-mcp.git
cd activevacancies-mcp

# Install dependencies
npm ci

# Typecheck and build
npm run typecheck
npm run build

# Run Vitest test suite
npm test

# Run dogfood health check against local endpoint
ACTIVEVACANCIES_API_URL=http://localhost:3000/api/v1 npm run dogfood

📄 License

Distributed under the MIT License. Copyright © 2026 ActiveVacancies / Rasmus Linkin.

Available Tools

6 tools
get_job_detailsB

Retrieve full description markdown, comprehensive compensation structure, requirements, ATS source, and verified application link for a specific vacancy.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_id_or_slugYesUUID or unique URL slug of the job (e.g. 'senior-backend-engineer-stripe-8f3a9')

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. It states the tool 'retrieves' content, indicating a read-only operation, and lists what will be returned. However, it does not clarify the response structure, error behavior, or any prerequisites like authentication. It adds some behavioral context beyond the name, but not enough to fully illuminate side effects or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that begins with the action verb and then lists the retrieved fields in a compact enumerative style. It contains no filler or repetition, and the most important qualifier ('specific vacancy') appears early. It could arguably be split for readability, but it is still efficient and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple one-parameter read tool with no output schema or annotations. The description effectively communicates the tool's purpose and the main content retrieved, but it does not specify the response format (e.g., JSON object vs. plain text) or any error conditions. For a straightforward get-by-ID tool, the missing output details are a notable gap, though not critical given the tool's low complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the parameter description clearly explains the accepted formats (UUID or slug with an example). The tool description adds no additional semantics about the parameter beyond referring to a 'specific vacancy', so it does not improve on the schema. Baseline 3 applies because the schema fully documents the parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies a specific verb ('Retrieve') and a precise resource ('a specific vacancy'), and then enumerates the distinct content it returns (description markdown, compensation, requirements, ATS source, verified application link). This clearly separates it from siblings like search_jobs or list_companies, which operate at a different scope, so an agent can tell when to use this tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit guidance on when to use this tool versus any of the siblings. It implies the need for a job ID or slug through the parameter, but it does not state conditions such as 'use when you need full details for a known job' or 'do not use for searching'. There are no alternative recommendations or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_salary_benchmarksA

Aggregates verified compensation from active postings into 25th percentile, median, and 75th percentile market benchmarks with ASCII distribution visualization.

ParametersJSON Schema
NameRequiredDescriptionDefault
currencyNoISO currency code (default USD)USD
locationNoGeographic location or 'Remote' (e.g. 'Remote', 'San Francisco', 'Berlin')
role_titleYesJob title or specialization (e.g. 'Senior Backend Engineer', 'Staff Frontend')

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry behavioral disclosure, and it does: it specifies the data source (verified, active postings), the aggregation granularity (25th, median, 75th percentile), and the output style (ASCII distribution visualization). It does not discuss edge cases like missing data or invalid locations, so it does not earn full marks.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The entire description is one dense, information-rich sentence with no filler. Every element contributes to the tool's purpose, source, output, and presentation style.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description's mention of percentile benchmarks and ASCII visualization meaningfully covers the return format. The parameter schema covers inputs completely. The only gap is absence of behavior for empty or insufficient compensation data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents role_title, location, and currency. The description adds no parameter-specific meaning beyond the schema, which is acceptable but not extra credit territory.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific action and resource: it aggregates verified compensation into percentile benchmarks. It clearly differentiates this tool from the job-listing, company-listing, and resume-matching siblings by focusing on market-level compensation analytics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for compensation-market research but never states when to use it versus alternatives or provides any exclusion guidance. The intended use is reasonably inferable from the name and content, but explicit routing is absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_companiesB

Discover companies actively recruiting tech talent, categorized by ATS provider and open vacancy volume.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of companies to return (1-100, default 20)
queryNoFilter by company name or identifier
ats_providerNoFilter by ATS providerall
min_active_jobsNoMinimum active vacancies required

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not state that the operation is read-only, what the response contains, how 'actively recruiting' is determined, or how results are organized despite 'categorized' suggesting some grouping. The description offers purpose but not meaningful behavioral transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no filler and leads with the core discovery purpose. It is appropriately brief, though 'Discover' and 'categorized' are slightly imprecise for an API operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description leaves key operational details undocumented, such as the return format, pagination behavior, how open vacancy volume is represented, and whether the result is a flat list or grouped categories. The schema covers inputs, but the overall description is not complete enough for an agent to fully predict the tool's behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters and defaults. The description adds some framing by tying 'ATS provider' and 'open vacancy volume' to the tool's purpose, which aligns with ats_provider and min_active_jobs, but it does not add material meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the resource ('companies') and a specific discovery goal ('actively recruiting tech talent'), and differentiates the tool by naming ATS provider and open vacancy volume as the organizing dimensions. It is not as crisp as 'List companies...' but the intent is clear and separable from the job-oriented sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this tool is for finding companies rather than jobs, which helps with sibling selection, but it gives no explicit when-to-use guidance, no exclusions, and no comparison to alternatives like search_jobs or get_job_details. Usage is inferred rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

match_resume_to_jobsA

Matches candidate resume skills against live verified job listings with multi-factor scoring (skills 50%, title 25%, remote 15%, salary 10%) and ranked recommendations.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of top matched listings to return (1-25, default 10)
skillsYesKey technical skills extracted from candidate resume (e.g. ['TypeScript', 'PostgreSQL', 'Docker'])
currencyNoISO currency code for compensation comparison (default USD)USD
remote_onlyNoStrictly filter for 100% remote job opportunities
target_titleNoDesired role title (e.g. 'Backend Architect', 'Staff Frontend')
min_desired_salaryNoMinimum desired annual salary for compensation scoring
years_of_experienceNoTotal years of relevant professional experience

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden, and it performs well by disclosing the exact scoring weights (skills 50%, title 25%, remote 15%, salary 10%) — genuinely useful behavioral detail that reveals how inputs influence ranking. However, it doesn't disclose behavior on no-match results, staleness of listings, or what the ranked output structure looks like.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence that front-loads the primary purpose and packs the scoring rubric efficiently without fluff. Slightly dense in the middle (the weight list), but every element earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The scoring rubric covers skills, title, remote, and salary, but years_of_experience and currency are params that get no explanation in the description and no output schema compensates. The 'ranked recommendations' return format is never described, leaving a moderate gap for a scoring tool with no annotations and no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, setting a baseline of 3. The description adds value beyond the schema by explaining how title, remote, and salary parameters contribute proportionally to the score, and by defining the role of skills as the dominant factor. This links parameters to their ranking impact, which the schema alone doesn't convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (matches), resource (candidate resume skills vs live verified job listings), and the deliverable (ranked recommendations) with explicit scoring weights. The multi-factor scoring rubric makes it clearly distinct from the generic search_jobs sibling, so an agent can tell them apart without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to choose this tool over search_jobs, which is the most likely confused sibling. The description implies resume-based matching but never states exclusions, prerequisites, or selection criteria — e.g., 'use this when you have extracted skills from a resume; use search_jobs for general keyword queries.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

report_expired_jobA

Report a dead link or expired job posting. Triggers immediate HTTP prober verification in the ActiveVacancies backend.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoReason for reporting the job listingclosed_by_employer
commentsNoOptional context or notes regarding the dead link
job_id_or_slugYesUUID or unique URL slug of the job to report

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does disclose a meaningful behavior—triggering immediate HTTP prober verification—which helps the agent anticipate a side effect. However, it omits other behavioral context such as authentication needs, idempotency, or what happens after verification.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no wasted words. The core purpose is front-loaded, and the behavioral note about the HTTP prober is placed immediately after, making it easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 3-parameter report action with a complete schema and no output schema, the description covers the key context: what is being reported and the immediate consequence. It is slightly incomplete because it does not mention usage boundaries or post-call expectations, but the overall package is adequate for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and each parameter already has a meaningful description, including the reason enum and the job_id_or_slug format. The tool description adds no additional parameter-level meaning, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the action ('Report'), the target ('dead link or expired job posting'), and a distinctive side effect ('Triggers immediate HTTP prober verification'). It is easily distinguishable from sibling tools like search_jobs or get_job_details, which are read-only searches.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool: when a job link is dead or a posting is expired. However, it does not explicitly state when not to use it or mention alternatives, leaving the agent to infer the boundary from sibling names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_jobsB

Search active, verified tech job postings across Greenhouse, Lever, Ashby, and Workable with multi-parameter filtering.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1-indexed)
limitNoNumber of listings to return (1-50, default 15)
queryNoKeywords matching job title, tech stack, or description (e.g. 'Senior TypeScript Engineer', 'Staff Kubernetes')
sort_byNoSorting strategy (recent or salary)recent
currencyNoISO currency code (e.g. USD, EUR, GBP)USD
locationNoCity, country, or region (e.g. 'Berlin', 'United States', 'EMEA')
min_salaryNoMinimum base annual salary in specified currency
company_slugNoFilter by specific company identifier (e.g. 'stripe', 'vercel')
remote_statusNoRemote work policy filterany
employment_typeNoEmployment type filterany

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It adds one meaningful fact: results are pre-filtered to 'active, verified' postings, which is genuinely useful and not derivable from the schema. However, it omits pagination behavior (page/limit exist in the schema but response pagination is unmentioned), rate limits, and any note about the response format. Partial coverage of behavior only.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with zero wasted words. The core action and resource are front-loaded, the ATS sources are named compactly, and the filtering capability is stated last. Every clause earns its place; nothing is redundant or padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a complex tool with 10 parameters, multi-source aggregation, no output schema, and no annotations, yet the description is minimal. It does not explain that results are paginated, what the response structure looks like (critical given there is no output schema), whether salary sorting requires a matching currency, or how filters combine. For a tool of this complexity, the description falls well short of what an agent needs to use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with rich parameter descriptions and concrete examples ('Senior TypeScript Engineer', 'stripe', 'Berlin'). The description itself adds nothing about parameters beyond the phrase 'multi-parameter filtering,' so the baseline of 3 applies since the schema is doing the heavy lifting. No compensation is needed because the schema already documents all parameters well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Search') and resource ('active, verified tech job postings'), and names the four aggregated ATS sources (Greenhouse, Lever, Ashby, Workable). This clearly differentiates it from siblings like get_job_details (single-job detail lookup), list_companies, and match_resume_to_jobs (resume-driven matching), so an agent can tell this is the general multi-source job search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers no guidance on when to use this tool versus its siblings. It never mentions that get_job_details should follow a search result to fetch full details, that list_companies provides the company_slug values, or that match_resume_to_jobs is the alternative when a resume is available. The agent is left to infer routing entirely from the schema and tool names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv1.0.0
    • First observedget_job_details
    • First observedget_salary_benchmarks
    • First observedlist_companies
    • First observedmatch_resume_to_jobs
    • First observedreport_expired_job
    • First observedsearch_jobs

TDQS

A3.9/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a distinct job-search workflow: searching, viewing details, listing companies, reporting expired postings, resume matching, and salary benchmarking. There is no meaningful overlap between tool responsibilities.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern (search_jobs, get_job_details, list_companies, report_expired_job, match_resume_to_jobs, get_salary_benchmarks). The naming style is uniform and predictable.

Tool Count5/5

Six tools is a well-scoped set for a job vacancy and market-data server. Each tool provides a meaningful and non-redundant capability without overloading the interface.

Completeness5/5

The tool surface covers the core candidate workflow: discovery, details, company exploration, resume matching, salary insights, and a feedback loop for expired jobs. No obvious critical gaps exist for the stated purpose.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Enables searching over 1 million enriched job listings from 20,000+ companies directly from MCP-compatible AI tools. Provides tools for job search, company profiles, and AI-powered similar job recommendations with real-time data updates.
    4
    86 npm
    2
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server for job search and application tracking, enabling AI agents to search jobs, get details, manage applications, and find contacts across 128K+ jobs and 1,900+ companies.
    497 npm
    3
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to recommend jobs, parse candidate profiles, compute semantic skill match scores, and filter opportunities by location through standardized MCP tools.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables MCP-compatible AI assistants to securely access a user's job-search account, letting them search and save jobs, analyze job fit, and retrieve job queue and profile summaries with links back to the web app.
    MIT