YubHub MCP Server
The YubHub MCP Server transforms company careers pages into structured, AI-enriched job feeds — all from within an AI assistant (Claude, Cursor, etc.).
Feed Management
Create feeds from careers page URLs, list existing feeds, get detailed feed info, update properties (name, tag, source URLs), and delete feeds or their associated jobs
View interactive dashboards for individual feeds or all feeds at once
Trigger manual job discovery runs
Scheduling
Enable automatic runs on a configurable interval (1–168 days, default weekly)
Check schedule (interval and next run time) or disable automatic runs for full manual control
Job Management
List jobs per feed with optional status filtering (
discovered,scraped,enriched,failed)Get full job details: title, company, location, salary, skills, description, and more
Retry failed jobs, re-queuing them for scraping or enrichment
Automated Discovery & Enrichment
Discovers jobs via ATS APIs, sitemaps, or crawling — supports Greenhouse, Lever, Workable, Workday, Oracle HCM, SmartRecruiters, Ashby, Pinpoint, Phenom, and more
AI enrichment includes title normalization, category tagging, salary extraction, and company research
Market Analytics
Stats overview: total enriched jobs, companies, and active feeds
Top companies by job count (with 7- and 30-day activity)
Job counts by category/sector and experience level
Top 30 job titles by volume and 2-week title trend comparisons
Work arrangement distribution (remote, hybrid, onsite) and experience level distribution
Allows for the tracking and extraction of job listings from AMG career pages into structured, AI-enriched feeds.
Integrates with Greenhouse-hosted careers pages to automatically discover and enrich job listings into structured feeds using public APIs.
Enables the discovery and extraction of job roles from Mercedes' career pages, converting them into enriched, structured data.
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.jsonWindows:
%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 |
| Get all your job feeds |
| Create a feed from a careers page URL |
| Feed details including run history and job counts |
| Interactive visual dashboard for a single feed |
| Overview dashboard with all feeds, stats and XML links |
| Start job discovery now |
| Change feed name, tag or source URLs |
| Remove a feed and all its jobs |
| Clear all jobs for a feed (keeps the feed) |
Scheduling
Tool | What it does |
| Check auto-run schedule and next run time |
| Turn on automatic runs (default: weekly) |
| Turn off automatic runs |
Jobs
Tool | What it does |
| List jobs for a feed, optionally filtered by status |
| Full job details: title, company, location, salary, skills, description |
| Re-queue failed jobs for another attempt |
Market statistics
Tool | What it does |
| High-level numbers: total jobs, companies, active feeds |
| Companies ranked by job count with recent activity |
| Job counts by sector with experience level breakdown |
| Most common job titles by volume |
| Titles gaining or losing demand (2-week comparison) |
| Remote vs hybrid vs onsite distribution |
| Entry, mid, senior level distribution |
Environment variables
Variable | Required | Description |
| Yes | Your YubHub user ID |
| Yes | API key from your account page |
| No | API endpoint (defaults to |
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 buildThe 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 interfacesRunning locally
YUBHUB_USER_ID=your-id YUBHUB_API_KEY=yh_your_key node dist/index.jsOr 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.
Links
YubHub — the platform
Documentation — full docs
MCP specification — Model Context Protocol
License
MIT — see LICENSE for details.
Available Tools
22 toolscreate_feedC
Create a new job feed for monitoring career pages
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Feed name (e.g., "Mercedes-AMG F1") | |
| careersUrl | Yes | Careers page URL to monitor | |
| exampleJobUrl | No | Example job posting URL (optional) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| feedId | Yes | Feed ID to delete |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| feedId | Yes | Feed ID whose jobs should be deleted |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| feedId | Yes | Feed ID to disable auto-run for |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| feedId | Yes | Feed ID to enable auto-run for | |
| intervalDays | No | Run interval in days (default: 7 for weekly, max: 168 for ~monthly) |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| feedId | Yes | Feed ID to retrieve |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| feedId | Yes | Feed ID to check schedule for |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | Job ID to retrieve |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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_title_trendsA
Get titles gaining or losing demand — compares the last 2 weeks vs prior 2 weeks.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral context. It mentions the comparison timeframe but doesn't disclose output format, data freshness, rate limits, authentication needs, or whether results are cached. The description doesn't contradict annotations (none exist), but provides insufficient 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise with two clear, information-dense sentences. The first states the core purpose, the second adds crucial temporal context. Every word earns its place with zero redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's analytical nature, no parameters, no annotations, and no output schema, the description provides adequate basic purpose but lacks important context about return values, data format, and operational constraints. It's minimally viable but leaves significant gaps for an agent to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters with 100% schema coverage, so no parameter documentation is needed. The description appropriately focuses on the tool's purpose rather than parameters, earning a baseline score of 4 for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Get titles gaining or losing demand') and resource ('titles'), with precise temporal scope ('compares the last 2 weeks vs prior 2 weeks'). It distinguishes itself from siblings like 'get_top_titles' by focusing on trend analysis rather than static rankings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for analyzing title demand trends over a specific 4-week comparison period, but provides no explicit guidance on when to use this tool versus alternatives like 'get_top_titles' or 'get_stats_overview'. 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.
get_top_companiesB
Get top companies by enriched job count, with recent activity (last 7d and 30d).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| feedId | Yes | Feed ID to list jobs for | |
| status | No | Filter by job status |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| feedId | Yes | Feed ID to retry failed jobs for |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| feedId | Yes | Feed ID to display (e.g., feed_92afb77d) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| feedId | Yes | Feed ID to run |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| feedId | Yes | Feed ID to update | |
| name | No | New feed name (optional) | |
| tag | No | Tag for grouping/filtering feeds (optional, set to empty string to clear) | |
| careersUrl | No | New careers page URL (optional) | |
| exampleJobUrl | No | New example job URL (optional, set to empty string to clear) |
TDQS
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.
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.
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.
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.
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.
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
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.
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.
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.
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
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
AI job search MCP — fact-checked jobs, application tracker, alerts. ChatGPT, Claude, Cursor.
Search live startup jobs from Claude, Cursor, or ChatGPT via MCP. Free, no account needed.
- Cavuno MCPOAuthcom.cavuno
Connect Claude, Cursor, Codex, and other MCP clients to manage your Cavuno job board.
AI job search for Claude, ChatGPT, Cursor. 170K+ jobs, 3,800+ companies. OAuth or stdio.
Related MCP Servers
- AlicenseBqualityDmaintenanceA 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.11MIT
- AlicenseAqualityDmaintenanceStructured web context infrastructure for AI agents. Extract reliable schema-guided JSON from websites using Claude-powered parsing, Browserless fallback rendering, and MCP-native workflows.11MIT
- AlicenseNot gradedqualityAmaintenanceEnables job search and scraping across multiple job boards (LinkedIn, Indeed, Glassdoor, etc.) with advanced filtering, directly from Claude Desktop or other MCP clients.5MIT
- FlicenseNot gradedqualityCmaintenanceEnables 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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