Skip to main content
Glama
houtini-ai

YubHub MCP Server

by houtini-ai

Quick start

You'll need a YubHub account first. Head to your account page to grab your User ID and API key (required).

Claude Desktop

Open your Claude Desktop config file:

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

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

Add this block inside "mcpServers":

{
  "mcpServers": {
    "yubhub": {
      "command": "npx",
      "args": ["-y", "@houtini/yubhub"],
      "env": {
        "YUBHUB_USER_ID": "your-user-id",
        "YUBHUB_API_KEY": "yh_your_api_key_here"
      }
    }
  }
}

Restart Claude Desktop. That's it. Ask Claude to "list my YubHub feeds" and you should see your data come back.

Cursor / VS Code

Same idea. Drop the config into your MCP settings and point it at npx -y @houtini/yubhub with the same env vars.

Related MCP server: extrapify

What it does

YubHub watches careers pages. Point it at a company's jobs URL, and it will discover every open role, scrape the listings, enrich them with AI (title normalisation, category tagging, salary extraction, company research) and publish them as an XML feed.

This MCP server gives you full control over that pipeline from inside your AI assistant. Create feeds, trigger runs, check on jobs, view dashboards, browse market stats. No browser tab required.

The pipeline

Careers page URL
  → Discovery (ATS API / sitemap / crawl)
    → Scraping (page content extraction)
      → Enrichment (AI structuring + company research)
        → XML feed (ready for job boards, aggregators, your own site)

Supported ATS platforms include Greenhouse, Lever, Workable, Workday, Oracle HCM, SmartRecruiters, Ashby, Pinpoint, Phenom and more. For platforms with public APIs (Greenhouse, Lever, Workable, Pinpoint), discovery skips scraping entirely and goes straight to enrichment.

Tools

21 tools across four areas.

Feed management

Tool

What it does

list_feeds

Get all your job feeds

create_feed

Create a feed from a careers page URL

get_feed

Feed details including run history and job counts

show_feed_dashboard

Interactive visual dashboard for a single feed

show_all_feeds_dashboard

Overview dashboard with all feeds, stats and XML links

trigger_feed_run

Start job discovery now

update_feed

Change feed name, tag or source URLs

delete_feed

Remove a feed and all its jobs

delete_jobs

Clear all jobs for a feed (keeps the feed)

Scheduling

Tool

What it does

get_feed_schedule

Check auto-run schedule and next run time

enable_feed_auto_run

Turn on automatic runs (default: weekly)

disable_feed_auto_run

Turn off automatic runs

Jobs

Tool

What it does

list_jobs

List jobs for a feed, optionally filtered by status

get_job

Full job details: title, company, location, salary, skills, description

retry_failed_jobs

Re-queue failed jobs for another attempt

Market statistics

Tool

What it does

get_stats_overview

High-level numbers: total jobs, companies, active feeds

get_top_companies

Companies ranked by job count with recent activity

get_categories

Job counts by sector with experience level breakdown

get_top_titles

Most common job titles by volume

get_title_trends

Titles gaining or losing demand (2-week comparison)

get_work_arrangements

Remote vs hybrid vs onsite distribution

get_experience_levels

Entry, mid, senior level distribution

Environment variables

Variable

Required

Description

YUBHUB_USER_ID

Yes

Your YubHub user ID

YUBHUB_API_KEY

Yes

API key from your account page

YUBHUB_ADMIN_API_URL

No

