@kula-ai/mcp-server
OfficialClick on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@kula-ai/mcp-serverlist open jobs in the engineering department"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@kula-ai/mcp-server
An MCP (Model Context Protocol) server for the Kula recruiting API. Connect AI assistants like Claude to your Kula account to list jobs, manage applications, configure webhooks, and more.
Quick Start
With Claude Desktop
Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"kula": {
"command": "npx",
"args": ["-y", "@kula-ai/mcp-server"],
"env": {
"KULA_API_KEY": "your_api_key_here"
}
}
}
}Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"kula": {
"command": "npx",
"args": ["-y", "@kula-ai/mcp-server"],
"env": {
"KULA_API_KEY": "your_api_key_here"
}
}
}
}claude mcp add kula -- npx -y @kula-ai/mcp-serverThen set KULA_API_KEY in your environment.
Manual
npx @kula-ai/mcp-serverRelated MCP server: Recruit CRM MCP
Configuration
Environment Variable | Required | Description |
| Yes | Your Kula API key |
Get your API key from Kula Developer Settings.
Available Tools
51 tools across 13 categories:
Tool | Description |
| List all departments in the organization as a nested tree structure |
| List all offices in the organization |
| List all hiring milestones (pipeline stage groupings) |
| List all active internal users (recruiters, hiring managers, coordinators) |
Tool | Description |
| List all candidate sources in the organization |
Tool | Description |
| List all rejection reasons configured in the organization |
Tool | Description |
| List custom fields by subject type. Required — valid values: |
Tool | Description |
| List jobs with filters (status, department, office, date ranges, sort) |
| Search jobs by title (partial match) with optional filters |
| Get details of a specific job |
Tool | Description |
| List all pipeline stages for a specific job |
| Create a new pipeline stage for a job |
| List all activities configured for a specific job stage |
Tool | Description |
| List published job posts on the job board |
| Get details of a specific job post from the job board |
Tool | Description |
| Create a new candidate in the system |
| List candidates with simple filters (email, date ranges, sort) |
| Search candidates by name, email, skills, tags, location, and more |
| Get details of a specific candidate |
| Update an existing candidate's profile |
Tool | Description |
| List job applications |
| Get details of a specific application |
| Update the stage of a specific application |
| List notes on a specific application |
| Add a note to a specific application |
| Update an existing note on an application |
Tool | Description |
| List scorecard submissions for a specific application |
Tool | Description |
| List all configured webhooks |
| Create a new webhook subscription |
| Get details of a specific webhook |
| Update an existing webhook configuration |
| Delete a webhook |
| Enable a disabled webhook |
| Disable an active webhook |
| Rotate the signing secret for a webhook |
| Send a test payload to a webhook endpoint |
| List recent delivery logs for a webhook |
| List all available webhook event types |
| Get a sample webhook payload for a specific event type |
Tool | Description |
| List all requisitions for your account |
| Get detailed information about a specific requisition |
| List default and custom field definitions for requisitions |
| Create a new requisition (supports linked groups via head_count) |
| Update an existing requisition |
| Close a requisition |
Tool | Description |
| Search companies by name |
| List all available industries |
| Search locations by query |
| Search academic institutions by name |
| Search academic disciplines by name |
| List all available academic degrees |
Development
# Use correct Node version
nvm use
# Install dependencies
npm install
# Build
npm run build
# Watch mode
npm run dev
# Run tests
npm test
# Test with MCP Inspector
npx @modelcontextprotocol/inspector node build/index.jsConnecting locally
To test your local build with an AI client instead of the published package:
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"kula": {
"command": "node",
"args": ["/absolute/path/to/kula-mcp/build/index.js"],
"env": {
"KULA_API_KEY": "your_api_key_here"
}
}
}
}Edit ~/.cursor/mcp.json:
{
"mcpServers": {
"kula": {
"command": "node",
"args": ["/absolute/path/to/kula-mcp/build/index.js"],
"env": {
"KULA_API_KEY": "your_api_key_here"
}
}
}
}claude mcp add kula -- node /absolute/path/to/kula-mcp/build/index.jsThen set KULA_API_KEY in your environment.
Note: The server uses STDIO transport, so there's no hot-reload. After rebuilding (
npm run buildor vianpm run dev), restart the MCP client to pick up changes.
License
MIT
Available Tools
84 toolscancel_interviewA
Cancel a scheduled interview. Calendar events are torn down and cancellation notifications dispatched asynchronously. Cannot cancel: already-cancelled interviews (err_interview_already_cancelled), or completed HackerRank interviews (err_cannot_cancel_completed_hackerrank).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Interview ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses that cancellation is asynchronous, tears down calendar events, and dispatches notifications. It also mentions specific error codes. Could mention more about reversibility or permissions, but sufficient for basic 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?
Two sentences, front-loaded with the primary action. Every sentence adds value—no wasted words. Highly concise and effective.
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 tool with 1 param and no output schema, the description covers the purpose, key constraints, and behavioral effects (async, error states). No 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?
Schema coverage is 100% (1 param described as 'Interview ID'). Description adds no additional meaning beyond the schema, so baseline 3 is appropriate.
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 'Cancel a scheduled interview' with specific verb and resource. It distinguishes from siblings by listing what cannot be canceled (already-cancelled or completed HackerRank interviews), and explains the effects (tear down calendars, async notifications).
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 specifies when the tool can be used (scheduled interviews) and when it cannot (already-cancelled, completed HackerRank). However, it does not explicitly guide when to use this vs. alternatives (e.g., checking status first), though the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_interviewers_availabilityA
Compute free interview slots across the organizer + interviewers' calendars. Async — returns a poll_id immediately. Get the result two ways: (a) call get_interviewers_availability_result with the poll_id, or (b) subscribe to the interview.availability.computed webhook (recommended for production — avoids polling). Result expires 1 hour after computation.
Each returned slot carries interviewer_ids — the user IDs free at that range. For panel, every slot lists every interviewer in the request (a panel slot requires all of them to be free). For one_on_one, each slot lists the subset free at that range; pick one of those IDs when calling create_interview.
| Name | Required | Description | Default |
|---|---|---|---|
| organizer_id | Yes | User running the search (from list_valid_organizers) | |
| interviewer_ids | Yes | User IDs to check availability for. Up to 10 interviewers per request. | |
| start_time | Yes | Search window start (ISO 8601) | |
| end_time | No | Search window end (ISO 8601). Defaults to start_time + 7 days. Max 30 days. | |
| duration_minutes | Yes | Slot length, 15..480 | |
| interview_kind | Yes | `panel` = slots when ALL interviewers are simultaneously free (intersection). `one_on_one` = each interviewer's free slots are emitted independently and tagged with that user's ID. | |
| timezone | Yes | IANA timezone (e.g., America/Los_Angeles) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses async nature, immediate return of poll_id, result expiration after 1 hour, and two retrieval methods. It also explains slot data structure and the behavior for panel (all must be free) vs one_on_one (subset). It does not mention authentication or permissions, but overall provides good 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 concise and well-structured, front-loading the main purpose, then async details, result retrieval, slot semantics. Every sentence earns its place; no fluff.
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 output schema, the description explains result format (slots with interviewer_ids) and differences between panel and one_on_one. It covers async, expiration, and retrieval methods. With 7 fully-described parameters, the description adds necessary behavioral context, making it complete for this tool's complexity.
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% (baseline 3). The description adds significant value beyond schema: it explains the difference between panel and one_on_one, the meaning of interviewer_ids in results, and how to use the tool in context (e.g., picking one ID for one_on_one when creating an interview). It enriches parameter understanding.
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 it computes free interview slots across calendars, specifies async behavior, and distinguishes between panel and one_on_one kinds. It is specific and not a tautology.
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 on when to use this tool (to compute free slots) and explicitly names alternatives for retrieving results (get_interviewers_availability_result or webhook). It explains the panel vs one_on_one distinction, guiding choice. However, it does not explicitly state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
close_requisitionA
Close a requisition. Only requisitions in a closeable state can be closed.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Requisition ID | |
| reason | No | Reason for closing the requisition (max 255 characters) | |
| apply_to_group | No | When true, closes all requisitions in the group. Defaults to false (removes from group before closing). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description adds useful constraint (only closeable states) but lacks info on what happens on success, permissions, or side effects.
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 short sentences, no redundancy, front-loaded with purpose and key condition.
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?
Adequate for a simple close action but lacks return value or error handling details; not comprehensive given no 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 already describes all parameters (100% coverage), so description adds no extra meaning beyond 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 (close) and resource (requisition), and distinguishes it from siblings like update_requisition by specifying the close action.
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?
It implies when to use (to close a requisition) and notes a prerequisite (closeable state), but does not explicitly mention alternatives or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_application_noteB
Add a note to a specific application.
| Name | Required | Description | Default |
|---|---|---|---|
| application_id | Yes | Application ID | |
| body | Yes | Note content | |
| notify_recruiter | No | When true, auto-tags the job's primary recruiter in the note |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is minimal and does not disclose behavioral traits such as whether auto-tagging occurs, required permissions, or side effects. Since no annotations are provided, the description carries the full burden.
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, clear sentence with no unnecessary words, front-loading the action and resource.
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 output schema, the description should explain what is returned (e.g., the created note). It also omits context like the notify_recruiter behavior, leaving the tool under-specified.
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 explains all parameters. The description adds no extra meaning beyond what is in the schema, resulting in a baseline score of 3.
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 uses a specific verb 'Add' and resource 'note to a specific application', clearly distinguishing it from sibling tools like list_application_notes or update_application_note.
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 on when to use this tool versus alternatives; for example, it doesn't explain when to create a note vs. update an existing one, nor any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_candidateA
Create a new candidate in Kula. At least one of email or linkedin_url (in social_urls) is required. Optionally link to a job pipeline via job_id and job_stage_id. Returns the created candidate object.
| Name | Required | Description | Default |
|---|---|---|---|
| first_name | Yes | Candidate's first name (required) | |
| last_name | No | Candidate's last name | |
| No | Candidate's email address. Required unless linkedin_url is provided. | ||
| phone_number | No | Candidate's phone number | |
| tags | No | Comma-separated tag names to attach | |
| skills | No | Comma-separated skill names to attach | |
| job_id | No | Job ID to add this candidate to a pipeline | |
| job_stage_id | No | Stage ID within the job pipeline (use with job_id) | |
| candidate_source_id | No | Source ID — get IDs from list_sources | |
| credited_to_user_id | No | User ID to credit for this candidate | |
| social_urls | No | Social profile URLs. Include linkedin here if not providing email. | |
| location | No | Candidate location using places IDs | |
| additional_info | No | Custom field values as key-value pairs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It discloses the creation action and return of the object but does not mention side effects, permissions, or rate limits. Adequate but could add more 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?
Two sentences, no filler. First sentence states purpose and required condition, second adds optional linking and return value. Extremely concise and 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 13 parameters with nested objects and no output schema, the description covers the key constraints and usage. It could elaborate on the return object structure, but overall it provides sufficient context for a creation 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?
Schema description coverage is 100%, baseline is 3. The description adds value by clarifying the condition that email or linkedin_url is required, and the optional linking to a job pipeline, which goes 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 verb 'Create' and the resource 'new candidate in Kula'. It differentiates from siblings like update_candidate and get_candidate by specifying creation and linking to job pipelines.
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?
Explicitly states the required condition: 'At least one of email or linkedin_url (in social_urls) is required.' Also mentions optional linking to job pipeline. Does not provide when-not-to-use or alternatives, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_interviewA
Schedule an interview against an application. Calendar invites and conference URL are provisioned asynchronously — subscribe to the interview.event.created webhook to receive the fully-provisioned interview.
Typical workflow:
Plan-driven:
get_interview_plan→ pick astage_activity_id→check_interviewers_availability→create_interviewwithstage_activity_id(scorecard config inherits from the activity; passscorecard_template_idonly when stage_activity_id is NOT set).Ad-hoc:
list_valid_organizers(organizer_id) →list_applications(application_id) →check_interviewers_availability→create_interview.
Where to discover IDs:
application_id→list_applicationsorganizer_id→list_valid_organizers(filtered by job_id)interviewer_ids→list_users(any active user)office_id→list_offices(required when location=onsite)host_id→list_conference_hosts(required when location=zoom; must be in interviewer_ids)stage_activity_id→get_interview_planinterviewer_template_id/candidate_template_id→list_email_templatesscorecard_template_id→list_scorecard_templates
Constraints:
start_timemust be on a 15-minute boundary with zero seconds (e.g.09:00:00,09:15:00) and in the futureduration_minutesmust be a multiple of 15 (15..1440)kind: one_on_onerequires exactly one entry ininterviewer_ids
| Name | Required | Description | Default |
|---|---|---|---|
| organizer_id | Yes | ID of the user who organizes the interview. Use list_valid_organizers to discover. | |
| application_id | Yes | ID of the application (candidate's submission to a job — NOT a candidate id). | |
| start_time | Yes | ISO 8601 datetime, on 15-min boundary, in the future | |
| duration_minutes | Yes | Length in minutes — multiple of 15, between 15 and 1440 | |
| timezone | Yes | IANA timezone name (e.g., America/Los_Angeles) | |
| kind | Yes | Type of interview: one_on_one | panel | |
| location | Yes | Location: onsite | phone | zoom | google_meet | microsoft_teams | hackerrank | |
| interviewer_ids | Yes | IDs of users participating in the interview | |
| stage_activity_id | No | Interview-plan activity ID (from get_interview_plan). When set, scorecard config inherits from the activity. | |
| office_id | No | Required when location=onsite | |
| host_id | No | Required when location=zoom; must be in interviewer_ids | |
| hackerrank_template_id | No | Required when location=hackerrank | |
| name | No | Display name for the interview | |
| calendar_event_visibility | No | Calendar invite visibility | |
| ai_note_taker_enabled | No | ||
| ai_scorecard_assist_enabled | No | ||
| interviewer_template_id | No | Email template ID for interviewer invite body | |
| candidate_template_id | No | Email template ID for candidate invite body | |
| scorecard_template_id | No | Scorecard template ID. Silently ignored when stage_activity_id is set. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully covers behavioral traits: asynchronous provisioning of calendar invites and conference URLs, webhook subscription, parameter interactions (e.g., scorecard_template_id ignored when stage_activity_id set), and future constraints on start_time. This is comprehensive and beyond the schema.
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 well-structured with sections (workflow, discovery, constraints) and front-loaded with the main purpose. Every sentence adds necessary information without redundancy. It is appropriately detailed for a complex tool with 19 parameters.
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 (19 parameters, 8 required, no output schema), the description fully compensates by explaining workflows, ID discovery, constraints, and parameter interactions. It also highlights asynchronous behavior and webhook subscription, providing a complete picture for an agent to use 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 coverage is 89%, but the description adds significant value: it explains the relationship between stage_activity_id and scorecard_template_id, provides discovery sources for each ID, and clarifies constraints like 'host_id required when location=zoom' and 'kind: one_on_one requires exactly one interviewer.' This goes beyond the schema descriptions.
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 'Schedule an interview against an application' and distinguishes from sibling tools like cancel_interview and update_interview. It provides specific verb+resource and 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 explicitly details two typical workflows (plan-driven and ad-hoc), explains when to use stage_activity_id vs scorecard_template_id, and lists discovery methods for all IDs. It also includes constraints, offering clear guidance on when to use this tool and how to prepare.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_job_stageB
Create a new pipeline stage for a job.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Job ID | |
| name | Yes | Stage name | |
| milestone_id | No | Milestone ID to associate with this stage | |
| position | No | Position of the stage in the pipeline (1-based) | |
| candidate_review_time | No | Expected review time in days |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden of disclosing behavioral traits. It does not mention side effects (e.g., reordering existing stages), idempotency, required permissions, or error handling. The brief description fails to provide meaningful 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 a single short sentence with no wasted words. It is efficient but could benefit from slightly more detail without becoming verbose.
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 5 parameters, no output schema, and no annotations, the description is too minimal. It does not explain return values, error conditions, or ordering constraints. The agent lacks sufficient context to use the tool 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 coverage is 100%, so the schema already describes all parameters. The description adds no additional meaning beyond what the schema provides. Per guidelines, baseline is 3 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 tool creates a new pipeline stage for a job. It uses a specific verb ('Create') and resource ('pipeline stage'), and distinguishes from siblings like 'list_job_stages' which lists stages.
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, prerequisites, or situations where it should not be used. For example, it does not mention that the job must exist or that stage names must be unique.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_requisitionA
Create a new requisition. When head_count exceeds 1, creates a group of linked requisitions. Use list_requisition_fields to get available custom field IDs for additional_info.
| Name | Required | Description | Default |
|---|---|---|---|
| role_name | Yes | Job role name for this requisition | |
| employment_type | Yes | Employment type (full_time, part_time, contract, internship, temporary, seasonal) | |
| requisition_type | Yes | Requisition type (new_hire, contract, backfill, internship, internal) | |
| department_id | Yes | Department ID | |
| office_ids | Yes | Comma-separated office IDs (at least one required) | |
| description | No | Requisition description | |
| minimum_salary | No | Minimum salary amount | |
| maximum_salary | No | Maximum salary amount | |
| salary_currency_id | No | Currency country ID for salary | |
| recruiter_id | No | User ID of the assigned recruiter | |
| hiring_manager_id | No | User ID of the hiring manager | |
| target_hire_date | No | Target hire date (YYYY-MM-DD) | |
| target_start_date | No | Target start date (YYYY-MM-DD, must be on or after target_hire_date) | |
| head_count | No | Number of positions (1–50). Set greater than 1 to generate multiple linked requisitions | |
| confidential | No | Whether this requisition is confidential | |
| job_id | No | Job ID to associate with this requisition | |
| additional_info | No | Custom fields as key-value pairs (field ID to value). Use list_requisition_fields to get field IDs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes that exceeding head_count of 1 creates linked requisitions, which is key behavior. However, no annotations are provided, and the description does not cover permissions, rate limits, or response behavior, leaving 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?
Two succinct sentences that immediately convey the action and a key nuance. No wasted words; front-loaded with purpose.
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?
Adequately explains core behavior and references a related tool for custom fields. Lacks return value details and prerequisites, but given complexity (17 params, no output schema) it is mostly 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?
Schema descriptions cover all 17 parameters (100% coverage), so the description adds no additional parameter meaning beyond the schema. Baseline of 3 applies.
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?
Clearly states 'Create a new requisition' and explains the linked requisitions behavior when head_count > 1. Distinguishes from sibling tools like close_requisition and update_requisition.
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?
Provides a hint to use list_requisition_fields for custom field IDs, but no explicit guidance on when to use this tool vs alternatives or when not to use it. Usage is inferred from the creation context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_userA
Invite a new user to the account. The user is created in the pending state and sent an invitation email. Requires email and first_name.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Email address of the user | ||
| first_name | Yes | First name of the user | |
| role_id | No | ID of the role to assign to the user. Defaults to the Organization Member role if not specified. Use list_roles to discover valid IDs. | |
| last_name | No | Last name of the user | |
| job_title | No | Job title of the user | |
| time_zone | No | IANA timezone identifier (e.g. America/Los_Angeles) | |
| department_id | No | Department to assign the user to. Use list_departments. | |
| office_id | No | Office to assign the user to. Use list_offices. | |
| reporting_manager_id | No | User the new user reports to. Use list_users. |
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 key behaviors: creation in pending state, sending invitation email, and required fields. This adds value beyond the schema by explaining the workflow.
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, no wasted words, front-loaded with the action. Highly efficient and clear.
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?
With 9 parameters and no output schema, the description is somewhat minimal. It explains the core behavior but omits information about the return value or error conditions, which would be helpful 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 baseline is 3. The description only mentions email and first_name as required, adding no extra meaning for optional parameters. It does not improve upon the schema's documentation.
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 it invites a new user, creates in pending state, and sends an invitation email. It uses specific verb+resource ('invite a new user') and distinguishes from other user-related siblings.
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 mentions required fields (email and first_name) and implies usage for adding new users. It does not provide explicit when-not or alternative guidance, but the context of pending state and invitation email helps set appropriate expectations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_webhookB
Create a new webhook subscription.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to send webhook payloads to | |
| name | Yes | Human-readable name for the webhook | |
| subscribed_events | Yes | List of event types to subscribe to (e.g. application.created) | |
| secret | No | Secret for signing payloads | |
| description | No | Description of the webhook | |
| headers | No | Custom headers to include in webhook requests |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description does not disclose behavioral details such as idempotency, side effects, error conditions, or what happens on duplicate URLs. The sole statement 'Create a new webhook subscription' is insufficient for an agent to understand the tool's full impact.
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, clear sentence with no extraneous words. It is front-loaded and efficient, though it could benefit from a brief note on expected 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?
With no output schema and only a minimal description, the agent lacks information about what the tool returns (e.g., webhook ID, subscription details). Behavioral context (e.g., whether it requires prior setup) is also missing, making this incomplete for a creation 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?
Schema description coverage is 100%, so parameters are already well-documented. The description adds no additional meaning beyond what the schema provides, but does not contradict or omit any critical parameter info.
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 uses a specific verb ('Create') and resource ('webhook subscription'), clearly distinguishing it from sibling tools like delete_webhook, update_webhook, or list_webhooks. It leaves no ambiguity about the tool's primary action.
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 (e.g., when to create vs. update or test a webhook). The description does not mention any prerequisites, conditions, or context for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deactivate_userA
Deactivate a user. The user can no longer sign in but their historical activity is preserved.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | User ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden. It states the key behavioral change (no sign-in) and what is preserved (historical activity). Could add auth requirements, but adequate for a simple action.
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 concise sentences, front-loaded with verb and resource. No extraneous words.
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 single parameter and no output schema, description adequately covers function and effect. Could mention return value, but not critical for a straightforward deactivation.
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 coverage is 100% (only 'id' parameter with description 'User ID'). Description adds no extra meaning beyond schema, so baseline 3 is appropriate.
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?
Clear verb ('Deactivate'), specific resource ('user'), and outcome ('can no longer sign in but historical activity preserved'). Distinguishes from sibling like 'reactivate_user' and 'create_user'.
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?
Implies use case: disable login while preserving data. No explicit when-not-to-use or mention of alternative 'reactivate_user', but context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_webhookB
Delete a webhook.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Webhook ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full burden. It only states 'Delete' but does not disclose any behavioral traits such as irreversibility, required permissions, or side effects beyond the obvious.
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 short (one sentence) and front-loaded, but it lacks informative content. While not verbose, it could be more helpful without being overly long.
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 or output schema, and only one parameter, the description is incomplete. It does not explain consequences of deletion or differentiate from disabling, nor does it mention error conditions.
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% coverage with a description for the 'id' parameter ('Webhook ID'). The description adds no additional meaning beyond what the schema already provides, so the baseline of 3 is appropriate.
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 'Delete a webhook', specifying a specific verb and resource. It distinguishes from sibling tools like 'disable_webhook' or 'update_webhook' which have different actions.
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 like 'disable_webhook'. There are no prerequisites, context, or exclusion criteria mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disable_webhookA
Disable an active webhook.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Webhook ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It only states the action without detailing side effects (e.g., whether it stops delivery, is reversible), permissions required, or error conditions.
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 sentence with no wasted words. It is front-loaded and efficiently conveys the core purpose.
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 one-parameter tool with no output schema, the description is minimally adequate. However, it lacks context on what happens if the webhook is already disabled, any state constraints, or confirmation of the action.
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 coverage is 100% with the 'id' parameter described as 'Webhook ID' in the schema. The description adds no additional meaning beyond what the schema provides, thus baseline score of 3.
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 'Disable an active webhook.' clearly states the action (disable) and the resource (active webhook). It distinguishes from sibling tools like delete_webhook and enable_webhook by specifying the target state.
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 the tool is for active webhooks only, but does not explicitly exclude already disabled ones or mention alternatives like delete_webhook or enable_webhook. No when-not guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enable_webhookA
Enable a disabled webhook.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Webhook ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as prerequisites (e.g., webhook must exist and be disabled), side effects, or behavior if the webhook is already enabled.
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, concise sentence that is front-loaded and contains no unnecessary words or redundant information.
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 (1 parameter, no output schema), the description provides a minimal but acceptable baseline. However, it lacks completeness regarding preconditions and possible outcomes.
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 coverage is 100% with a single required 'id' parameter described as 'Webhook ID'. The description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.
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 'Enable a disabled webhook' clearly specifies the action (enable) and the resource (webhook). It also implicitly distinguishes from sibling tools like 'disable_webhook', 'create_webhook', and 'delete_webhook'.
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 explicit guidance on when to use this tool versus alternatives (e.g., 'disable_webhook', 'test_webhook'). The description implies it should be used on disabled webhooks, but lacks explicit context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_companiesB
Search the global company catalog. Returned IDs map to current_company_ids on candidate search.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query — matched against company name | |
| page | No | Page number (default: 1) | |
| limit | No | Items per page, max 100 (default: 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits like read-only status, pagination details, or result ordering. It only mentions that returned IDs map to candidate search, omitting other behaviors.
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 concise sentences, front-loaded with the primary action and followed by a key usage hint. No unnecessary words.
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?
Without an output schema, the description should clarify return format and pagination behavior. It mentions mapping IDs but omits details about other fields or paging, leaving gaps for AI agent decision-making.
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 coverage is 100%, so the schema describes all parameters. The description adds minimal semantic value beyond schema, linking results to candidate search but not enhancing parameter understanding.
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 'Search the global company catalog' and provides context about returned IDs. However, it does not differentiate from the sibling tool 'search_companies', leaving ambiguity about when to use which.
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 obtaining company IDs for candidate search, but does not specify when not to use it or provide alternatives. It lacks explicit guidance on selection among similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_currenciesA
List currencies. Returned IDs map to salary_currency_id on requisitions.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default: 1) | |
| limit | No | Items per page, max 100 (default: 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description falls short in disclosing behavioral traits such as auth requirements, rate limits, or any side effects. The read-only nature is implied but not explicitly confirmed.
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 at two sentences, front-loading the core action and adding a key detail about ID mapping without any wasted words.
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 optional parameters and no output schema, the description covers the essential purpose and mapping. It could mention return format or pagination, but is largely 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?
Schema coverage is 100% with descriptions for both parameters. The tool description adds no additional meaning beyond what the schema already provides, so baseline score 3 is appropriate.
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 lists currencies and explains the mapping to `salary_currency_id`, making it distinct from sibling tools which cover different entities like degrees, companies, etc.
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 fetching currency IDs for requisitions but does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_degreesB
List academic degrees, optionally filtered by name. Useful for discovering valid degree options for candidate education records.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Optional search term to filter degrees by name | |
| page | No | Page number (default: 1) | |
| limit | No | Items per page, max 100 (default: 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden of behavioral disclosure. It states basic purpose but omits details such as pagination behavior, whether listing all if query is empty, ordering, or output format. Not enough for informed selection.
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 clear, front-loaded sentences with no redundant information. Every word serves a purpose.
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?
Adequate for a simple list tool, but lacks description of return values (no output schema) and does not differentiate from sibling list_degrees, which could lead to confusion.
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 baseline is 3. The description adds little beyond the schema, only paraphrasing the query filter. No extra meaning for page or limit 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?
Description clearly states verb (list), resource (academic degrees), and optional filtering. However, it does not explicitly differentiate from the sibling tool list_degrees, which may perform a similar function without filtering.
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?
Description mentions usefulness for discovering degree options for candidate records, providing context, but lacks explicit guidance on when to use this tool versus list_degrees or other sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_disciplinesB
Search academic disciplines (fields of study).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query — matched against discipline name | |
| page | No | Page number (default: 1) | |
| limit | No | Items per page, max 100 (default: 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not disclose behavioral traits such as pagination defaults, case sensitivity, or result handling. Falls short of compensating for missing annotations.
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?
Single sentence, no fluff, but lacks substance. Conciseness is good but at expense of completeness.
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?
Simple tool with 3 parameters and no output schema; description fails to explain return format or any post-request behavior. Incomplete for effective use.
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 coverage is 100%, so description adds no extra meaning beyond schema. Baseline score of 3 applies.
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?
Description clearly states 'Search academic disciplines (fields of study)' which specifies verb and resource, and distinguishes from siblings like find_companies and find_degrees.
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 on when to use this tool vs alternatives like search_disciplines, which is a sibling. Missing context on appropriate scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_industriesB
List industries used to classify companies. Paginated; useful for discovering valid industry options.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default: 1) | |
| limit | No | Items per page, max 100 (default: 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; the description only notes pagination and purpose. It lacks details on read-only nature, permissions, rate limits, or any side effects beyond what is implied by 'list'.
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 concise sentences with no filler. Front-loaded with the primary action and followed by key context (paginated, purpose).
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?
Adequate for a simple listing tool, but lacks distinction from the sibling 'list_industries'. No output schema, so return format expectations are missing, though not strictly required.
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 coverage is 100%, so the schema already documents both parameters. The description adds 'Paginated' but no additional semantic meaning 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 tool lists industries used for company classification. However, it does not differentiate from the sibling tool 'list_industries', which has an almost identical purpose.
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 mentions the tool is useful for discovering valid industry options, implying when to use it. No explicit guidance on when not to use or alternatives like 'list_industries'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_institutionsB
Search academic institutions. Returned IDs map to institute_ids on candidate search.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query — matched against institution name | |
| page | No | Page number (default: 1) | |
| limit | No | Items per page, max 100 (default: 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, side effects, rate limits, or error states. The name 'find' implies read-only but is not explicit.
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 very concise, with two sentences that convey the essential purpose and a key usage note. No unnecessary words.
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?
The description explains the purpose and result usage but lacks details on pagination behavior, output format, error handling, and why to use this over the sibling 'search_institutions' tool. Output schema is missing, so the description should ideally describe the return 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?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds no additional meaning beyond noting the mapping of returned IDs, which does not directly aid parameter understanding.
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 searches academic institutions and explains how returned IDs are used in candidate search, which gives purpose and context. However, it does not differentiate from the sibling tool 'search_institutions'.
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 context by mentioning returned IDs map to candidate search, but no explicit when-to-use or when-not-to-use guidance is provided, nor are alternatives mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_locationsA
Search cities, states, and countries. The returned type discriminator (city|state|country) tells you which places_*_id field on candidate endpoints the id maps to. City results also include state_id and country_id (parent chain); State results include country_id; Country results have both as null.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query — matched against the place's full address | |
| page | No | Page number (default: 1) | |
| limit | No | Items per page, max 100 (default: 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description explains the return format (type discriminator and parent chain) and how id maps to candidate endpoints. It does not cover auth or rate limits, but the behavioral context provided is valuable.
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: the first states purpose, the second details return structure. Every word adds value, and it is front-loaded for quick understanding.
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?
Despite no output schema, the description thoroughly explains the return types and parent chain, enabling the agent to correctly interpret results. Combined with clear pagination parameters, it provides a complete picture.
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 coverage is 100%, so the description adds marginal parameter detail beyond the schema. It mentions query matching against full address, but this aligns with the schema description. Baseline score of 3 is appropriate.
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 searches for cities, states, and countries, uses a specific verb 'search', and distinguishes itself from sibling tools like find_companies or find_skills by focusing on locations.
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 location searches but provides no explicit guidance on when to use this tool versus alternatives, such as search_locations (which appears as a sibling) or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_skillsA
Search the global skill catalog. Returned IDs map to skill_ids on candidate search.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query — matched against skill name | |
| page | No | Page number (default: 1) | |
| limit | No | Items per page, max 100 (default: 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It indicates a search operation (presumably read-only) and hints at the pagination parameters from the schema, but does not disclose any behavioral traits like authentication needs, rate limits, or whether the search is case-sensitive. Adequate but not thorough.
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 concise sentence that efficiently communicates the tool's purpose and a key usage hint. No unnecessary words, but could be slightly more structured with bullet points or additional context.
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 (3 parameters, no output schema, no annotations), the description is minimally complete. It explains the purpose and a key mapping, but lacks details on return format, error handling, or behavior when no results are found. Adequate for a simple search tool but could improve.
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 coverage is 100%, so the schema already documents all three parameters (query, page, limit) with descriptions. The tool description adds no extra meaning beyond confirming that query matches skill names. Baseline 3 is appropriate.
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 uses a clear verb 'Search' and resource 'global skill catalog'. It also adds context by mentioning that returned IDs map to 'skill_ids' on candidate search, which differentiates it from similar find tools like find_companies or find_locations.
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 by linking skill IDs to candidate search, but it does not explicitly state when to use this tool versus alternatives or provide exclusions. No guidance on prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_tagsA
Search candidate tags (account-scoped). Returned IDs map to tag_ids on candidate search.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query — matched against tag name | |
| page | No | Page number (default: 1) | |
| limit | No | Items per page, max 100 (default: 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It only states the core function and mapping, but omits details like pagination behavior, rate limits, or any side effects. Minimal transparency beyond basic purpose.
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 action, and every sentence adds value. No redundancy or unnecessary information.
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 search tool with three parameters, the description covers the essential purpose and mapping. However, lacking an output schema, it does not specify the format of the returned data, which could be important for an agent using the output directly.
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 three parameters adequately. The description adds no extra meaning beyond what the schema provides, meeting the baseline but not surpassing it.
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 explicitly states the tool searches for account-scoped candidate tags, and explains how returned IDs map to tag_ids on candidate search. This clearly distinguishes it from sibling tools like find_skills or find_companies.
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 use when you need tag IDs for candidate search, but it does not provide explicit guidance on when to prefer this tool over alternatives or any when-not scenarios. The mapping hint is helpful but insufficient for full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_applicationA
Get details of a specific application. Only use when the user asks about a specific application.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Application ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full responsibility. The description indicates a read operation but does not disclose error behavior, authentication needs, or return format. Minimal but acceptable for a simple get-by-ID 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?
Two concise sentences with no superfluous information. Every word contributes to clarity.
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 one parameter, no output schema, and simple semantics, the description covers essential actions and usage guidance. Lacks details on return content but adequate for the complexity level.
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 coverage is 100% with the parameter 'id' described as 'Application ID'. The description adds no additional context beyond the schema, meriting the baseline score.
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 details') and resource ('specific application'), and differentiates from sibling tools like list_applications by specifying it's for a single application.
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?
Provides explicit guidance: 'Only use when the user asks about a specific application.' It does not mention alternatives or when not to use, but the context of sibling tools implies alternatives for listing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_candidateA
Retrieve full details of a specific candidate by ID, including all applications, tags, skills, and location. Use this when you already have the candidate ID. To find a candidate by name or attributes, use search_candidates first.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Candidate ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, but description covers what data is returned (full details, including specific fields). It implies a read-only retrieval. Could mention error handling for missing ID, but overall sufficient.
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, front-loaded with purpose and usage. No wasted words.
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 simplicity (1 param, no output schema), description covers key info. Could mention behavior if candidate not found, but not critical.
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 already has 100% coverage with one parameter (id). Description adds context on when to use but no additional syntax or format details. Baseline 3.
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 retrieves full details of a specific candidate by ID, listing included fields (applications, tags, skills, location). It distinguishes from sibling tools like search_candidates and list_candidates.
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?
Explicitly states when to use this tool (when you have the candidate ID) and when to use search_candidates first. Provides clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_email_templateA
Get full details for a single email or calendar-invite template, including subject, body, and owner.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Email template ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden. It clearly implies a read-only operation by stating 'Get full details'. No additional behavioral traits are disclosed, but the description is sufficient for a simple retrieval 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 a single clear sentence, front-loaded with the action and resource, with no unnecessary words.
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 get tool with one parameter and no output schema, the description adequately explains the purpose and return content.
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 coverage is 100% (id described as 'Email template ID'). The description does not add meaning beyond the schema, so baseline score of 3 is appropriate.
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), the resource (single email or calendar-invite template), and specific details (subject, body, owner), distinguishing it from the sibling tool list_email_templates.
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 does not explicitly state when to use or when not to use this tool, nor does it mention alternatives. Usage is implied from the context (use after obtaining an ID from list_email_templates), but no direct guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_interviewA
Get full details for a single interview, including interviewers, candidate, conference URL, scorecard refs.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Interview ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It states the operation is a retrieval but does not disclose behavioral traits like read-only guarantee, auth requirements, or rate limits. The listed return fields add some 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 a single, concise sentence (14 words) that efficiently conveys the tool's purpose and key return fields, with no wasted words.
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 read tool with one parameter and no output schema, the description adequately covers what the tool does and what it returns. It could mention error conditions or availability, but is mostly 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?
Schema coverage is 100% with one parameter 'id' described as 'Interview ID'. The description does not add extra meaning beyond the schema for the parameter, so baseline score of 3 is appropriate.
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 uses a specific verb 'Get' and resource 'interview', listing key fields (interviewers, candidate, conference URL, scorecard refs). It clearly distinguishes from sibling tools like list_interviews and other get tools.
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 use when full details of a single interview are needed, but does not explicitly compare with alternatives like list_interviews or get_interview_plan, nor state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_interviewers_availability_resultA
Poll for the result of a previous check_interviewers_availability call. Returns 200 with status=succeeded/failed when terminated, 202 with status=pending while running, 410 if expired (1-hour TTL after completion). Respect the Retry-After header — don't poll faster than every 5s. For production loads, prefer the interview.availability.computed webhook.
Each slot in the response includes interviewer_ids — the user IDs free at that slot. Use one of those IDs as interviewer_ids (and host_id for zoom) when calling create_interview.
| Name | Required | Description | Default |
|---|---|---|---|
| poll_id | Yes | poll_id returned by check_interviewers_availability (24-char hex string) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description fully discloses the polling lifecycle: status codes (200, 202, 410), TTL (1 hour), and retry advice. It also explains the response slots and how to use them.
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 with a clear first sentence, followed by status details, polling advice, and usage of results. No redundant information.
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 output schema, the description covers the response content (status, interviewer_ids) and how to apply them in downstream tools. It also addresses edge cases (expiration) and best practices (webhook).
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 single parameter `poll_id` is described in the schema with detail (24-char hex). The description adds no new semantics about the parameter itself, so baseline 3 applies.
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 it polls for the result of a previous `check_interviewers_availability` call, distinguishing it from the parent tool and alternatives like webhooks.
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?
It provides explicit guidance: when to use (after calling check_interviewers_availability), poll rate (respect Retry-After, not faster than 5s), and when to prefer the webhook for production.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_interview_planA
Read the interview plan configured on a job — stages with their pre-configured interview activities. Each activity's id is the stage_activity_id to pass to create_interview (which inherits the activity's scorecard config).
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Job ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool reads the interview plan and provides the relationship to create_interview. Although no annotations are present, the description sufficiently conveys the read-only 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 concise with three sentences that are front-loaded with the main purpose, and every sentence adds value.
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?
Despite lacking an output schema, the description fully explains what is returned (stages with activities) and how to use the IDs, making it complete for a simple read 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 single parameter 'job_id' is documented in the schema, and the description adds value by explaining the output structure and practical use of the returned IDs.
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 'Read the interview plan configured on a job' with a specific verb and resource, and distinguishes it from sibling tools like get_interview and list_interviews.
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?
It explains that each activity's id is the stage_activity_id to pass to create_interview, giving clear usage context. However, it doesn't explicitly state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_jobA
Retrieve full details of a specific job by ID, including description and interview stages. Use this when you already have the job ID. To find a job by title, use search_jobs first.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Job ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. It implies a read operation via 'retrieve' and lists return contents, but does not explicitly confirm it's non-destructive or mention error handling (e.g., invalid ID). Adequate for a simple get-by-ID 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?
Two concise sentences: first defines purpose and scope, second provides usage guidance. No unnecessary words; all content earns its place.
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 a single parameter, no output schema, and a simple retrieval operation, the description is complete. It explains what is returned (full details, description, interview stages) and the prerequisite workflow, leaving no gaps for the 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 covers id with 'Job ID' description (100% coverage). The description adds context by linking id to the workflow ('when you already have the job ID'), reinforcing its use without needing extra format details.
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 'Retrieve full details of a specific job by ID', specifying the verb and resource. It mentions included fields (description, interview stages) and distinguishes from sibling search_jobs via the usage hint.
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?
Explicitly tells when to use ('when you already have the job ID') and when not to ('to find a job by title, use search_jobs first'), providing a clear alternative tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_job_postA
Get details of a specific job post from the job board. Only use when the user asks about a specific job board listing.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Job post ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for behavioral disclosure. It correctly implies a read-only operation ('Get details') but does not elaborate on side effects, error handling, or required permissions.
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 concise sentence that efficiently conveys purpose and usage guidance without any extraneous information.
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 simple parameter set and lack of output schema, the description is mostly complete. However, it does not specify what properties the returned details include, which could be helpful for agents.
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 coverage is 100% and the parameter description ('Job post ID') is adequate. The tool description adds no additional semantic value beyond what the schema already provides.
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 retrieves details for a specific job post. It differentiates from list operations by specifying 'specific job board listing', though it does not explicitly distinguish from the sibling tool get_job.
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 includes a clear usage condition: 'Only use when the user asks about a specific job board listing.' This provides context but does not explicitly state when not to use or name alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_requisitionB
Get detailed information about a specific requisition, including description and custom field values.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Requisition ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. 'Get' implies a read-only operation, but no side effects, permissions, or rate limits are disclosed. The description is adequate but could be more explicit about behavioral guarantees.
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 clear sentence that directly states the tool's purpose, with no redundancy or unnecessary words.
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 get-by-ID tool with one parameter and no output schema, the description is adequate. It mentions what is returned (description and custom field values) but lacks details on prerequisites like obtaining the ID from list_requisitions or full response 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?
Schema coverage is 100% with a single parameter 'id' described as 'Requisition ID'. The description adds no extra parameter meaning beyond what the schema provides, so baseline 3 is appropriate.
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 it retrieves detailed information about a specific requisition, including description and custom field values. This distinguishes it from other 'get_' tools like get_application or get_candidate by specifying the resource, but it could better differentiate from list_requisitions.
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, such as requiring an ID from list_requisitions, or when to consider alternatives like list_requisitions for multiple records. Usage is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_roleA
Retrieve a single role by ID. Response includes a permissions object mapping resource:action keys (e.g. users:manage, jobs:read) to booleans indicating whether the role grants each one.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Role ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description is the sole source. It mentions the response includes a permissions object, but does not disclose error conditions, authentication needs, or rate limits.
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, no fluff. The response structure is explained upfront. Every sentence adds value.
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?
No output schema exists, but the description adequately explains the response format (permissions object). Lacks mention of error handling, but for a simple retrieval it is reasonably 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?
Schema coverage is 100%, and the description adds no extra meaning beyond the schema's description of the 'id' parameter. Baseline 3 is appropriate.
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 it retrieves a single role by ID and details the response structure. It distinguishes from sibling tools like list_roles.
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 explicit guidance on when to use versus alternatives. Siblings include many retrieval tools, but no comparison or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_scorecard_templateA
Get full details for a single scorecard template — questions, feedback/rating descriptions, and segmentation.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Scorecard template ID |
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 correctly indicates a read operation ('get full details') but does not disclose behaviors like error handling, required permissions, or rate limits. For a simple retrieval tool, this is adequate but lacks extra 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 a single, front-loaded sentence that conveys purpose and included details without any wasted words. Every word earns its place.
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 (one required parameter, no output schema), the description is fairly complete. It explains what the tool does and what information it returns. It could mention the output structure, but that is not necessary for a straightforward retrieval 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% coverage with one parameter 'id' described as 'Scorecard template ID'. The description adds no additional meaning beyond the schema, so the baseline of 3 is appropriate.
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 full details' and the resource 'scorecard template', and specifies what is included: questions, feedback/rating descriptions, and segmentation. This distinguishes it from sibling 'list_scorecard_templates' which likely provides only summary information.
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 use when you need the full details of a specific template, contrasting with list tools. However, it does not explicitly state when not to use it or mention alternatives like 'list_scorecard_templates' for overviews.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_userA
Retrieve a single user by ID. Response includes a permissions array of resource:action keys granted by the user's role.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | User ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It adds useful detail about the permissions array in the response. However, it lacks disclosure of error conditions, side effects, or authorization requirements.
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, front-loaded with the main action. Every word is meaningful with no repetition or unnecessary information.
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 retrieval tool with one parameter, the description adequately covers what the tool does and hints at response structure. Missing explicit return format details, but the permissions array info adds value.
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 coverage is 100% for the single parameter 'id,' which already has a description. The tool description adds no additional meaning beyond what the schema provides, meeting the baseline.
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 'Retrieve a single user by ID,' which is a specific verb and resource. It uniquely identifies the tool's function among many list and search siblings.
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 on when to use this tool versus alternatives like list_users or search_candidates. No mention of prerequisites, context, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_webhookB
Get details of a specific webhook.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Webhook ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only says 'get details' without mentioning read-only nature, side effects, or any behavioral traits.
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?
A single, concise sentence with no wasted words, perfectly 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 simple read tool with one parameter, the description is sufficient but lacks context about when to use it relative to listing webhooks. No output schema is provided.
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 coverage is 100% with a single 'id' parameter described as 'Webhook ID'. The description adds no additional semantics 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?
Clearly states it retrieves details for a specific webhook, using a verb-resource structure that distinguishes it from siblings like list_webhooks or delete_webhook.
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?
Provides no guidance on when to use this tool versus alternatives like list_webhooks or get_webhook_sample_payload.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_webhook_sample_payloadB
Get a sample webhook payload for a specific event type.
| Name | Required | Description | Default |
|---|---|---|---|
| event_type | Yes | Event type to get sample payload for (e.g. application.created) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not disclose authentication needs, rate limits, or response format. Minimal behavioral insight beyond the obvious get operation.
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?
Single sentence with no redundancy. Perfectly concise 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 simple get with one parameter, the description is adequate but lacks details on the payload structure or usage context. Could be improved but meets minimum viability.
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 has 100% coverage for the single parameter 'event_type' with a clear example. Description adds no extra meaning beyond the schema. Baseline 3 appropriate.
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?
Clearly states the verb 'Get' and resource 'sample webhook payload' for a specific event type. Distinguishes from sibling webhook tools like get_webhook (actual webhook) and list_webhooks (list all).
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 on when to use this tool versus alternatives like test_webhook or list_webhook_events. Implies usage for previewing payloads, but no explicit context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_application_interviewsA
List the interviews scheduled on a specific application. Same as list_interviews but scoped to one application (the application_id goes in the path, not as a filter). Cancelled interviews are included by default — use meeting_status=cancelled etc. to filter.
| Name | Required | Description | Default |
|---|---|---|---|
| application_id | Yes | ID of the application (candidate's submission to a job). Use list_applications to discover. | |
| page | No | Page number (default: 1) | |
| limit | No | Items per page (default: 20, max: 100) | |
| interviewer_ids | No | Comma-separated user IDs of participants | |
| organizer_ids | No | Comma-separated user IDs (the user who scheduled the interview) | |
| meeting_status | No | Comma-separated statuses: not_started, in_progress, ended, cancelled, candidate_no_show | |
| kind | No | Comma-separated kinds: one_on_one, panel, external | |
| location | No | Comma-separated locations: onsite, phone, zoom, google_meet, microsoft_teams, hackerrank | |
| ai_note_taker_enabled | No | Filter by AI note-taker flag | |
| start_time_after | No | Inclusive lower bound on start_time (ISO 8601) | |
| start_time_before | No | Inclusive upper bound on start_time (ISO 8601) | |
| created_after | No | Filter by created date (ISO 8601 inclusive) | |
| created_before | No | Filter by created date (ISO 8601 inclusive) | |
| updated_after | No | Filter by updated date (ISO 8601 inclusive) | |
| updated_before | No | Filter by updated date (ISO 8601 inclusive) | |
| sort_by | No | Sort field (default: created_at) | |
| sort_order | No | Sort direction (default: desc) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses that cancelled interviews are included by default, which is a key behavioral trait. Could mention pagination limits but schema covers that.
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, no fluff. First sentence states purpose and differentiation, second adds key default and filtering guidance. Efficient 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 listing tool with 17 parameters and no output schema, the description covers the most important context: scope differentiation and default filter behavior. Could expand minimally, but sufficient.
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%, baseline 3. The description adds value by noting that application_id goes in the path and suggesting list_applications to discover it, going beyond 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 'List the interviews scheduled on a specific application' and directly distinguishes itself from the sibling tool 'list_interviews' by specifying the scope and parameter placement.
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?
Provides context on default behavior (cancelled interviews included) and how to filter with meeting_status. Implies when to use this tool over list_interviews, though does not explicitly state when not to.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_application_notesC
List notes on a specific application.
| Name | Required | Description | Default |
|---|---|---|---|
| application_id | Yes | Application ID | |
| page | No | Page number | |
| limit | No | Items per page | |
| sort_by | No | Field to sort by (default: created_at) | |
| sort_order | No | Sort direction (default: desc) | |
| created_after | No | ISO 8601 datetime lower bound on created_at | |
| created_before | No | ISO 8601 datetime upper bound on created_at | |
| updated_after | No | ISO 8601 datetime lower bound on updated_at | |
| updated_before | No | ISO 8601 datetime upper bound on updated_at |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It only states 'List notes' which implies read-only, but it does not mention pagination, sorting, filtering, or potential performance implications. The schema includes many parameters for filtering and ordering, but the description is silent on how they affect 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 sentence, which is concise but under-specified. It efficiently states the basic purpose but lacks important details for a tool with many parameters. It is not verbose but also not optimally informative.
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 9 parameters and no output schema, the description is incomplete. It does not explain the return format, default values, or how parameter combinations work. The context signals indicate high complexity, yet the description provides minimal context.
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 baseline is 3. The description adds no additional semantic meaning beyond the schema fields. It does not explain how the parameters interact or provide examples.
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 (List) and resource (notes on a specific application). It is specific enough to distinguish from tools like create_application_note or update_application_note, but does not differentiate from potential sibling tool get_application which might also include notes.
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 usage guidance is provided. There is no indication of when to use this tool versus alternatives like create_application_note or get_application. The context signals show many sibling tools, but the description does not help an agent decide between them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_applicationsA
List job applications. Only use when the user explicitly asks about applications.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number | |
| limit | No | Items per page | |
| job_id | No | Filter by job ID | |
| status | No | Comma-separated application statuses to filter by (active, hired, rejected, duplicate) | |
| stage_ids | No | Comma-separated stage IDs to filter by | |
| credited_to_user_ids | No | Comma-separated user IDs to filter by credited user | |
| sort_by | No | Field to sort by | |
| sort_order | No | Sort direction | |
| created_after | No | Filter by created date (ISO 8601, inclusive lower bound) | |
| created_before | No | Filter by created date (ISO 8601, inclusive upper bound) | |
| updated_after | No | Filter by updated date (ISO 8601, inclusive lower bound) | |
| updated_before | No | Filter by updated date (ISO 8601, inclusive upper bound) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must cover behavioral traits. It only says 'List job applications' without mentioning pagination, permissions, or that it is read-only. The name implies listing, but safety or side effects are not disclosed.
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 concise sentences, front-loaded with purpose and usage condition. No wasted words.
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?
With 12 parameters, no output schema, and many sibling list tools, the description is too minimal. It does not explain pagination, filtering, or return format, leaving the agent with 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?
Schema coverage is 100%, so description does not need to add param info. It adds no extra meaning beyond what is in the schema, meeting the baseline.
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 'List' and resource 'job applications', and adds a usage condition 'Only use when the user explicitly asks about applications', which distinguishes it from other tools.
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?
Explicitly states when to use ('only when user asks about applications'), but does not mention alternatives like 'get_application' for single applications or 'search_candidates' for broader queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_candidatesA
List candidates with simple filters: email, date ranges, and sorting. Use this for browsing or filtering by exact email. For full-text search or filtering by skills, tags, location, job pipeline, or resume presence — use search_candidates instead.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default: 1) | |
| limit | No | Items per page (default: 20, max: 100) | |
| No | Filter by exact email address | ||
| sort_by | No | Field to sort by (default: created_at) | |
| sort_order | No | Sort direction (default: desc) | |
| created_after | No | Return candidates created on or after this ISO 8601 datetime | |
| created_before | No | Return candidates created on or before this ISO 8601 datetime | |
| updated_after | No | Return candidates updated on or after this ISO 8601 datetime | |
| updated_before | No | Return candidates updated on or before this ISO 8601 datetime |
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 describes the tool as 'list' implying read-only, but does not explicitly state authorization needs, rate limits, or pagination behavior beyond what the schema provides. It adds minimal behavioral context beyond the schema.
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 long, front-loaded with the purpose, and efficiently directs to the sibling tool. No unnecessary words.
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?
The tool is straightforward with no output schema and all parameters described. The description covers the tool's scope and usage boundaries, which is sufficient for an agent to decide when to invoke it. Slightly misses a note on default ordering or return format, but the schema handles defaults.
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 coverage is 100%, so the baseline is 3. The description mentions email, date ranges, and sorting, which maps to several parameters but does not add detailed semantics beyond the schema descriptions. It provides a high-level overview but no extra value for individual 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 lists candidates with simple filters like email, date ranges, and sorting. It explicitly distinguishes itself from the sibling tool 'search_candidates' by specifying the exact use cases for each.
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?
It provides explicit guidance on when to use this tool ('browsing or filtering by exact email') and when not to, directing the agent to 'search_candidates' for full-text search or other complex filters. This is exemplary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_conference_hostsA
List users eligible to be the conference host_id (e.g., for Zoom — they have an active workspace seat). Used when scheduling video-conference interviews.
| Name | Required | Description | Default |
|---|---|---|---|
| provider | Yes | Conference provider | |
| query | No | Filter by name/email substring | |
| page | No | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as pagination, auth requirements, or side effects beyond the basic list operation.
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 concise sentences with zero wasted words, front-loading the purpose and usage context effectively.
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?
No output schema exists, and the description does not indicate what the return values look like or mention pagination behavior, leaving agents with incomplete information.
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 schema coverage is 50% (descriptions for provider and query, but not page and limit). The description adds context about scheduling interviews but does not explain parameter meanings beyond what the schema provides, so baseline score applies.
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 'List' and the resource 'users eligible to be the conference host_id', with an example for Zoom, making the purpose unambiguous and distinct from sibling tools.
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 says 'Used when scheduling video-conference interviews', providing clear context for when to use the tool, though it does not mention when not to use it or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_custom_fieldsA
List custom fields configured in the organization. The type parameter is required — specify job, candidate, requisition, or offer.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Subject type to filter by: job, candidate, requisition, or offer | |
| page | No | Page number | |
| limit | No | Items per page | |
| sort_by | No | Field to sort by (default: created_at) | |
| sort_order | No | Sort direction (default: desc) | |
| created_after | No | Filter by created date (ISO 8601, inclusive lower bound) | |
| created_before | No | Filter by created date (ISO 8601, inclusive upper bound) | |
| updated_after | No | Filter by updated date (ISO 8601, inclusive lower bound) | |
| updated_before | No | Filter by updated date (ISO 8601, inclusive upper bound) | |
| department_ids | No | Comma-separated department IDs — returns fields that apply to any of these departments and fields with no department restriction | |
| office_ids | No | Comma-separated office IDs — returns fields that apply to any of these offices and fields with no office restriction |
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 only says 'List' which implies read-only, but lacks details on pagination behavior, filtering defaults, or any side effects. More context is needed for an agent to understand the tool's 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?
Two sentences with no wasted words. The purpose and key constraint are front-loaded. 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?
With 11 parameters and no output schema, the description is too minimal. It does not explain output format, pagination behavior, or how filters interact. An agent lacks sufficient context to use the tool 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?
Schema description coverage is 100%, so baseline is 3. The description adds only that 'type' is required, which is already in the schema. No additional parameter meaning 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 tool lists custom fields and specifies the required 'type' parameter with four distinct values, making the purpose unambiguous and distinct from sibling list tools like list_requisition_fields.
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 that the 'type' parameter is required and provides the acceptable values, giving clear usage guidance. However, it does not mention when not to use this tool or suggest alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_degreesB
List all available academic degrees.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fails to disclose behavioral traits such as authentication requirements, result ordering, or pagination. It only states it lists all degrees, which is minimal.
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, concise sentence that immediately conveys the tool's purpose with no extraneous words.
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 no parameters, the description is minimally adequate. However, it could mention whether results are paginated or ordered to be fully 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 input schema has zero parameters, so the description naturally adds no parameter meaning beyond the schema. According to guidelines, 0 parameters yields a baseline of 4.
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 ('list') and resource ('academic degrees'), providing a clear purpose. However, it does not differentiate from the sibling tool 'find_degrees', which may have similar functionality.
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 like 'find_degrees'. The description lacks any context about appropriate usage scenarios or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_departmentsA
List all departments as a flat paginated list. Each record has a parent_id to reconstruct the hierarchy client-side.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number | |
| limit | No | Items per page | |
| sort_by | No | Field to sort by (default: created_at) | |
| sort_order | No | Sort direction (default: desc) | |
| created_after | No | ISO 8601 datetime lower bound on created_at | |
| created_before | No | ISO 8601 datetime upper bound on created_at | |
| updated_after | No | ISO 8601 datetime lower bound on updated_at | |
| updated_before | No | ISO 8601 datetime upper bound on updated_at |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses the flat list structure and client-side hierarchy reconstruction, which is sufficient for a read-only list operation. Does not mention authentication or rate limits, but those are less critical for a list 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?
Two concise sentences, front-loaded with purpose followed by a key structural detail. No wasted words.
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?
Adequate for a simple list tool, but without an output schema, the description could have elaborated on the return format or fields beyond parent_id. The parameter schemas are well-documented, so overall it's minimally 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?
Schema coverage is 100% with descriptions for all 8 parameters. The description adds no additional parameter-level information beyond what the schema provides, so baseline 3 is appropriate.
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?
Clearly states 'List all departments' with specific verb and resource. Adds unique detail about flat paginated list and parent_id for hierarchy reconstruction, distinguishing it from other list tools.
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?
Indicates when to use (to list departments) but lacks explicit guidance on when not to use or alternatives. The hierarchy reconstruction hint provides some context, but no direct comparison to other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_email_templatesA
List email and calendar-invite templates configured for the account. Per-interview snapshots and system templates are excluded. Use this to discover interviewer_template_id and candidate_template_id for create_interview.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| query | No | Filter by template name (case-insensitive substring) | |
| channel | No | Filter by delivery channel | |
| categories | No | Comma-separated categories: adhoc, interview_coordination, interviewer_coordination, email_activity, application_submission, assessment, rejection, offer, self_schedule_invite, availability, survey | |
| owner_ids | No | Comma-separated owner user IDs | |
| sort_by | No | ||
| sort_order | No | ||
| created_after | No | ||
| created_before | No | ||
| updated_after | No | ||
| updated_before | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses exclusion of per-interview snapshots and system templates. No annotations provided, so description carries full burden; but it lacks details on pagination, authorization, or rate limits.
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 well-structured sentences. First states what the tool does, second gives a concrete use case. No redundant information.
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 12 parameters, no output schema, and no annotations, the description covers purpose and a key usage scenario but lacks details on return structure, pagination defaults, and filter behavior. Adequate but with 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?
Schema coverage is 33% (4 of 12 params have descriptions). Description adds the use-case context (returning template IDs) but does not compensate for the many undocumented parameters like page, limit, date filters. Baseline 3 with partial compensation.
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?
Clear verb 'list' with specific resource 'email and calendar-invite templates', excludes snapshots/system templates, and explicitly tells agent to use it for discovering template IDs for create_interview. Distinguishes from siblings like get_email_template.
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?
Explicitly states when to use (discover template IDs for create_interview) and what is excluded. Does not explicitly mention alternatives, but the purpose is clear enough for an agent to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_industriesB
List all available industries.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states 'list', implying a read operation. It does not disclose potential pagination, response format, authentication requirements, or any side effects. The agent is left with minimal behavioral insight.
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, concise sentence that delivers the core purpose without any extraneous information. It is appropriately front-loaded and 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?
Given the simple nature of the tool (no parameters, no output schema), the description is minimally adequate. However, it lacks details about the return structure, any implicit limits, or how the list is ordered. A more complete description would mention typical fields returned.
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 no parameters, and the schema coverage is 100%. With zero parameters, the baseline is 4. The description adds appropriate context by specifying that it lists all available industries, which is consistent with 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 'List all available industries' clearly specifies the action (list) and resource (industries) with a scope ('all available'). However, it does not differentiate from the sibling tool 'find_industries', which may have similar functionality.
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?
There is no guidance on when to use this tool versus alternatives like 'find_industries'. The description does not mention any preconditions, exclusions, or contextual cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_interviewsA
List interviews for the account. Supports rich multi-value filters: by job, application, candidate, interviewer, organizer, recruiter, department, office, status, kind, location, AI note-taker flag, and start_time window. Cancelled interviews are included by default — use meeting_status=cancelled etc. to filter.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default: 1) | |
| limit | No | Items per page (default: 20, max: 100) | |
| job_ids | No | Comma-separated job IDs | |
| application_ids | No | Comma-separated application IDs | |
| candidate_ids | No | Comma-separated candidate IDs | |
| interviewer_ids | No | Comma-separated user IDs of participants | |
| organizer_ids | No | Comma-separated user IDs (the user who scheduled the interview) | |
| recruiter_ids | No | Comma-separated credited-recruiter user IDs (filters by job's credited recruiter) | |
| department_ids | No | Comma-separated job-department IDs | |
| office_ids | No | Comma-separated office IDs | |
| meeting_status | No | Comma-separated statuses: not_started, in_progress, ended, cancelled, candidate_no_show | |
| kind | No | Comma-separated kinds: one_on_one, panel, external | |
| location | No | Comma-separated locations: onsite, phone, zoom, google_meet, microsoft_teams, hackerrank | |
| ai_note_taker_enabled | No | Filter by AI note-taker flag | |
| start_time_after | No | Inclusive lower bound on start_time (ISO 8601) | |
| start_time_before | No | Inclusive upper bound on start_time (ISO 8601) | |
| created_after | No | Filter by created date (ISO 8601 inclusive) | |
| created_before | No | Filter by created date (ISO 8601 inclusive) | |
| updated_after | No | Filter by updated date (ISO 8601 inclusive) | |
| updated_before | No | Filter by updated date (ISO 8601 inclusive) | |
| sort_by | No | Sort field (default: created_at) | |
| sort_order | No | Sort direction (default: desc) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description transparently discloses that cancelled interviews are included by default and that filters are rich. It does not mention authentication, rate limits, or performance, but the core behavior of listing is well-described. The default inclusion of cancelled interviews is a notable trait beyond basic filtering.
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: the first states the main purpose, the second summarizes filters and the default behavior tip. It is extremely concise, front-loaded, and every sentence adds value. No wasted words.
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 22 parameters and no output schema, the description covers the essential: account-wide listing, rich filters, and the default inclusion of cancelled interviews. It lacks mention of pagination or output format, but the schema already describes pagination params. Overall, it is sufficiently complete for a listing 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?
Since schema coverage is 100%, the baseline is 3. The description adds a summary of filter dimensions but does not provide additional meaning beyond what the schema's parameter descriptions already offer. The summary helps quick understanding but does not significantly enhance parameter semantics.
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 lists interviews for the account, using a specific verb and resource. It distinguishes itself from sibling tools like get_interview (single) and list_application_interviews (scoped) by emphasizing account-wide scope and rich multi-value filters.
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 gives a clear usage tip about cancelled interviews being included by default and how to filter them. However, it does not explicitly contrast with list_application_interviews or other sibling tools, leaving some ambiguity about when to use this vs. the scoped variant.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_job_postsA
List published job posts on the job board. Only use when the user explicitly asks about job board listings.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number | |
| limit | No | Items per page | |
| department_ids | No | Comma-separated department IDs to filter by | |
| office_ids | No | Comma-separated office IDs to filter by |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must compensate. States it's a read operation listing published posts, but lacks details on pagination, sorting, or permissions. Adequate but not rich.
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 concise sentences, front-loaded with the main purpose. No wasted words.
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?
No output schema, but the description covers purpose and usage condition. Lacks return format details, but sufficient for a simple list 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?
All 4 parameters are documented in the input schema (100% coverage), but the description adds no extra meaning beyond the schema. Baseline 3 is appropriate.
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?
Description clearly states 'List published job posts on the job board', providing a specific verb and resource. It distinguishes from siblings like list_jobs and get_job_post.
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?
Explicitly says 'Only use when the user explicitly asks about job board listings', giving clear context. Does not mention when not to use or list alternatives, but sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_jobsA
List jobs with SQL-based filters and sorting. Use this for browsing jobs or filtering by status, department, office, or date ranges. For title search (partial match supported), use search_jobs instead.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default: 1) | |
| limit | No | Items per page (default: 20, max: 100) | |
| department_ids | No | Comma-separated department IDs to filter by (includes descendants) | |
| office_ids | No | Comma-separated office IDs to filter by | |
| status | No | Comma-separated statuses to filter by: draft, pending_approval, rejected, scheduled, published, closed, archived | |
| sort_by | No | Field to sort by (default: created_at) | |
| sort_order | No | Sort direction (default: desc) | |
| created_after | No | Return jobs created on or after this ISO 8601 datetime | |
| created_before | No | Return jobs created on or before this ISO 8601 datetime | |
| updated_after | No | Return jobs updated on or after this ISO 8601 datetime | |
| updated_before | No | Return jobs updated on or before this ISO 8601 datetime |
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 mentions 'SQL-based filters' which hints at query capabilities but doesn't disclose specifics like response structure, pagination limits beyond those in schema, or idempotency. For a list tool, the safety profile is implied, but the description is minimal.
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, front-loaded with purpose, and no superfluous words. Every sentence earns its place: the first defines functionality, the second provides usage guidance.
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?
The tool has 11 optional parameters and no output schema. The description covers the primary use cases and differentiates from siblings. It could elaborate on return format or pagination, but for a typical list operation, it is reasonably 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?
Schema coverage is 100% with descriptions for all 11 parameters, so baseline is 3. The description adds overall context about filtering dimensions (status, department, office, dates) but no new details beyond the schema. It does not compensate for any gaps.
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 'List jobs with SQL-based filters and sorting,' specifying the verb and resource. It explicitly distinguishes from the sibling tool search_jobs by directing title searches there, leaving no ambiguity.
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 explicit when-to-use advice: 'Use this for browsing jobs or filtering by status, department, office, or date ranges.' It also tells when not to use it: 'For title search (partial match supported), use search_jobs instead.' This is model guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_job_stagesC
List all pipeline stages for a specific job.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Job ID | |
| page | No | Page number | |
| limit | No | Items per page | |
| sort_by | No | Field to sort by (default: created_at) | |
| sort_order | No | Sort direction (default: desc) | |
| created_after | No | ISO 8601 datetime lower bound on created_at | |
| created_before | No | ISO 8601 datetime upper bound on created_at | |
| updated_after | No | ISO 8601 datetime lower bound on updated_at | |
| updated_before | No | ISO 8601 datetime upper bound on updated_at |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must cover behavioral traits. It only states 'List all pipeline stages', implying a read operation, but provides no details on pagination, performance, or side effects. The description adds minimal value beyond the tool name.
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, concise sentence that immediately conveys the tool's purpose. It avoids redundancy and is front-loaded. While efficient, it could be slightly more informative without becoming verbose.
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 9 parameters, no output schema, and no annotations, the description is insufficient. It does not explain the return format, pagination behavior, or any constraints beyond the schema. The context is incomplete 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 schema has 100% description coverage, so each parameter's purpose is clear from the schema alone. The description does not add any additional context or meaning beyond what is already in the input schema. Baseline score of 3 is appropriate.
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 'List' and the resource 'pipeline stages for a specific job'. It implies the scope is bounded by job_id, distinguishing it from similar list tools like list_stage_activities. However, it lacks explicit differentiation from sibling tools.
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 usage guidelines are provided. There is no mention of when to use this tool over alternatives, nor any prerequisites or context that would help an agent decide to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_milestonesB
List all hiring milestones (pipeline stage groupings) in the organization.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number | |
| limit | No | Items per page | |
| sort_by | No | Field to sort by (default: created_at) | |
| sort_order | No | Sort direction | |
| created_after | No | Filter by created date (ISO 8601, inclusive lower bound) | |
| created_before | No | Filter by created date (ISO 8601, inclusive upper bound) | |
| updated_after | No | Filter by updated date (ISO 8601, inclusive lower bound) | |
| updated_before | No | Filter by updated date (ISO 8601, inclusive upper bound) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description bears full burden. It only states 'list' (implying read-only) but omits behavioral traits like pagination behavior, data freshness, or permission requirements. The schema hints at filtering but description adds no 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?
Single sentence with no waste. However, for an 8-parameter tool, slightly more structure (e.g., listing defaults) could improve usability without losing conciseness.
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 8 parameters and no output schema, the description is too minimal. It does not explain return format, pagination defaults, or sorting behavior. The schema helps but the description should provide higher-level context for effective tool selection.
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 coverage is 100% with each parameter described adequately. The tool description adds no additional meaning beyond the schema, so a baseline of 3 is appropriate.
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 (list) and the resource (milestones, defined as pipeline stage groupings). This distinguishes it from sibling list tools that target different entities (applications, candidates, jobs, etc.).
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. With many sibling list tools, explicit usage context would be helpful but is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_officesB
List all offices in the organization.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number | |
| limit | No | Items per page | |
| sort_by | No | Field to sort by (default: created_at) | |
| sort_order | No | Sort direction (default: desc) | |
| created_after | No | ISO 8601 datetime lower bound on created_at | |
| created_before | No | ISO 8601 datetime upper bound on created_at | |
| updated_after | No | ISO 8601 datetime lower bound on updated_at | |
| updated_before | No | ISO 8601 datetime upper bound on updated_at |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states the purpose without mentioning pagination, authentication requirements, rate limits, or read-only nature (though implied by 'list').
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 sentence, making it very concise and front-loaded. However, it could be slightly more informative without sacrificing brevity.
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 8 optional parameters and no output schema, the description is insufficient. It does not mention pagination, filtering behavior, or return format, leaving the agent to infer from parameter names alone.
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 coverage is 100%, so baseline is 3. The description adds no additional meaning beyond what is already in the schema. It does not explain how parameters interact or provide usage 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 lists all offices in the organization. It uses a specific verb and resource, differentiating it from sibling tools that list other entities.
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. There is no mention of prerequisites, complementing tools, or situations where other tools would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_rejection_reasonsB
List all rejection reasons configured in the organization.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number | |
| limit | No | Items per page | |
| sort_by | No | Field to sort by (default: created_at) | |
| sort_order | No | Sort direction (default: desc) | |
| created_after | No | Filter by created date (ISO 8601, inclusive lower bound) | |
| created_before | No | Filter by created date (ISO 8601, inclusive upper bound) | |
| updated_after | No | Filter by updated date (ISO 8601, inclusive lower bound) | |
| updated_before | No | Filter by updated date (ISO 8601, inclusive upper bound) | |
| enabled | No | Filter by enabled status | |
| group | No | Filter by rejection reason group |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full burden but only says 'list all rejection reasons'. It does not disclose pagination, sorting, filtering, or any behavioral traits beyond the bare action.
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?
One sentence, no wasted words, front-loaded with the key action and resource. Very concise.
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?
Despite lacking output schema and having 10 parameters, the description is minimal. It does not explain what rejection reasons are, that results are paginated, or any details about the response.
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 coverage is 100%; all parameters are described in the schema. The description adds no additional meaning beyond the schema, so baseline of 3.
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 (list) and resource (rejection reasons) with scope 'in the organization'. It is specific and distinguishable from sibling tools.
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 on when to use this tool versus alternative list tools. Does not provide context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_requisition_fieldsA
List default and custom field definitions for requisitions. Hidden fields are excluded. Optionally filter by department or office.
| Name | Required | Description | Default |
|---|---|---|---|
| department_ids | No | Comma-separated department IDs to filter scoped custom fields | |
| office_ids | No | Comma-separated office IDs to filter scoped custom fields |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that hidden fields are excluded and that filtering is optional, which are behavioral traits. However, without annotations, more context like return format, pagination, or permission requirements would be beneficial. It adds some value beyond structured fields.
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-loading the main action and then adding key nuance about hidden fields and filtering. Every sentence serves a purpose with no wasted words.
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 list tool with no output schema and two optional parameters, the description is fairly complete. It clarifies that hidden fields are excluded, which is important. It could mention if system fields are included, but overall adequate.
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?
Both parameters are fully described in the input schema (100% coverage). The description's mention of optional filtering adds no new meaning beyond what the schema already provides. Baseline score of 3 is appropriate.
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 'list' and the resource 'field definitions for requisitions', specifying that it includes default and custom fields but excludes hidden fields. This distinguishes it from sibling tools like list_custom_fields which likely list all custom fields across entities.
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 when to use (when needing field definitions for requisitions) but does not explicitly contrast with siblings like list_custom_fields or other list tools. No exclusions or alternative recommendations are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_requisitionsC
List all requisitions for your account, respecting permissions.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number | |
| limit | No | Items per page | |
| status | No | Comma-separated statuses to filter by (draft, pending_approval, approved, rejected, created, open, filled, closed, archived) | |
| department_ids | No | Comma-separated department IDs to filter by | |
| employment_type | No | Comma-separated employment types to filter by (full_time, part_time, contract, internship, temporary, seasonal) | |
| requisition_type | No | Comma-separated requisition types to filter by (new_hire, contract, backfill, internship, internal) | |
| recruiter_ids | No | Comma-separated recruiter user IDs to filter by | |
| hiring_manager_ids | No | Comma-separated hiring manager user IDs to filter by | |
| office_ids | No | Comma-separated office IDs to filter by | |
| job_ids | No | Comma-separated job IDs to filter by | |
| created_by_ids | No | Comma-separated user IDs to filter by creator | |
| query | No | Full-text search query | |
| sort_by | No | Field to sort by (default: created_at) | |
| sort_order | No | Sort direction | |
| created_after | No | Filter by created date (ISO 8601, inclusive lower bound) | |
| created_before | No | Filter by created date (ISO 8601, inclusive upper bound) | |
| updated_after | No | Filter by updated date (ISO 8601, inclusive lower bound) | |
| updated_before | No | Filter by updated date (ISO 8601, inclusive upper bound) | |
| target_hire_date_after | No | Filter by target hire date lower bound (YYYY-MM-DD) | |
| target_hire_date_before | No | Filter by target hire date upper bound (YYYY-MM-DD) | |
| target_start_date_after | No | Filter by target start date lower bound (YYYY-MM-DD) | |
| target_start_date_before | No | Filter by target start date upper bound (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'respecting permissions' but does not explain what happens if permissions are insufficient. With no annotations, it fails to disclose pagination, sorting defaults, or error handling. Minimal 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 extremely concise at 7 words, stating purpose immediately. However, for a tool with 22 parameters, it could benefit from slightly more context without losing conciseness.
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?
The description is incomplete for a complex tool. It lacks mention of return value structure, pagination behavior, or any specifics about how the many filters interact. No output schema exists to compensate.
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 coverage is 100%, so baseline is 3. The description adds no additional meaning beyond the pre-existing parameter descriptions in the schema. It does not explain how to use filters effectively.
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 'list' and resource 'requisitions', but does not distinguish from sibling tools like get_requisition or list_requisitions_fields. It implies a list operation but lacks specificity about scope and filtering.
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 on when to use this tool versus alternatives such as get_requisition or list_requisitions_fields. The description mentions 'for your account' but doesn't clarify how it differs from other list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_rolesA
List roles available in the account. Use this to discover valid role_id values for create_user and update_user.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number | |
| limit | No | Items per page | |
| sort_by | No | Field to sort by (default: created_at) | |
| sort_order | No | Sort direction | |
| created_after | No | ISO 8601 datetime lower bound on created_at | |
| created_before | No | ISO 8601 datetime upper bound on created_at | |
| updated_after | No | ISO 8601 datetime lower bound on updated_at | |
| updated_before | No | ISO 8601 datetime upper bound on updated_at |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility. It states that it lists roles but does not disclose behavioral traits such as pagination, filtering, or rate limits. For a simple list tool, this is minimal but not misleading; it adds little beyond the tool name.
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: first sentence states the action, second gives usage context. No redundant words; every sentence earns its place.
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 8 optional parameters and no output schema or annotations, the description is brief. It does not mention that parameters are optional or explain the output format, but for a simple list tool it is minimally adequate.
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% (all 8 parameters have descriptions). The tool description adds no additional parameter information beyond the schema, so baseline score of 3 applies.
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?
Description clearly states the verb (list), resource (roles), and scope (available in the account). It further distinguishes its purpose by specifying it's used to discover valid role_id values for create_user and update_user, differentiating it from other list tools.
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?
Description explicitly states when to use: to discover valid role_id values for create_user and update_user. This provides clear context, though it does not mention when not to use or suggest alternatives, which is acceptable given the specific use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_scorecard_submissionsA
List scorecards for a specific application. Each scorecard may be linked to an interview, assessment, or review — use the type filter to narrow by activity type.
| Name | Required | Description | Default |
|---|---|---|---|
| application_id | Yes | Application ID | |
| status | No | Comma-separated statuses to filter by: draft, submitted | |
| type | No | Comma-separated activity types to filter by: interview, assessment, review | |
| page | No | Page number | |
| limit | No | Items per page | |
| sort_by | No | Field to sort by (default: created_at) | |
| sort_order | No | Sort direction (default: desc) | |
| created_after | No | Filter by created date (ISO 8601, inclusive lower bound) | |
| created_before | No | Filter by created date (ISO 8601, inclusive upper bound) | |
| updated_after | No | Filter by updated date (ISO 8601, inclusive lower bound) | |
| updated_before | No | Filter by updated date (ISO 8601, inclusive upper bound) |
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 correctly implies a read operation but does not disclose details like pagination behavior, response format, or authentication needs. The description is adequate but lacks depth.
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, well-structured sentence that front-loads the main action and includes a key hint about filtering. It is concise and every word earns its place.
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?
With 11 parameters and no output schema, the description is sparse. It does not explain the response format or pagination. Some guidance on what the list returns would improve completeness, but the schema covers parameters well.
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 coverage is 100% with descriptions for all 11 parameters. The description adds no additional meaning beyond the schema (only mentions the type filter). Baseline is 3 per guidelines.
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 lists scorecards for a specific application (verb + resource + scope). It distinguishes from siblings like list_scorecard_templates by specifying the link to activities and a type filter.
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 (listing scorecards for an application) and mentions the type filter to narrow by activity type. However, it does not explicitly state when not to use or suggest alternatives, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_scorecard_templatesA
List scorecard templates configured for the account. Use this to discover scorecard_template_id values to pass to create_interview (only honored when stage_activity_id is NOT set — interview-plan activities own scorecard config).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| query | No | Filter by template name (case-insensitive substring) | |
| department_ids | No | Comma-separated department IDs | |
| office_ids | No | Comma-separated office IDs | |
| employment_types | No | Comma-separated employment types | |
| sort_by | No | ||
| sort_order | No | ||
| created_after | No | ||
| created_before | No | ||
| updated_after | No | ||
| updated_before | No |
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 adds context about the interaction with 'create_interview' but does not disclose the return structure, pagination behavior, or any read-only nature. Adequate but not thorough.
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, no redundancy. First sentence states core purpose, second adds critical usage context. Every word earns its place.
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 12 non-required parameters and no output schema, the description could explain response format, pagination, or filtering nuances. It provides the key usage context but is still somewhat minimal for the complexity.
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 only 33%, so the description should compensate, but it adds no parameter-specific guidance. The tool description does not explain the purpose of page, limit, or date filters beyond what the schema minimally provides.
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 'List', the resource 'scorecard templates', and the scope 'for the account'. It also distinguishes from siblings like 'get_scorecard_template' by noting the purpose of discovering template IDs for 'create_interview'.
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?
Explicitly states when to use (to discover template IDs) and when not to (when stage_activity_id is set, as interview-plan activities own scorecard config). This provides clear guidance and an exclusion condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sourcesB
List all candidate sources in the organization.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number | |
| limit | No | Items per page | |
| enabled | No | Filter by enabled status | |
| sort_by | No | Field to sort by (default: created_at) | |
| sort_order | No | Sort direction (default: desc) | |
| created_after | No | Filter by created date (ISO 8601, inclusive lower bound) | |
| created_before | No | Filter by created date (ISO 8601, inclusive upper bound) | |
| updated_after | No | Filter by updated date (ISO 8601, inclusive lower bound) | |
| updated_before | No | Filter by updated date (ISO 8601, inclusive upper bound) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must fully convey behavioral traits. It only states 'List all candidate sources', omitting details like pagination behavior, response structure, or authentication needs. The tool acceptspage/limit/filters but these are not highlighted.
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 sentence, which is concise, but it lacks substantive detail. It is minimally adequate but not optimally 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 9 parameters and no output schema, the description is incomplete. It does not explain what a candidate source is, how pagination works, or confirm that filters are available. More context is needed for effective use.
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 all parameters are documented in the schema. The description adds no extra meaning beyond the schema, matching the baseline of 3.
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 uses a specific verb 'list' and clearly identifies the resource 'candidate sources'. It is unambiguous and distinct from sibling tools like list_candidates or list_applications.
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 other list_ tools. There is no mention of prerequisites, context for use, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_stage_activitiesB
List all activities (actions) configured for a specific job stage.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Job ID | |
| stage_id | Yes | Stage ID | |
| page | No | Page number | |
| limit | No | Items per page | |
| sort_by | No | Field to sort by (default: created_at) | |
| sort_order | No | Sort direction (default: desc) | |
| created_after | No | ISO 8601 datetime lower bound on created_at | |
| created_before | No | ISO 8601 datetime upper bound on created_at | |
| updated_after | No | ISO 8601 datetime lower bound on updated_at | |
| updated_before | No | ISO 8601 datetime upper bound on updated_at |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present. The description states 'list all activities' but does not disclose that the tool likely supports pagination (implied by schema parameters page and limit) or any other behavioral traits like authorization requirements or performance notes.
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 sentence of 13 words, concise and front-loaded. However, it could include a brief mention of optional filters for completeness without sacrificing conciseness.
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?
Despite having 10 parameters (including filters and sorting) and no output schema, the description only provides a high-level purpose. It lacks details on pagination, sorting, filtering, or return structure, making it insufficient for complex usage.
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 each parameter has a description. The tool description adds 'for a specific job stage' which is already implied by required params job_id and stage_id. No additional meaning 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 verb 'list', the resource 'activities (actions)', and the scope 'for a specific job stage'. This distinguishes it from sibling tools like list_candidates or list_jobs.
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, nor any exclusions or prerequisites. The agent is left to infer its use from the name and schema alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_usersB
List users in the organization. Defaults to active users; use the status filter to include pending, deactivated, or imported. Supports filtering by role, department, office, granted permissions, and a full-text query across name and email.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number | |
| limit | No | Items per page | |
| sort_by | No | Field to sort by (default: created_at) | |
| sort_order | No | Sort direction | |
| status | No | Comma-separated user statuses: active, pending, deactivated, imported. Defaults to active when omitted. | |
| role_id | No | Comma-separated role IDs to filter by | |
| department_id | No | Comma-separated department IDs to filter by | |
| office_id | No | Comma-separated office IDs to filter by | |
| permission | No | Comma-separated permission keys in `resource:action` format (e.g. `users:manage,jobs:read`). Matches users whose role grants any of the listed permissions. | |
| query | No | Full-text search across user name and email | |
| created_after | No | ISO 8601 datetime lower bound on created_at | |
| created_before | No | ISO 8601 datetime upper bound on created_at | |
| updated_after | No | ISO 8601 datetime lower bound on updated_at | |
| updated_before | No | ISO 8601 datetime upper bound on updated_at |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. It states basic behavior (listing users) and filter capabilities but omits details like pagination behavior, response structure, authorization needs, or rate limits. Not misleading but incomplete.
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 concise sentences, front-loaded with purpose and key default. Every sentence adds value without redundancy. Well-structured for quick understanding.
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?
Despite 14 parameters and no output schema, the description is minimal. It lacks explanation of pagination, sort behavior, and response format. For a tool with rich filtering, more context is needed for effective usage.
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 coverage is 100%, so baseline is 3. Description adds value by explaining default status behavior and that permission filter checks by role, but does not cover all parameters (e.g., pagination, sort, date filters are not elaborated). Marginal addition beyond 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 'List users in the organization' and specifies default active users with filter options. It distinguishes from many sibling list tools by mentioning specific filtering capabilities, though it doesn't explicitly differentiate from similar tools like list_candidates or search_candidates.
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?
Description explains default behavior (active users) and how to include other statuses via filter. It lists supported filters but does not provide explicit when-to-use guidance or alternatives (e.g., when to use search_candidates instead). No exclusion criteria are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_valid_organizersA
List users eligible to be the organizer_id when scheduling an interview for a job — they have a connected calendar (Google or Microsoft) and permission to manage candidates on the job.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Job ID | |
| query | No | Filter by name/email substring (case-insensitive) | |
| page | No | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses eligibility criteria but does not mention pagination behavior, output format, or any side effects. With no annotations, the description carries full burden; it is somewhat transparent but lacks detail.
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 sentence that immediately states the purpose and criteria. No unnecessary words, well 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?
The description covers the purpose and eligibility but lacks details on pagination parameters, output structure, and potential limitations. For a tool with no output schema and no annotations, it is incomplete.
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 description only adds context to job_id by explaining its role. It does not explain page or limit parameters, which have no descriptions in the schema. With 50% schema coverage, the description fails to compensate for missing parameter meanings.
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 'List' and the specific resource: users eligible to be organizer_id for interview scheduling. It distinguishes from sibling tools by specifying eligibility criteria (connected calendar and permission).
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 implicitly indicates when to use this tool (when needing an organizer_id for an interview). No alternatives are mentioned, but given the sibling list, no direct alternative exists, so the guidance is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_webhook_eventsB
List all available webhook event types you can subscribe to.
| 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 must fully disclose behavior. However, it only states that it lists event types, not whether it is read-only, requires authentication, or any other traits. This lacks necessary behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no unnecessary words. While minimal, it is appropriately sized for the tool's simplicity, though it could potentially include more structure without losing conciseness.
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 no parameters and no output schema, the description is minimally adequate. However, it could be improved by mentioning that the list is used before creating a webhook or indicating the response format.
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 zero parameters, so schema coverage is 100%. The description does not need to add parameter details, and it does not contradict or omit anything. Baseline score of 3 is appropriate.
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 'List all available webhook event types you can subscribe to' provides a specific verb and resource, clearly distinguishing it from sibling tools like list_webhooks and list_webhook_logs, which 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 offers no guidance on when to use this tool versus alternatives, nor does it provide context or exclusions. It is a minimal statement without usage recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_webhook_logsA
List recent delivery logs for a webhook, including status and response details for each attempt.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Webhook ID | |
| page | No | Page number | |
| limit | No | Items per page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It states that logs are recent and include status/response details, but it omits pagination behavior, sorting, rate limits, or what 'recent' means. This is insufficient for a tool with zero annotations.
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 sentence of 15 words with no wasted information. It is front-loaded with the verb and resource, making it concise and 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?
Given the tool has three simple parameters and no output schema, the description is minimally adequate. It hints at return content (status, response details) but fails to explain pagination, date range, or sorting. A more complete description would cover these aspects.
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 coverage is 100%, so the parameters (id, page, limit) are fully described in the schema. The description adds no extra meaning beyond 'list recent delivery logs', which does not clarify how parameters affect the output. Baseline 3 is appropriate.
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 uses a specific verb 'List' and resource 'delivery logs for a webhook', which clearly indicates the tool's function. It effectively distinguishes from sibling tools like 'list_webhooks' (which lists webhooks themselves) and 'get_webhook'.
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 use for viewing delivery logs but does not explicitly state when to use it versus alternatives. No exclusions or conditions are provided, leaving the agent without clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_webhooksB
List all configured webhooks.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number | |
| limit | No | Items per page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral traits. It only states 'list', implying read-only, but does not explicitly confirm no side effects, mention pagination, or discuss safety. The lack of annotations makes this a 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?
A single sentence that is concise, front-loaded with the purpose, and contains no unnecessary words. Every word earns its place.
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?
No output schema exists, so the description should at least hint at the return format (e.g., a list of webhook objects). It does not, leaving the agent to guess. Pagination behavior is implied by parameters but not explained.
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 coverage is 100%; both page and limit are described in the schema. The description adds no extra meaning beyond what the schema already provides, so a baseline of 3 is appropriate.
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 'List all configured webhooks' clearly states the verb and resource. It distinguishes from sibling tools like create_webhook, delete_webhook, and get_webhook by focusing on listing all items.
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 usage guidance is provided. The description does not specify when to use this tool versus alternatives like get_webhook for a single webhook or list_webhook_events for events.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mark_candidate_no_showA
Mark the candidate as a no-show on an in_progress or ended interview. Cannot be marked when a scorecard has been submitted.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Interview ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. It discloses the scorecard submission constraint but does not specify side effects, permissions, or state changes beyond the name. Adequate but not rich.
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 concise sentences, front-loaded with the main action, no filler. Every sentence earns its place.
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 mutation tool with one parameter and no output schema, the description is mostly complete: purpose, condition, and exclusion are covered. Missing details on error handling or success feedback, but acceptable given tool simplicity.
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 covers 100% of the single parameter with a clear description ('Interview ID'). The description adds context by linking the parameter to the interview state (in_progress/ended). Adds value beyond 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?
Clearly states the action ('Mark the candidate as a no-show'), specifies the target resource (interview) with conditions (in_progress or ended), and includes an exclusion (scorecard submitted). Differentiates from sibling tools like 'undo_candidate_no_show'.
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?
Explicitly states when to use (in_progress or ended interview) and when not to use (scorecard submitted). Provides actionable constraints that help an agent decide correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reactivate_userC
Reactivate a previously deactivated user.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | User ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but fails to disclose behavioral traits like required permissions, side effects (e.g., email notification), or whether it checks if the user is currently deactivated. This undermines safe invocation.
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 sentence with no wasted words. It is front-loaded and clear. However, it could include a brief behavioral note without losing conciseness.
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 simplicity of the tool (one param, no output schema) and absence of annotations, the description is too sparse. It omits return value, error conditions, and any required data consistency, leaving gaps in contextual 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?
Schema description coverage is 100% for the single parameter 'id', and the description adds no further meaning beyond 'User ID'. Baseline 3 is appropriate as the schema is sufficient, but no extra context is provided.
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 'Reactivate' on the 'user' resource, which is distinct from sibling tools like deactivate_user or create_user. It conveys exactly what the tool does.
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 update_user or create_user. The description doesn't mention prerequisites, valid input conditions (e.g., user must be deactivated), or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rotate_webhook_secretB
Rotate the signing secret for a webhook.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Webhook ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose behavioral traits beyond the basic action. It doesn't mention whether the new secret is returned, whether old webhooks are immediately invalidated, or if special permissions are required. Given no annotations, the description fails to provide sufficient transparency for a security-sensitive operation.
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 sentence that is concise and front-loaded. It communicates the core action without unnecessary words. However, it could be slightly expanded with minimal impact on conciseness.
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 (one parameter) and lack of output schema, the description is minimally adequate. It does not explain what happens after rotation (e.g., returns new secret) or any side effects. There is room for improvement to fully inform the agent about the operation's outcome.
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 coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond the schema's parameter description 'Webhook ID'. No further clarification on format or constraints is provided.
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 uses the specific verb 'rotate' and identifies the resource as 'signing secret for a webhook'. This clearly distinguishes it from sibling tools like create_webhook or update_webhook, which deal with other aspects of webhooks. The purpose 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?
No guidance is provided on when to use this tool versus alternatives. For example, it doesn't explain that rotation is for security purposes or that it should be used instead of updating the secret via update_webhook. The agent receives no context on appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_candidatesA
Search candidates using Elasticsearch with rich filters and cursor-based pagination. Preferred over list_candidates when you need: full-text search (name, email, resume), filtering by skills, tags, sources, job pipeline, location, or resume presence. Pagination: pass cursor from the previous response meta.next_cursor to get the next page. IMPORTANT: if you change any filter or search parameter, omit cursor and start a new request — cursors are tied to a specific search context and will return wrong results if filters change.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | Pagination cursor from the previous response meta.next_cursor. Omit this field entirely when changing any filter — cursors are bound to a specific search context. Cannot be combined with page. | |
| query | No | Full-text search across name, email, phone number, and resume text | |
| skill_ids | No | Comma-separated skill IDs — returns candidates who have ALL of these skills | |
| tag_ids | No | Comma-separated tag IDs — returns candidates who have ANY of these tags | |
| candidate_source_ids | No | Comma-separated source IDs — get IDs from list_sources | |
| job_ids | No | Comma-separated job IDs — returns candidates who have applied to these jobs | |
| has_resume | No | true = only candidates with a resume; false = only without | |
| country_id | No | Filter by country ID | |
| state_id | No | Filter by state/province ID | |
| city_id | No | Filter by city ID | |
| credited_to_user_ids | No | Comma-separated user IDs — returns candidates credited to these users | |
| current_company_ids | No | Comma-separated company IDs — returns candidates currently at these companies | |
| degree_ids | No | Comma-separated degree IDs — returns candidates with these degrees | |
| institute_ids | No | Comma-separated institute IDs — returns candidates from these institutions | |
| interviewer_ids | No | Comma-separated user IDs — returns candidates interviewed by these users | |
| page | No | Page number (default: 1). Cannot be combined with cursor. | |
| limit | No | Items per page (default: 20, max: 100) |
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 that cursors are tied to a specific search context and warns about wrong results if filters change. However, it does not explicitly state that the operation is read-only (non-destructive), which could be inferred but is not stated. Still, the description adds significant 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 concise with two well-structured paragraphs: first explaining the tool's purpose and filter capabilities, second detailing pagination with important warnings. No unnecessary sentences, and critical instructions are highlighted.
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 17 parameters, full schema coverage, no output schema, and no annotations, the description covers key aspects: when to use, filter types, pagination mechanics, and warnings. It lacks explanation of what fields are returned in the response, which would be helpful for a search tool. Minor gap for 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?
Schema coverage is 100% with detailed parameter descriptions. The tool description does not add new parameter semantics beyond what the schema provides, but it reinforces the critical cursor behavior rule. Since schema already handles parameter explanation, a baseline 3 is appropriate.
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 it searches candidates using Elasticsearch with rich filters and cursor-based pagination. It also distinguishes from list_candidates by listing specific use cases (full-text search, filtering by skills, tags, etc.). This provides a specific verb+resource and differentiates from siblings.
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?
Explicitly says 'Preferred over list_candidates when you need...' and lists conditions. Provides important pagination instructions: 'if you change any filter or search parameter, omit cursor and start a new request'. This gives clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_companiesB
Search companies by name. Useful for autocompleting company names.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query for company name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. It only states the basic function without mentioning limitations, pagination, case sensitivity, or performance characteristics, leaving agents uninformed about important behaviors.
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 at two sentences, with the primary action stated immediately. Every word is purposeful, and there is no extraneous information.
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?
Despite the simplicity of the tool, the description fails to specify the output format or any return fields, which is critical since no output schema is provided. It also lacks context on error handling or result ordering, making it less complete than needed for an agent to use 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?
The schema already describes 'query' as 'Search query for company name', and the description adds no new information beyond that. With 100% schema coverage, the baseline of 3 applies.
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 'Search companies by name' with a specific verb and resource. The additional note about 'autocompleting company names' provides a concrete use case, setting it apart from sibling tools like find_companies which may have broader functionality.
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 autocomplete scenarios ('Useful for autocompleting company names') but does not explicitly state when to prefer this over the sibling find_companies or when not to use it. No alternatives or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_disciplinesA
Search academic disciplines by name. Useful for autocompleting field of study.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query for discipline |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It mentions only 'search by name' but fails to disclose behaviors like case sensitivity, partial matches, pagination, or error handling.
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 brief sentences: the first defines purpose, the second gives a concrete use case. No unnecessary words.
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 search tool with one parameter and no output schema, the description is adequate but could be improved by mentioning return format or matching behavior. It is not incomplete but lacks some helpful context.
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 single parameter 'query' is described in the schema as 'Search query for discipline.' The description adds 'by name,' which slightly clarifies the search scope but adds little beyond the schema. Schema coverage is 100%, so baseline 3 is appropriate.
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 'Search' and the resource 'academic disciplines by name,' distinguishing it from siblings like search_candidates or search_companies. The additional note about autocompleting field of study further clarifies its intent.
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 autocomplete but does not explicitly state when to use or avoid this tool, nor does it compare with other search siblings. The guidance is minimal and implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_institutionsA
Search academic institutions by name. Useful for autocompleting university or school names.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query for institution name |
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 only states the search action without disclosing behavior such as read-only nature, authorization needs, rate limits, or result format. This is insufficient for a search 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?
Two sentences, front-loaded with action and resource, and no wasted words. Efficient and to the point.
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 simplicity (one parameter, no output schema, no annotations), the description is adequate but lacks details on return format, pagination, or any edge cases. It meets minimum viability but has 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 schema covers the only parameter with description 'Search query for institution name'. The tool description adds context about autocomplete use, but this does not significantly enhance understanding beyond the schema. With 100% schema coverage, baseline 3 is appropriate.
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 searches academic institutions by name, specifying the action 'search' and the resource 'academic institutions'. It also mentions a specific use case (autocomplete), distinguishing it from sibling search tools targeting candidates, companies, etc.
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 use for autocomplete but does not explicitly state when to use it over alternatives like find_institutions, nor provides any exclusions. The context is clear but guidance is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_jobsA
Search jobs by title (partial match supported) with optional filters. Preferred over list_jobs when you need to find jobs by name. Results are sorted by relevance.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Search jobs by title — partial match supported | |
| department_ids | No | Comma-separated department IDs to filter by (includes descendants) | |
| office_ids | No | Comma-separated office IDs to filter by | |
| status | No | Comma-separated statuses to filter by: draft, pending_approval, rejected, scheduled, published, closed, archived | |
| employment_types | No | Comma-separated employment types: full_time, part_time, contract, internship, temporary, seasonal, volunteer | |
| workplace | No | Comma-separated workplace types: office, remote, hybrid | |
| confidential | No | Filter by confidentiality — true for confidential jobs only, false for non-confidential | |
| job_post_listed | No | Filter by job post visibility — true for publicly listed jobs only | |
| primary_recruiter_ids | No | Comma-separated user IDs to filter by primary recruiter | |
| primary_hiring_manager_ids | No | Comma-separated user IDs to filter by primary hiring manager | |
| page | No | Page number (default: 1) | |
| limit | No | Items per page (default: 20, max: 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must bear the burden. It mentions results sorted by relevance but lacks details on pagination behavior, read-only nature, or any side effects. Not contradictory, but minimal.
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 concise sentences with no wasted words. Front-loads the core action and includes sibling differentiation.
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?
With 12 parameters and no output schema, the description covers the main query but omits output format, filter combination logic, and pagination details. Adequate but not 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?
Schema coverage is 100%, so parameters are well-documented in the schema. The description does not add significant new meaning beyond 'optional filters' and 'partial match'. Baseline 3 is appropriate.
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 searches jobs by title with partial match and optional filters, distinguishing it from list_jobs by naming it explicitly as the preferred tool when finding by name.
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?
Explicitly states preference over list_jobs for name-based search, providing clear guidance. Could add when not to use, but the sibling differentiation is strong enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_locationsA
Search locations by query. Useful for autocompleting city or region names.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query for location |
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 only states 'search' which implies a read operation, but lacks details on behavioral traits such as case sensitivity, partial matching, result limits, or required permissions.
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 with two short sentences, no fluff, and front-loaded with the core purpose. Every word earns its place.
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 (single parameter, no output schema), the description adequately covers its purpose and typical use case. It is sufficiently complete for an autocomplete search 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 schema describes 'query' generically, but the description adds semantic value by specifying it is for city or region names, which helps the agent understand the intended input context. Schema coverage is 100%, so the description provides extra 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 action ('search'), the resource ('locations'), and the specific use case ('autocompleting city or region names'). It distinguishes itself from sibling tools like 'find_locations' by explicitly mentioning autocomplete functionality.
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 some guidance by indicating it is 'useful for autocompleting city or region names,' but it does not specify when to use this tool over siblings like 'find_locations' or mention any limitations or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
test_webhookA
Send a test payload to a webhook and wait for the delivery result. Polls until delivered or failed (30s timeout).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Webhook ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behavioral traits: it polls until delivered or failed and has a 30s timeout. This is valuable since no annotations are provided. It does not mention side effects or permissions, but for a test operation, this is sufficient.
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, well-structured sentence that front-loads the primary action ('Send a test payload to a webhook') and then explains the polling behavior. No extraneous words; every phrase earns its place.
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 (one required parameter, no output schema), the description is complete: it covers what the tool does, how it behaves (polls, timeout), and the parameter is self-explanatory from the schema. No additional information 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 input schema has 100% coverage with a description for the only parameter ('Webhook ID'). The description does not add additional meaning or constraints (e.g., format or validation). Baseline 3 applies since schema coverage is high.
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: 'Send a test payload to a webhook and wait for the delivery result.' It specifies the resource (webhook) and behavior (polling, 30s timeout). This distinguishes it from sibling tools like create_webhook or get_webhook, which do not involve testing delivery.
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 does not explicitly state when to use this tool versus alternatives like list_webhook_logs or get_webhook_sample_payload. While the purpose is clear, there is no guidance on when testing is appropriate or what prerequisites exist. However, the context of sibling tool names provides some implicit differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
undo_candidate_no_showA
Reverse a candidate no-show. Allowed only when meeting_status is candidate_no_show.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Interview ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the burden. It states the precondition and the reversal action, but does not disclose side effects, permissions, or idempotency. Adequate for a simple operation.
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 short, precise sentences with no unnecessary words. The condition is front-loaded, making it immediately actionable.
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 tool with one parameter and no output schema, the description covers the essential: action, condition, and parameter purpose. Could mention the relationship to 'mark_candidate_no_show' but not required.
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 schema already describes the single parameter 'id' as 'Interview ID' (100% coverage). The description adds no further semantic value, so baseline score of 3 is appropriate.
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 explicitly states the action ('Reverse') and the resource ('candidate no-show'), and includes a condition for use. It clearly distinguishes from the sibling tool 'mark_candidate_no_show' by being the inverse operation.
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 a clear condition ('Allowed only when meeting_status is candidate_no_show'), guiding when to use the tool. It does not explicitly mention alternatives, but the sibling tool list provides context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_application_noteB
Update an existing note on an application.
| Name | Required | Description | Default |
|---|---|---|---|
| application_id | Yes | Application ID | |
| id | Yes | Note ID | |
| body | No | Updated note content | |
| notify_recruiter | No | When true, auto-tags the job's primary recruiter in the note |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits beyond the input schema. It omits important details like whether the update triggers notifications (despite the 'notify_recruiter' parameter) or what side effects occur.
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 short and free of unnecessary words. However, it could be slightly more efficient by integrating parameter context instead of relying entirely on the schema.
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 output schema and no annotations, the description is incomplete. It does not explain the return value, error scenarios, or the effect of the 'notify_recruiter' parameter on the update action.
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 each parameter already has a description. The top-level description adds no additional meaning beyond what the schema provides, so a baseline score of 3 is appropriate.
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 'Update an existing note on an application' clearly specifies the verb (update) and resource (existing note on an application). It distinguishes from sibling tools like create_application_note (create) and list_application_notes (list).
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 does not provide explicit guidance on when to use this tool versus alternatives. While it is implied from the sibling names, there is no mention of prerequisites, context, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_application_stageC
Update the stage of a specific application.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Application ID | |
| stage_id | Yes | Target stage ID | |
| requisition_code | No | Requisition code to associate with this stage move |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It states 'update' but discloses no side effects, reversibility, or behavioral traits beyond the basic mutation, which is insufficient for a state-changing operation.
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 single-sentence description is concise and front-loaded. However, it sacrifices informative content for brevity, missing opportunities to add value without increasing length.
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 output schema, the description should indicate return values or success indicators. It does not, nor does it explain error handling or typical results. Among many sibling tools, this description does not provide sufficient context for an agent to 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 coverage is 100%, so the schema fully documents parameters. The description adds no extra meaning beyond the schema, meeting the baseline expectation.
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 the resource ('stage of a specific application'). It effectively distinguishes from sibling tools, as no other tool updates application stages. However, it could be more specific by mentioning 'move an application to a new stage in the hiring process.'
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, no prerequisites, and no context such as required permissions or typical scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_candidateA
Update an existing candidate's profile. All fields are optional — only send the fields you want to change. Returns the updated candidate object.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Candidate ID to update | |
| first_name | No | Candidate's first name | |
| last_name | No | Candidate's last name | |
| No | Candidate's email address | ||
| phone_number | No | Candidate's phone number | |
| title | No | Candidate's current job title | |
| tags | No | Comma-separated tag names (replaces existing tags) | |
| skills | No | Comma-separated skill names (replaces existing skills) | |
| candidate_source_id | No | Source ID — get IDs from list_sources | |
| social_urls | No | Social profile URLs (replaces existing social URLs) | |
| location | No | Candidate location using places IDs | |
| additional_info | No | Custom field values as key-value pairs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that arrays (tags, skills, social_urls) are replaced rather than merged. No annotations provided, so description carries burden. Lacks details on permissions or side effects but is adequate.
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 no wasted words. Purpose is front-loaded. Highly concise and 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?
Covers essential update behavior and return value. With 12 parameters and nested objects, the description is adequate but could mention validation or error handling. No output schema, but description explains return.
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 coverage is 100%, so baseline is 3. Description adds value by noting 'only send fields you want to change' and clarifying that certain arrays replace existing values, which goes beyond 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?
Description clearly states 'Update an existing candidate's profile' with a specific verb and resource. It distinguishes from siblings like 'create_candidate' and 'get_candidate'.
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?
States that all fields are optional for partial updates and returns the updated object. Provides clear context for when to use, though could explicitly mention not to use for creation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_interviewA
Update an existing interview. All fields are optional — only the supplied fields are modified. Immutable fields (cannot be changed after creation): organizer_id, application_id, job_id, stage_id, candidate_id, stage_activity_id, scorecard_template_id. Cancelled interviews cannot be updated (returns 422 err_interview_cancelled).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Interview ID | |
| start_time | No | New start_time (ISO 8601, on 15-min boundary, zero seconds) | |
| duration_minutes | No | Multiple of 15, 15..1440 | |
| timezone | No | IANA timezone (e.g., America/Los_Angeles) | |
| kind | No | Interview type: one_on_one | panel | |
| location | No | Location: onsite | phone | zoom | google_meet | microsoft_teams | hackerrank | |
| interviewer_ids | No | ||
| office_id | No | Required when location=onsite | |
| host_id | No | Required when location=zoom; must be in interviewer_ids | |
| hackerrank_template_id | No | Required when location=hackerrank | |
| name | No | ||
| calendar_event_visibility | No | Visibility: default | private | |
| ai_note_taker_enabled | No | ||
| ai_scorecard_assist_enabled | No | ||
| interviewer_template_id | No | From list_email_templates | |
| candidate_template_id | No | From list_email_templates |
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 optional fields, immutable fields, and cancellation error. However, it lacks details on authorization, rate limits, or idempotency, which are important 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?
Four sentences, front-loaded with the main action, no redundant words. Every sentence adds distinct information: core function, optionality, immutability, and error condition.
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 16 parameters, no output schema, and no annotations, the description covers essential behavioral context (optional fields, immutable fields, cancellation constraint). It does not describe return values, but that is acceptable without an 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 coverage is 75%, and the description adds value beyond schema by stating that all fields are optional and only supplied fields are modified. It also lists immutable fields, which aids parameter understanding.
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 'Update an existing interview' with specific verb-resource. It distinguishes from siblings like create_interview and cancel_interview by mentioning constraints such as immutable fields and cancelled interview restrictions.
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 for when to use (any update) and when not to (cancelled interviews, immutable fields). It does not explicitly mention alternatives among siblings, but the constraints implicitly guide usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_requisitionA
Update an existing requisition. Cannot modify requisitions with closed, archived, or filled statuses. Pass all custom field values in additional_info — omitted fields will be cleared.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Requisition ID | |
| role_name | No | Job role name for this requisition | |
| employment_type | No | Employment type (full_time, part_time, contract, internship, temporary, seasonal) | |
| requisition_type | No | Requisition type (new_hire, contract, backfill, internship, internal) | |
| department_id | No | Department ID | |
| office_ids | No | Comma-separated office IDs (at least one required) | |
| description | No | Requisition description | |
| minimum_salary | No | Minimum salary amount | |
| maximum_salary | No | Maximum salary amount | |
| salary_currency_id | No | Currency country ID for salary | |
| recruiter_id | No | User ID of the assigned recruiter | |
| hiring_manager_id | No | User ID of the hiring manager | |
| target_hire_date | No | Target hire date (YYYY-MM-DD) | |
| target_start_date | No | Target start date (YYYY-MM-DD, must be on or after target_hire_date) | |
| confidential | No | Whether this requisition is confidential | |
| job_id | No | Associate a job or change the associated job. Set to null to remove association. | |
| additional_info | No | Custom field values as key-value pairs. Pass all values — omitted fields will be cleared. | |
| apply_to_group | No | When true, updates all requisitions in the group. Defaults to false (requisition leaves the group). | |
| reapproval_note | No | Note included if approval workflows trigger reapproval |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses important behaviors: that it cannot modify certain statuses and that omitted custom fields in additional_info are cleared. This adds value beyond the schema.
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, front-loaded with purpose, then constraints, then usage note. No wasted words, 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?
The description covers purpose and key constraints but omits response behavior, potential side effects (e.g., reapproval workflow), and lacks guidance on using with sibling tools. Adequate but not fully comprehensive.
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 coverage is 100%, providing full parameter descriptions. The description adds clarity for additional_info (clearing behavior), but this is a single parameter enhancement, meeting the baseline.
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 updates an existing requisition, distinguishing it from create_requisition and close_requisition. It also specifies constraints on statuses, adding precision.
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 indicates when not to use the tool (for closed, archived, or filled statuses) and gives a key usage note about additional_info. However, it does not explicitly mention alternative tools for different statuses.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_userA
Update an existing user. Only supplied fields are modified. Email and account status cannot be changed via this endpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | User ID | |
| first_name | No | First name of the user | |
| last_name | No | Last name of the user | |
| job_title | No | Job title of the user (pass null-equivalent by omitting if not changing) | |
| time_zone | No | IANA timezone identifier | |
| role_id | No | ID of the role to assign to the user. Use list_roles to discover valid IDs. | |
| department_id | No | Department to assign the user to | |
| office_id | No | Office to assign the user to | |
| reporting_manager_id | No | User the user reports to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the mutating nature and partial update behavior. However, without annotations, it lacks details on idempotency, permissions, or side effects. It adds value by clarifying what fields cannot be changed but could cover more behavioral traits.
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 concise sentences that front-load the purpose and key behaviors. No redundant information; every sentence earns its place.
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 9 parameters and no output schema or annotations, the description covers core behaviors (partial update, restrictions) and provides a parameter-specific hint. Missing return value and error details, but sufficient for basic usage.
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?
With 100% schema coverage, baseline is 3. The description adds context beyond the schema: partial update semantics and a specific hint for role_id ('Use list_roles to discover valid IDs'). This meaningfully enhances parameter understanding.
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 it updates an existing user with 'Update an existing user.' It specifies only supplied fields are modified and notes that email and account status cannot be changed, distinguishing it from create_user and deactivate_user.
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 guidance on partial updates ('Only supplied fields are modified') and explicit restrictions ('Email and account status cannot be changed'). It implies usage for updating existing users but does not explicitly contrast with tools like create_user or deactivate_user.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_webhookA
Update an existing webhook configuration. Only include fields you want to change.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Webhook ID | |
| url | No | Updated URL | |
| name | No | Updated name | |
| subscribed_events | No | Updated list of event types to subscribe to | |
| description | No | Updated description | |
| headers | No | Updated custom headers |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It only mentions partial updates; it fails to disclose side effects, authentication requirements, rate limits, or validation behavior. This is a significant gap 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?
Two sentences with no wasted words. The purpose is front-loaded, and the key behavioral hint is immediately provided. Every sentence earns its place.
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?
Despite 6 parameters and no output schema, the description omits return behavior (e.g., does it return the updated webhook?), error cases, and immutability constraints. For a complex mutation with nested objects, this is incomplete.
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 baseline is 3. The description adds the nuance of 'only include fields to change', which reinforces the partial update semantics. No additional syntax or constraints are provided 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 verb 'Update' and resource 'webhook configuration', distinguishing it from sibling tools like create_webhook, delete_webhook, enable_webhook, and disable_webhook.
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 explicit guidance to 'Only include fields you want to change', indicating a partial update pattern. It lacks explicit when-to-use or when-not-to-use compared to alternatives, but the name and this hint are sufficient for most agents.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a distinct, purpose-specific name and detailed description that clearly differentiates it from others. There is no overlap; even similar operations like 'list_candidates' vs 'search_candidates' are explained with different use cases.
All tool names follow a consistent verb_noun snake_case pattern (e.g., cancel_interview, create_candidate, get_job). No mixing of casing or irregular naming is observed.
84 tools is extremely high for an MCP server, far exceeding the typical 3-15 range. While the domain is broad, this count is excessive and likely to overwhelm agents and reduce coherence.
The tool set covers the full lifecycle of recruiting: candidates, applications, interviews, jobs, requisitions, users, webhooks, and reference data (skills, locations, etc.). CRUD operations are present for core entities, with additional utilities like searching and webhook management. No obvious gaps are apparent.
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
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
MCP server exposing klokin time-tracking operations (employees, time entries, stores) to AI clients.
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceThis MCP server provides hiring automation tools for recruitment processes. It enables users to generate job descriptions, score CVs, create interview questions, benchmark salaries, and draft offer letters through natural language interactions.16MIT
- AlicenseAqualityCmaintenanceMCP server for Recruit CRM, enabling AI assistants to search candidates, view jobs, and manage recruiting workflows.53MIT
- AlicenseAqualityAmaintenanceMCP server connecting AI assistants to official France Travail APIs for real-time job offers, ROME code prediction, and hiring company search.7851MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for Hunaras, an AI-native recruiting platform that enables candidates and employers to manage jobs, applications, assessments, and talent sourcing through natural language.16MIT
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/kula-ai/kula-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server