API endpoint (defaults to https://api.yubhub.co)

Example conversation

You: Create a feed for Mercedes F1 careers at https://www.mercedesamgf1.com/careers

Claude: Done. Feed created with ID feed_abc123. Want me to trigger a run?

You: Yes please.

Claude: Discovery started. I'll check back in a couple of minutes.

You: How did it go?

Claude: Found 47 jobs. 42 enriched successfully, 5 still processing. Here's a breakdown by category...

Tip: For best results, provide an example job URL when creating a feed. This helps YubHub identify the URL pattern for job listings on that site, significantly improving discovery accuracy. You can pass it as the optional exampleJobUrl parameter in create_feed.

Development

git clone https://github.com/houtini-ai/yubhub.git
cd yubhub
npm install
npm run build

The server compiles TypeScript to dist/ and runs as a stdio MCP server. Source lives in src/:

src/
├── index.ts                # MCP server, tool definitions and handlers
├── api-client.ts           # REST client for the YubHub API
├── dashboard-generator.ts  # React-based interactive dashboard builder
└── types.ts                # TypeScript interfaces

Running locally

YUBHUB_USER_ID=your-id YUBHUB_API_KEY=yh_your_key node dist/index.js

Or point your MCP client at the built output instead of using npx.

Contributing

Issues and pull requests welcome. If you're adding a tool or changing behaviour, please test against a real YubHub account.

License

MIT — see LICENSE for details.

Available Tools

22 tools
create_feedC

Create a new job feed for monitoring career pages

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFeed name (e.g., "Mercedes-AMG F1")
careersUrlYesCareers page URL to monitor
exampleJobUrlNoExample job posting URL (optional)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states the basic action. It doesn't disclose behavioral traits like permissions needed, whether creation is idempotent, rate limits, or what happens on success/failure. For a creation tool with zero annotation coverage, this is inadequate.

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 a single, efficient sentence that directly states the tool's purpose without any fluff or redundancy. It's appropriately sized and front-loaded.

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?

For a creation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what a 'job feed' entails, what monitoring involves, or what the tool returns. Given the complexity implied by sibling tools and lack of structured data, more context is needed.

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 fully documents all parameters. The description doesn't add any meaning beyond what's in the schema (e.g., it doesn't explain relationships between parameters or usage nuances). Baseline 3 is appropriate when schema does the heavy lifting.

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 clearly states the action ('Create') and resource ('new job feed for monitoring career pages'), providing a specific purpose. However, it doesn't explicitly differentiate from sibling tools like 'update_feed' or 'list_feeds', which would require a 5.

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 provides no guidance on when to use this tool versus alternatives like 'update_feed' or 'list_feeds', nor does it mention prerequisites or exclusions. It only states what the tool does, not when it's appropriate.

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

delete_feedA

Delete a feed and all associated jobs. This action cannot be undone.

ParametersJSON Schema
NameRequiredDescriptionDefault
feedIdYesFeed ID to delete

TDQS

A4.2/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 of behavioral disclosure. It effectively communicates the destructive nature ('This action cannot be undone') and the cascading effect on associated jobs. It doesn't cover potential error conditions, permissions needed, or rate limits, but provides crucial safety warnings.

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?

Two sentences with zero waste: the first states the action and scope, the second provides critical safety warning. Every word earns its place, and the most important information (irreversible deletion) is appropriately emphasized.

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 destructive tool with no annotations and no output schema, the description does well by warning about irreversible consequences and cascading effects. It could be more complete by mentioning error cases (e.g., invalid feedId) or confirming deletion success, but covers the essential behavioral risks adequately.

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 the single parameter 'feedId' clearly documented in the schema. The description doesn't add any parameter-specific information beyond what the schema provides, so it meets the baseline for high schema coverage without compensating value.

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 states the specific action ('Delete') and resource ('a feed and all associated jobs'), distinguishing it from siblings like delete_jobs (which only deletes jobs) and list_feeds/get_feed (which are read-only). It precisely communicates the tool's destructive scope.

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

Usage Guidelines4/5

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

The description provides clear context about when to use this tool (to delete a feed and its jobs) and implicitly when not to use it (if you want to delete only jobs, use delete_jobs). However, it doesn't explicitly name alternatives or mention prerequisites like feed existence checks, keeping it from a perfect score.

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

delete_jobsA

Delete all jobs for a specific feed. This action cannot be undone.

ParametersJSON Schema
NameRequiredDescriptionDefault
feedIdYesFeed ID whose jobs should be deleted

TDQS

A4.2/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 of behavioral disclosure. It clearly states this is a destructive operation ('This action cannot be undone'), which is crucial context for a deletion tool. However, it doesn't mention authentication requirements, rate limits, error conditions, or what happens to associated data, leaving some behavioral aspects unspecified.

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?

Two sentences with zero waste - the first states the purpose, the second provides critical behavioral warning. The description is appropriately sized and front-loaded with the core functionality, making it highly efficient.

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 destructive operation with no annotations and no output schema, the description does well by warning about irreversibility. However, it doesn't explain what 'jobs' are in this context, what happens after deletion, or whether there are prerequisites (like feed status). Given the complexity of a deletion tool, slightly more context would be beneficial.

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 the single parameter 'feedId' fully documented in the schema. The description adds no additional parameter semantics beyond what's already in the schema (it doesn't explain feedId format, validation rules, or examples). Baseline 3 is appropriate when the schema does the heavy lifting.

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 states the specific action ('Delete') and target resource ('all jobs for a specific feed'), distinguishing it from sibling tools like delete_feed (which deletes the feed itself) or list_jobs (which only lists jobs). The verb+resource combination is precise and unambiguous.

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

Usage Guidelines4/5

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

The description provides clear context about when to use this tool (to delete jobs for a specific feed), but doesn't explicitly mention when NOT to use it or name alternatives like retry_failed_jobs (for selective job management) or delete_feed (for deleting the entire feed). The irreversible warning implies caution but doesn't specify exclusions.

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

disable_feed_auto_runA

Disable automatic runs for a feed. The feed will require manual triggering after this. Use this when you want full control over when a feed runs.

ParametersJSON Schema
NameRequiredDescriptionDefault
feedIdYesFeed ID to disable auto-run for

TDQS

A4.2/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 discloses the behavioral effect ('The feed will require manual triggering after this'), which is useful context. However, it lacks details on permissions, reversibility (e.g., via 'enable_feed_auto_run'), or error conditions, leaving gaps for a mutation tool.

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, front-loaded with the core purpose and followed by usage guidance. Every sentence adds value without redundancy, making it efficient and well-structured.

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 mutation tool with no annotations and no output schema, the description is reasonably complete—it explains the action, outcome, and usage context. However, it could improve by mentioning related tools (e.g., 'enable_feed_auto_run' for reversal) or potential side effects, given the complexity of disabling automation.

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 the single parameter 'feedId' well-documented in the schema. The description adds no additional parameter details beyond what the schema provides, so it meets the baseline for high schema coverage without compensating value.

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 states the specific action ('Disable automatic runs') and the resource ('for a feed'), distinguishing it from sibling tools like 'enable_feed_auto_run' and 'trigger_feed_run'. It precisely defines the tool's function without being tautological.

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

Usage Guidelines5/5

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

The description explicitly states when to use this tool ('Use this when you want full control over when a feed runs') and implies an alternative (manual triggering via 'trigger_feed_run'). It provides clear context for its application versus other feed management tools.

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

enable_feed_auto_runA

Enable automatic weekly runs for a feed. The scheduler worker runs hourly and will automatically trigger this feed at the configured interval (default: 7 days for weekly runs). Great for keeping job feeds updated without manual intervention.

ParametersJSON Schema
NameRequiredDescriptionDefault
feedIdYesFeed ID to enable auto-run for
intervalDaysNoRun interval in days (default: 7 for weekly, max: 168 for ~monthly)

TDQS

A4/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. It discloses key behavioral traits: the tool enables automatic scheduling, mentions the scheduler runs hourly, specifies the default interval (7 days), and describes the purpose ('keeping job feeds updated without manual intervention'). However, it doesn't cover potential side effects, error conditions, or what happens if the feed doesn't exist.

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 efficiently structured in two sentences: the first states the core purpose and key behavioral details (scheduler frequency, default interval), and the second provides usage context. Every sentence adds value with zero wasted words, making it easy to parse.

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 tool with 2 parameters, 100% schema coverage, and no output schema, the description provides adequate context: it explains what the tool does, why to use it, and key behavioral aspects. However, it doesn't mention what the tool returns (success/failure indicators) or error handling, which would be helpful given the lack of output schema.

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 fully documents both parameters. The description adds minimal value beyond the schema: it mentions 'weekly runs' and 'configured interval' which aligns with the schema's 'intervalDays' parameter, but doesn't provide additional semantic context or usage examples. The baseline of 3 is appropriate when the schema does the heavy lifting.

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 states the specific action ('Enable automatic weekly runs') on a specific resource ('for a feed'), distinguishing it from sibling tools like 'disable_feed_auto_run' (opposite action) and 'trigger_feed_run' (manual vs. automatic). The verb 'enable' is precise and the resource 'feed' is unambiguous.

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

Usage Guidelines4/5

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

The description provides clear context about when to use this tool ('Great for keeping job feeds updated without manual intervention') and mentions the scheduler's hourly operation and default interval. However, it doesn't explicitly state when NOT to use it or compare it to alternatives like 'trigger_feed_run' for one-time execution.

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

get_categoriesB

Get job counts by category/sector with experience level breakdown (entry, mid, senior).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/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 states the tool retrieves aggregated job data but doesn't cover critical aspects like whether it's read-only (implied by 'Get'), rate limits, authentication needs, data freshness, or error handling. For a tool with zero annotation coverage, this leaves significant gaps in understanding its operational behavior.

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 a single, efficient sentence that front-loads the core functionality ('Get job counts by category/sector') and adds necessary detail ('with experience level breakdown (entry, mid, senior)'). There is no wasted verbiage, making it highly concise and well-structured for quick comprehension.

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?

Given the tool's complexity (aggregating job data with breakdowns), no annotations, and no output schema, the description is minimally adequate. It specifies the data retrieved but lacks details on format, pagination, or error cases. For a read operation with no parameters, it meets basic needs but doesn't fully address potential agent uncertainties about behavior or output structure.

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?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description adds value by explaining what data is retrieved ('job counts by category/sector with experience level breakdown'), which clarifies the output semantics beyond the empty schema. This compensates appropriately for the lack of parameters.

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 clearly states the tool's purpose: 'Get job counts by category/sector with experience level breakdown (entry, mid, senior).' It specifies the verb ('Get'), resource ('job counts'), and granularity ('by category/sector' with 'experience level breakdown'). However, it doesn't explicitly differentiate from siblings like 'get_stats_overview' or 'get_experience_levels', which might overlap in scope, preventing a perfect score.

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 provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, exclusions, or compare it to siblings such as 'get_stats_overview' or 'get_experience_levels', which could offer similar or complementary data. Without this context, the agent must infer usage from the purpose alone.

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

get_experience_levelsB

Get experience level distribution (entry, mid, senior, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/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 states this is a 'Get' operation, implying it's likely read-only, but doesn't confirm this or describe any other behavioral traits like authentication needs, rate limits, or what the return format looks like (e.g., structured data, counts). For a tool with zero annotation coverage, this is a significant gap in transparency.

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 extremely concise—a single sentence that directly states the tool's purpose with no wasted words. It's front-loaded with the core action ('Get experience level distribution') and includes helpful examples (entry, mid, senior). Every part of the sentence earns its place by clarifying what 'experience level distribution' means.

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?

Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is adequate but has clear gaps. It explains what the tool does but doesn't cover behavioral aspects like return format or usage context relative to siblings. For a basic read operation, it meets minimum viability but lacks completeness for optimal agent guidance.

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?

The tool has 0 parameters, and schema description coverage is 100%, so there's no need for parameter documentation in the description. The description appropriately doesn't mention parameters, focusing instead on the tool's purpose. A baseline of 4 is applied for zero-parameter tools, as the description efficiently avoids unnecessary detail.

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 clearly states the tool's purpose: 'Get experience level distribution' with specific categories listed (entry, mid, senior, etc.). It uses a specific verb ('Get') and identifies the resource ('experience level distribution'), making it immediately understandable. However, it doesn't explicitly differentiate this from sibling tools like 'get_categories' or 'get_stats_overview', which prevents a perfect score.

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 provides no guidance on when to use this tool versus alternatives. With sibling tools like 'get_categories' and 'get_stats_overview' that might overlap in data retrieval, there's no indication of when this specific distribution data is needed or what distinguishes it from other get_* tools. This leaves the agent to guess based on tool names alone.

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

get_feedC

Get detailed information about a specific feed including statistics

ParametersJSON Schema
NameRequiredDescriptionDefault
feedIdYesFeed ID to retrieve

TDQS

C2.9/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. While 'Get' implies a read operation, it doesn't specify whether this requires authentication, has rate limits, what format the statistics are returned in, or if it's idempotent. The mention of 'statistics' adds some context but lacks operational details.

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 a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action and includes a useful qualifier ('including statistics'), making it appropriately sized and zero waste.

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?

Given the lack of annotations and output schema, the description is incomplete for a tool that retrieves 'detailed information' and 'statistics'. It doesn't explain what the return values include, how statistics are structured, or any error conditions, leaving significant gaps for an AI agent to understand the tool's behavior fully.

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?

The input schema has 100% description coverage, with 'feedId' clearly documented. The description adds no additional parameter semantics beyond what the schema provides, such as format examples or constraints. With high schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate but doesn't need to.

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 clearly states the verb 'Get' and resource 'feed' with the qualifier 'detailed information including statistics', which provides a specific purpose. However, it doesn't explicitly distinguish this from sibling tools like 'list_feeds' or 'show_feed_dashboard', which likely serve different purposes.

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 provides no guidance on when to use this tool versus alternatives. With siblings like 'list_feeds' (likely for listing multiple feeds) and 'show_feed_dashboard' (possibly for visual data), there's no indication of when this detailed retrieval is preferred or what prerequisites might exist.

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

get_feed_scheduleA

Get the automatic run schedule configuration for a feed. Shows if auto-run is enabled, the run interval, and when the next automatic run is scheduled.

ParametersJSON Schema
NameRequiredDescriptionDefault
feedIdYesFeed ID to check schedule for

TDQS

A3.5/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 full burden. It discloses the tool's read-only nature implicitly ('Get', 'Shows'), but lacks details on permissions, error handling, rate limits, or response format. For a tool with no annotation coverage, this is insufficient behavioral context.

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, front-loaded with the core purpose and followed by specific details. Every sentence adds value without redundancy, making it efficient and well-structured.

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?

Given no annotations, no output schema, and a simple input schema, the description is adequate for a read-only tool but lacks completeness. It covers what the tool returns but not how (e.g., data format), leaving gaps in behavioral context for an agent.

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 the 'feedId' parameter. The description does not add meaning beyond what the schema provides (e.g., format examples or constraints). Baseline 3 is appropriate when schema does the heavy lifting.

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 states the specific action ('Get'), resource ('automatic run schedule configuration for a feed'), and scope ('shows if auto-run is enabled, the run interval, and when the next automatic run is scheduled'). It distinguishes from siblings like 'get_feed' (general feed info) or 'trigger_feed_run' (manual execution).

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 usage for checking schedule configuration, but does not explicitly state when to use this vs. alternatives like 'get_feed' (which might include schedule info) or 'list_feeds' (for overview). No guidance on prerequisites or exclusions is provided.

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

get_jobC

Get detailed information about a specific job

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdYesJob ID to retrieve

TDQS

C2.7/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 only states the action ('get detailed information') without covering critical aspects like read-only nature, error handling (e.g., invalid job IDs), response format, or any rate limits or permissions required, which are essential for safe and effective use.

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 a single, direct sentence with no wasted words. It is appropriately sized and front-loaded, efficiently conveying the core purpose without unnecessary elaboration, making it easy for an agent to parse quickly.

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?

Given the lack of annotations and output schema, the description is incomplete. It does not explain what 'detailed information' includes, how results are structured, or potential behavioral traits like idempotency or errors, leaving significant gaps for a tool that retrieves data based on an ID.

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?

The input schema has 100% description coverage, with 'jobId' clearly documented. The description adds no additional meaning beyond the schema, such as format examples or constraints, but the schema adequately defines the parameter, meeting the baseline for high coverage.

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

Purpose3/5

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

The description states the tool's purpose as retrieving detailed information about a specific job, which is clear but vague. It specifies the verb ('get') and resource ('job'), but does not differentiate from sibling tools like 'list_jobs' or explain what 'detailed information' entails beyond basic identification.

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 provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., needing a job ID), contrast with 'list_jobs' for browsing, or specify use cases like checking job status or details, leaving the agent without contextual direction.

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

get_stats_overviewB

Get high-level statistics: total enriched jobs, companies, and active feeds.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/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 states the tool retrieves statistics but does not describe any behavioral traits, such as whether it's a read-only operation, its performance characteristics, error handling, or data freshness. This is a significant gap for a tool with no annotation coverage.

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 a single, efficient sentence that front-loads the core action ('Get high-level statistics') and lists the specific metrics without any wasted words. It is appropriately sized for its purpose and structured for quick comprehension.

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?

Given the tool's complexity is low (0 parameters, no annotations, no output schema), the description is minimally adequate. It specifies what statistics are retrieved, but it lacks details on the return format, data scope, or any limitations. Without an output schema, the agent must infer the structure from the description alone, which is incomplete for full contextual understanding.

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?

The tool has 0 parameters, and the input schema has 100% description coverage (though empty). The description does not need to add parameter semantics, as there are none to document. It appropriately focuses on the output metrics, earning a high baseline score for parameter clarity in this context.

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 clearly states the tool's purpose with a specific verb ('Get') and resource ('high-level statistics'), and it enumerates the three key metrics returned (total enriched jobs, companies, and active feeds). However, it does not explicitly differentiate this tool from sibling tools like 'get_top_companies' or 'get_top_titles', which might also provide statistical data, so it falls short of a perfect score.

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 provides no guidance on when to use this tool versus alternatives. It does not mention any prerequisites, context, or exclusions, such as whether it should be used for dashboard summaries or in contrast to more detailed statistical tools. This leaves the agent without explicit usage instructions.

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

get_top_companiesB

Get top companies by enriched job count, with recent activity (last 7d and 30d).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/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 mentions the tool retrieves data ('Get') and specifies metrics like 'enriched job count' and timeframes ('last 7d and 30d'), but it does not cover critical aspects such as whether this is a read-only operation, potential rate limits, authentication needs, or the format of returned data. For a tool with zero annotation coverage, this is a significant gap.

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 a single, efficient sentence that front-loads the core purpose without any wasted words. It directly states what the tool does and includes key details like timeframes, making it highly concise and well-structured.

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?

Given the tool has 0 parameters and no output schema, the description adequately covers the purpose and output semantics. However, it lacks behavioral details (e.g., read-only nature, data format) and usage guidelines, which are important for a tool in a server with many siblings. This makes it minimally viable but with clear gaps.

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?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description adds value by explaining the semantics of the output—'top companies by enriched job count, with recent activity'—which clarifies what the tool returns beyond the schema. This justifies a score above the baseline of 3 for high schema coverage.

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 clearly states the tool's purpose: 'Get top companies by enriched job count, with recent activity (last 7d and 30d).' It specifies the verb ('Get'), resource ('top companies'), and key metrics ('enriched job count' and 'recent activity'). However, it does not explicitly distinguish this from sibling tools like 'get_categories' or 'get_top_titles', which reduces the score from 5 to 4.

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 provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, context, or exclusions, nor does it reference sibling tools like 'get_stats_overview' or 'get_title_trends' for comparison. This lack of usage context leaves the agent without clear direction.

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

get_top_titlesB

Get the most common job titles by volume (top 30).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/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 states the tool retrieves data ('Get'), implying a read-only operation, but does not mention any behavioral traits like rate limits, authentication needs, data freshness, or error handling. This is a significant gap for a tool with no annotation coverage.

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 a single, efficient sentence that front-loads the core functionality ('Get the most common job titles by volume') and adds necessary scope ('top 30'). There is zero waste, making it highly concise and well-structured.

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?

Given the tool has 0 parameters, no annotations, and no output schema, the description provides a clear purpose but lacks details on behavioral aspects and usage context. It is minimally adequate for a simple read operation but does not compensate for the absence of annotations or output schema, leaving gaps in completeness.

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?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately does not discuss parameters, and the baseline for 0 parameters is 4, as it avoids unnecessary details while being complete for 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 clearly states the action ('Get') and resource ('most common job titles by volume'), specifying the scope ('top 30'). However, it does not explicitly differentiate from siblings like 'get_title_trends' or 'get_categories', which might offer related but different data. The purpose is specific but lacks sibling comparison.

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 is provided on when to use this tool versus alternatives such as 'get_title_trends' or 'get_categories'. The description implies usage for retrieving top job titles by volume, but it does not specify contexts, prerequisites, or exclusions, leaving the agent to infer based on tool names alone.

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

get_work_arrangementsB

Get work arrangement distribution (remote, hybrid, onsite, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 states it 'Get[s]' data, implying a read-only operation, but does not specify if it requires authentication, has rate limits, returns paginated results, or what the output format is. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.

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 a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and wastes no space, making it easy to parse quickly.

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?

Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is minimal. It lacks details on behavioral aspects like authentication needs, rate limits, or output structure, which are important for a data retrieval tool. Without annotations or output schema, the description should provide more context to be complete.

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?

The tool has 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description does not add param info, which is appropriate. Baseline is 4 for zero parameters, as there is no schema burden to compensate for.

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 clearly states the verb 'Get' and the resource 'work arrangement distribution', specifying the types of arrangements (remote, hybrid, onsite, etc.). It distinguishes this from siblings like 'get_categories' or 'get_experience_levels' by focusing on work arrangements, but does not explicitly contrast with all siblings. The purpose is specific and actionable.

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 provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, context, or exclusions, such as whether it requires specific permissions or data availability. With many sibling tools for data retrieval (e.g., 'get_categories', 'get_stats_overview'), the lack of differentiation leaves usage unclear.

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

list_feedsB

Get all your job feeds

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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. It states 'Get all your job feeds' but lacks details on behavior: e.g., whether it returns a list, pagination, error handling, or authentication needs. This is a significant gap for a tool with no structured safety hints.

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 a single, efficient sentence with zero waste. It's front-loaded and appropriately sized for a simple tool, making it easy to parse without unnecessary elaboration.

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?

Given no annotations, no output schema, and a simple tool with 0 parameters, the description is incomplete. It doesn't explain what 'get all' entails (e.g., format, limitations) or behavioral aspects, leaving gaps in understanding how the tool operates in practice.

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?

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add param info, which is fine here. A baseline of 4 is appropriate as the schema fully handles the absence of parameters.

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 'Get all your job feeds' clearly states the action (get) and resource (job feeds), making the purpose evident. However, it doesn't differentiate from sibling tools like 'get_feed' (singular) or 'show_all_feeds_dashboard', which might offer similar functionality in different contexts, preventing a perfect score.

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 provides no guidance on when to use this tool versus alternatives. With siblings like 'get_feed' (for a specific feed) and 'show_all_feeds_dashboard' (potentially a UI-focused view), there's no indication of context, prerequisites, or exclusions, leaving usage ambiguous.

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

list_jobsB

Get all jobs for a specific feed, optionally filtered by status

ParametersJSON Schema
NameRequiredDescriptionDefault
feedIdYesFeed ID to list jobs for
statusNoFilter by job status

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a 'Get' operation but doesn't clarify if it's read-only, whether it requires specific permissions, what format the output takes, or if there are pagination/rate limits. For a list operation with zero annotation coverage, this is insufficient.

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 a single, efficient sentence with zero wasted words. It's appropriately sized for a simple list operation and front-loads the core functionality without unnecessary elaboration.

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?

For a simple list tool with good schema coverage but no annotations or output schema, the description is minimally adequate. It states what the tool does but lacks important context about behavioral traits, output format, and differentiation from sibling tools that would help an agent 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%, so the schema fully documents both parameters (feedId and status with enum values). The description adds marginal value by mentioning 'optionally filtered by status' but doesn't provide additional semantic context beyond what's already in the structured 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 clearly states the verb 'Get' and resource 'jobs for a specific feed', making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_job' (singular) or 'list_feeds', which could cause confusion about when to use this specific list operation versus alternatives.

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 provides minimal guidance with 'optionally filtered by status', but offers no explicit when-to-use rules, no comparison to sibling tools like 'get_job' or 'list_feeds', and no prerequisites or exclusions. This leaves the agent without clear direction on tool selection.

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

retry_failed_jobsA

Retry failed jobs for a feed. Jobs that failed during scraping (no content) are re-queued for scraping. Jobs that failed during enrichment (have content) are re-queued for enrichment.

ParametersJSON Schema
NameRequiredDescriptionDefault
feedIdYesFeed ID to retry failed jobs for

TDQS

A3.7/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. It discloses that the tool re-queues jobs based on failure stage, which is useful behavioral context. However, it does not mention permissions needed, rate limits, whether the operation is idempotent, or what happens if no failed jobs exist, leaving gaps for a mutation tool.

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, front-loaded with the core purpose and efficiently explains the two failure scenarios. Every sentence adds value without redundancy, making it appropriately sized and well-structured.

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?

Given the tool's complexity (a mutation with no annotations and no output schema), the description is adequate but incomplete. It explains what the tool does but lacks details on return values, error handling, or side effects, which are important for an agent to use it correctly without structured output guidance.

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 the single parameter 'feedId' clearly documented in the schema. The description does not add any parameter-specific details beyond what the schema provides, such as format examples or constraints, so it meets the baseline for high coverage.

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 states the verb ('retry') and resource ('failed jobs for a feed'), specifying that it re-queues jobs based on their failure stage (scraping or enrichment). It distinguishes from siblings like 'delete_jobs' or 'trigger_feed_run' by focusing on retrying only failed jobs rather than deleting, creating, or triggering new runs.

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 usage when jobs have failed, but does not explicitly state when to use this tool versus alternatives like 'delete_jobs' or 'trigger_feed_run'. It provides context about failure types (scraping vs. enrichment) but lacks explicit guidance on prerequisites or exclusions.

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

show_all_feeds_dashboardB

Display a comprehensive dashboard showing all feeds with stats, sortable columns, and XML feed links. Modern React UI with dark theme.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3/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 full burden. It mentions UI aspects ('Modern React UI with dark theme') which are behavioral traits, but fails to disclose critical operational details: whether this is a read-only view, if it requires authentication, how data is refreshed, or if it's interactive. For a dashboard tool with zero annotation coverage, this leaves significant behavioral gaps.

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 efficiently structured in two sentences. The first sentence covers the core functionality comprehensively. The second adds UI context that might be relevant for user experience. While slightly verbose with 'Modern React UI with dark theme', this could help agents understand the visual nature of the output.

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?

Given the complexity of a dashboard tool with no annotations and no output schema, the description is insufficient. It doesn't explain what 'stats' includes, what columns are sortable, how XML feed links are presented, or what the dashboard output looks like. For a tool that presumably returns rich visual data, more context about the return format and capabilities is needed.

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?

The tool has 0 parameters with 100% schema description coverage, so the baseline is 4. The description appropriately doesn't waste space discussing non-existent parameters. It focuses on what the tool does rather than parameter details, which is correct for a parameterless tool.

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 clearly states the tool's purpose: 'Display a comprehensive dashboard showing all feeds with stats, sortable columns, and XML feed links.' It specifies the verb ('display'), resource ('dashboard showing all feeds'), and key features (stats, sortable columns, XML links). However, it doesn't explicitly differentiate from sibling 'show_feed_dashboard' or 'list_feeds', which reduces clarity about when to choose this specific 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 provides no guidance on when to use this tool versus alternatives. It doesn't mention when this dashboard should be used instead of 'list_feeds' for a simple list or 'show_feed_dashboard' for a single feed view. There's no context about prerequisites, user roles, or typical scenarios for dashboard access.

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

show_feed_dashboardB

Display an interactive dashboard for monitoring a job feed

ParametersJSON Schema
NameRequiredDescriptionDefault
feedIdYesFeed ID to display (e.g., feed_92afb77d)

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states this is an 'interactive dashboard' which implies a visual/UI component rather than data return, but doesn't describe what 'interactive' means, whether it opens a browser, requires specific permissions, has rate limits, or what happens after display. For a tool with zero annotation coverage, this leaves significant behavioral gaps.

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 a single, efficient sentence that gets straight to the point with no wasted words. It's appropriately sized for a tool with one parameter and clearly front-loaded with the core functionality.

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?

Given the tool's moderate complexity (dashboard display with one parameter), no annotations, and no output schema, the description is minimally adequate but incomplete. It identifies what the tool does but lacks crucial context about how it behaves, what 'interactive' entails, and how it differs from the similar 'show_all_feeds_dashboard' sibling tool.

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?

The input schema has 100% description coverage, with the single parameter 'feedId' clearly documented in the schema. The description doesn't add any parameter semantics beyond what the schema already provides, so the baseline score of 3 is appropriate when the schema does the heavy lifting.

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 clearly states the tool's purpose with a specific verb ('display') and resource ('interactive dashboard for monitoring a job feed'), distinguishing it from siblings like 'get_feed' or 'list_feeds' that provide data rather than visualizations. However, it doesn't explicitly differentiate from 'show_all_feeds_dashboard', which appears to be a similar dashboard 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 provides no guidance on when to use this tool versus alternatives. It doesn't mention when this dashboard is preferable to data-focused tools like 'get_feed' or 'get_stats_overview', nor does it clarify the relationship with 'show_all_feeds_dashboard' (single feed vs. all feeds).

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

trigger_feed_runC

Start job discovery for a specific feed

ParametersJSON Schema
NameRequiredDescriptionDefault
feedIdYesFeed ID to run

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. 'Start job discovery' implies a potentially long-running or asynchronous operation, but the description doesn't mention execution mode (sync/async), permissions needed, rate limits, whether it's idempotent, or what happens if the feed is already running. For a tool that likely triggers background processing, this is a significant gap.

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 a single, efficient sentence with zero wasted words. It's appropriately sized for a simple tool with one parameter and gets straight to the point without unnecessary elaboration.

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?

Given this is an execution tool with no annotations and no output schema, the description is incomplete. It doesn't explain what 'starting job discovery' entails, what the expected outcome is, whether it returns a job ID or status, or how to monitor progress. For a tool that likely initiates significant processing, more context is needed.

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 the single parameter 'feedId' well-documented in the schema. The description adds no additional parameter semantics beyond what's in the schema. Baseline score of 3 is appropriate when the schema does the heavy lifting, though the description could have added context about feed ID format or sourcing.

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 clearly states the action ('Start job discovery') and target resource ('for a specific feed'), providing a specific verb+resource combination. It distinguishes from siblings like 'get_feed' or 'list_feeds' by focusing on execution rather than retrieval. However, it doesn't explicitly differentiate from similar execution tools like 'retry_failed_jobs' or 'enable_feed_auto_run'.

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 provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., feed must exist, be enabled), when-not scenarios (e.g., feed already running), or direct alternatives among siblings like 'retry_failed_jobs' or 'enable_feed_auto_run' for related operations.

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

update_feedB

Update a feed's name, tag, or source URLs. Use tag to group feeds by site for filtering on the dashboard.

ParametersJSON Schema
NameRequiredDescriptionDefault
feedIdYesFeed ID to update
nameNoNew feed name (optional)
tagNoTag for grouping/filtering feeds (optional, set to empty string to clear)
careersUrlNoNew careers page URL (optional)
exampleJobUrlNoNew example job URL (optional, set to empty string to clear)

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 full burden. It mentions updating fields but doesn't disclose behavioral traits such as required permissions, whether updates are reversible, rate limits, or error handling. The tag explanation adds some context, but overall, it's insufficient for a mutation tool with zero annotation coverage.

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 two sentences, front-loaded with the core purpose and followed by a specific usage note for tags. It's efficient with zero waste, though it could be slightly more structured by explicitly listing all updatable fields.

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?

Given no annotations and no output schema, the description is incomplete for a mutation tool with 5 parameters. It lacks details on behavioral aspects like permissions, side effects, and response format, leaving significant gaps for an AI agent to understand how to invoke 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%, so the schema already documents all 5 parameters thoroughly. The description adds minimal value by mentioning 'name, tag, or source URLs' (hinting at careersUrl and exampleJobUrl) and explains tag usage for dashboard filtering, but doesn't provide additional syntax or format details 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 clearly states the action ('Update') and resource ('a feed's name, tag, or source URLs'), specifying what fields can be modified. It distinguishes from siblings like 'create_feed' (creation) and 'delete_feed' (deletion) by focusing on updates, though it doesn't explicitly contrast with other update-related tools like 'disable_feed_auto_run'.

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 usage for modifying feed attributes, with a specific note on tag usage for dashboard filtering, but lacks explicit guidance on when to choose this over alternatives like 'create_feed' for new feeds or 'get_feed' for viewing. No exclusions or prerequisites are mentioned.

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

TDQS

A3.5/5.0
Disambiguation4/5

Most tools have distinct purposes, but some overlap exists: 'get_feed' and 'show_feed_dashboard' both provide feed information, and 'list_feeds' and 'show_all_feeds_dashboard' both list feeds. The descriptions clarify differences (detailed stats vs. interactive UI), but an agent might initially confuse them.

Naming Consistency5/5

Tool names follow a consistent verb_noun pattern throughout, such as 'create_feed', 'delete_feed', 'get_categories', and 'list_jobs'. All tools use snake_case with clear, descriptive verbs, making them predictable and easy to understand.

Tool Count3/5

With 22 tools, the count is borderline high for a job feed monitoring server. While it covers many aspects, it feels slightly heavy and could potentially be streamlined without losing functionality, as some tools might be combined or simplified.

Completeness5/5

The tool set provides comprehensive coverage for job feed management, including CRUD operations (create, get, update, delete), monitoring (trigger, retry, enable/disable auto-run), and analytics (stats, trends, distributions). No obvious gaps exist; agents can handle full workflows from setup to analysis.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    A fast, secure, and LLM-friendly Model Context Protocol (MCP) server that scrapes job listings from major platforms (LinkedIn, Indeed, Google) and converts them into structured Markdown format.
    1
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Structured web context infrastructure for AI agents. Extract reliable schema-guided JSON from websites using Claude-powered parsing, Browserless fallback rendering, and MCP-native workflows.
    1
    1
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables job search and scraping across multiple job boards (LinkedIn, Indeed, Glassdoor, etc.) with advanced filtering, directly from Claude Desktop or other MCP clients.
    5
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to pull live job listings from major ATS platforms (Greenhouse, Lever, Ashby, Workable), Hacker News hiring threads, and detect hiring signals on company career pages.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/houtini-ai/yubhub'

If you have feedback or need assistance with the MCP directory API, please join our Discord server