100Hires - AI ATS & Recruitment Software
Server Details
Official 100Hires MCP: AI ATS & Recruitment Software for candidates, jobs, applications, interviews.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- 100Hires/mcp
- GitHub Stars
- 0
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.1/5 across 133 of 133 tools scored. Lowest: 3.1/5.
Most tools have clearly distinct purposes due to specific entity and action combinations. However, with 133 tools, there is some overlap (e.g., multiple ways to move applications) and similar-sounding operations (e.g., batch_remove_tags vs remove_candidate_tag) that could cause confusion. The detailed descriptions help but the sheer number increases ambiguity.
All tools follow a consistent 'hires_verb_noun' pattern with snake_case. Verbs are descriptive (create, list, get, delete, update, batch) and nouns match the domain entities (candidate, application, job, etc.). No mixing of conventions like camelCase or inconsistent verb styles.
133 tools is excessive for a typical server scope. While a full-featured ATS requires many operations, this count suggests insufficient aggregation. Tools for similar entities (e.g., multiple update/delete variants) could be consolidated. The high number overwhelms the tool surface and increases complexity.
The tool set covers core CRUD operations for major entities (candidates, applications, jobs, companies, users, messages, forms, etc.) plus batch operations, webhooks, and advanced features like AI scoring and nurture campaigns. Minor gaps exist (e.g., no direct reporting/analytics tools), but most workflows can be executed.
Available Tools
133 toolshires_add_candidate_tagsBInspect
Add one or more tags to a candidate. Used for campaign tagging, qualification labels, and source attribution.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Candidate ID (integer) or alias (string). | |
| tags | Yes | Array of tag strings to add. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a non-destructive mutation. The description adds typical use cases but does not disclose behavior like whether tags are appended or replaced, or any 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 concise sentences that front-load the action and purpose. No redundant information, though it could be slightly more specific about the parameter behavior.
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 add operation, the description is mostly adequate but does not mention the output or success behavior. Given no output schema, a brief note on what happens on success would improve 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?
With 100% schema coverage, the schema clearly documents each parameter. The description adds no additional meaning beyond what the schema provides, meeting the baseline for full 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 adds tags to a candidate and lists typical use cases. However, it does not explicitly differentiate from sibling tools like hires_batch_add_tags, which performs a similar action at scale.
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 context for when to use (campaign tagging, qualification labels, source attribution) but offers no guidance on when not to use or alternatives like batch operations or removal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_add_hiring_team_memberAInspect
Add a company member to the job's hiring team. Use in workflow setup and ownership automation.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Job ID (numeric) or alias | |
| user_id | Yes | User ID to add to the hiring team. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false, so the description's statement 'Add' confirms a non-destructive mutation. No additional behavioral details (e.g., permissions, notifications) are provided beyond the 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 extremely concise with two sentences, front-loading the core action and usage context. Every word adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two fully-described parameters and no output schema, the description is complete enough. It covers the purpose and usage context, though it could mention that the user_id must exist.
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 adds no additional meaning 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?
The description clearly states the action (add), the resource (company member to job's hiring team), and the context (workflow setup and ownership automation). It is specific and distinguishes from sibling tools like hires_add_candidate_tags.
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 usage context ('Use in workflow setup and ownership automation'), which guides the agent on when to employ this tool. However, it does not mention when not to use it or provide alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_advance_applicationAdvance application to next stageADestructiveInspect
Advance an application to the next pipeline stage according to workflow order. No stage_id needed -- the system determines the next stage automatically. Always pass include=candidate,job when surfacing results in the widget — without it, the confirmation card can only show candidate/job IDs and cannot link to their backoffice pages.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Application ID. | |
| include | No | Comma-separated relations to embed: candidate, cv.text, job. Set to `candidate,job` so the widget can link the candidate name to their profile and the job title to its pipeline view. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds that no stage_id is needed, but does not elaborate on edge cases like advancing from the last stage or potential 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 sentences, both essential. The first states the core functionality, the second provides critical usage guidance. No redundant or extraneous content.
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 lacks an output schema, so the description should ideally explain what the response contains. It does not. However, for invocation purposes it is adequate, covering the two parameters and the automatic stage 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%, so baseline is 3. The description adds value by explaining why include=candidate,job is important for widget linking, which goes beyond the schema description.
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 'advance' and the resource 'application', specifying that it moves to the next pipeline stage automatically. This distinguishes it from siblings like hires_move_application which likely requires a target stage.
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 clearly indicates when to use this tool (to advance an application automatically) and provides critical guidance on the include parameter for widget results. However, it does not explicitly mention when not to use it or contrast with alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_batch_add_tagsAInspect
Add tags to multiple candidates in one request (max 100). Returns per-item results with partial success support.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Candidate IDs to tag (max 100). | |
| tags | Yes | Tag names to attach. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (which indicate a non-read-only, non-destructive mutation), the description discloses key behavioral traits: batching of up to 100 candidates, per-item results, and partial success support. This tells the agent that not all operations may succeed and that it will receive individual outcomes.
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 with two clear clauses: one stating the core action and constraints, the other stating return behavior. Every word is purposeful, and no information is redundant.
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 two-parameter, write-oriented tool without an output schema, the description adequately covers the batch behavior, limits, and partial success. It could mention that it is non-atomic, but this is implied by partial success. Overall, it gives the agent a clear mental model of what to expect.
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 descriptive parameter descriptions. The tool description adds value by reinforcing the batch context ('multiple candidates', 'max 100') and result behavior, but the parameter meaning is already well covered by 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 ('Add tags'), resource ('multiple candidates'), and key constraints ('in one request (max 100)', 'Returns per-item results with partial success support'). It distinguishes itself from the sibling 'hires_add_candidate_tags' by emphasizing the batch nature and limits.
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 this tool: for efficient batch tagging of multiple candidates. It mentions a 'max 100' limit, guiding the user to batch requests appropriately. It does not explicitly compare to single-candidate 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.
hires_batch_create_messagesAInspect
Create up to 100 scheduled messages in one request. Each item specifies its own candidate_id and message payload. Items are processed independently -- one failure does not stop others. Per-candidate RBAC is enforced for each item.
| Name | Required | Description | Default |
|---|---|---|---|
| messages | Yes | Array of message payloads to create (max 100). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a write operation (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds value by stating items are processed independently (one failure does not stop others) and per-candidate RBAC is enforced, which are useful behavioral traits not in 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?
Three concise sentences with no unnecessary words. The most critical information (batch size, independent processing, RBAC) is front-loaded. 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 no output schema, the description covers key aspects: batch limit (100), independent failure handling, and RBAC enforcement. It lacks return value description or error format, but for a batch create, 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 description coverage is 100%, so baseline is 3. The description only mentions candidate_id and message payload, not adding new meaning to parameters beyond what the schema provides. The independent processing note is about behavior, not 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 creates up to 100 scheduled messages in one request, specifying individual candidate IDs and payloads. It distinguishes itself from single-message tools like hires_send_candidate_message by emphasizing batch capability.
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 batch operations but does not explicitly state when to use this tool vs alternatives like hires_send_candidate_message for single messages or hires_patch_message for updates. No when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_batch_job_boardsARead-onlyInspect
Get board publication states for multiple jobs in one request. Optimized for batch monitoring and management UIs.
| Name | Required | Description | Default |
|---|---|---|---|
| jobs | Yes | Array of job IDs |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false; description adds batch context but no further behavioral details (e.g., rate limits, response format). No contradiction.
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 key information, no extraneous content.
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 read operation with full annotation coverage, but lacks detail about return data or 'board publication states' meaning. Could be more complete for 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?
Single parameter 'jobs' is adequately described in schema as 'Array of job IDs'; description adds no extra semantics. Schema coverage is 100%, so 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?
Description clearly states 'Get board publication states for multiple jobs in one request', specifying verb, resource, and batch scope. Differentiates from single-job and list tools among 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?
Mentions optimization for batch monitoring UIs, implying use case, but does not explicitly state when not to use or name alternatives like single-job board status tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_batch_move_applicationsADestructiveInspect
Move multiple applications to a pipeline stage in one request. Returns per-item results with partial success support. Max 100 application IDs per request.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Application IDs to move (max 100). | |
| stage_id | Yes | Target pipeline stage ID. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds critical behavioral context beyond annotations: partial success support and per-item results. This helps agent understand error handling and response structure, which annotations (destructiveHint=true) alone do not convey.
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 redundant information. Key points front-loaded: action, batch nature, partial success, limit.
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, description adequately covers return behavior (per-item results, partial success). Additional detail on response structure would be beneficial but not essential for 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?
Input schema covers both parameters with descriptions; description adds no new meaning beyond reinforcing the max count constraint. With 100% 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?
Description clearly states verb (move), resource (multiple applications), and context (to a pipeline stage in one request). It distinguishes from single-move sibling by specifying batch operation and partial success.
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?
Implicitly indicates batch use case and mentions max 100 IDs, but does not explicitly contrast with single-move tool (hires_move_application) or provide 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.
hires_batch_publish_to_boardsAInspect
Activate board publication for multiple jobs in one request. Use for bulk job distribution workflows.
| Name | Required | Description | Default |
|---|---|---|---|
| jobs | Yes | Array of job IDs to publish | |
| boards | No | Array of board identifiers to activate (e.g. ['indeed', 'linkedin']) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false. Description adds 'activate' but no details on side effects, failure modes, or state 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 action verb and purpose. No filler 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 batch operation with two parameters and no output schema. Could mention return format or error handling, but the context is relatively 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 provides full parameter descriptions (jobs and boards) with 100% coverage. Description adds no additional meaning beyond 'bulk' 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?
Description uses specific verb 'activate board publication' and resource 'multiple jobs', clearly distinguishing from singular tool 'hires_publish_to_job_board' and batch removal. It states the purpose for bulk job distribution workflows.
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?
Clear context: use for bulk workflows. However, it does not explicitly exclude single-job cases or mention the singular alternative, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_batch_reject_applicationsADestructiveInspect
Reject multiple applications in one request with an optional rejection reason. Returns per-item results with partial success support. Max 100 application IDs per request.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Application IDs to reject (max 100). | |
| rejection_reason_id | No | Optional rejection reason ID. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive nature. Description adds partial success support, per-item results, and max limit, providing behavioral context beyond annotations. No contradictions.
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 core 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?
Relatively simple tool with 2 params; description covers purpose, constraints, and behavior (partial success). No output schema but return type is implied. Adequately 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 covers both parameters (100% coverage). Description adds the max-100 constraint for 'ids' and clarifies 'rejection_reason_id' as optional. 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 (reject multiple applications) and resource (applications). Includes key details: batch, optional reason, partial success, max limit. Distinct from single-application sibling.
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 constraint (max 100 IDs) and mentions partial success. Though it doesn't explicitly contrast with the single-reject tool, the name and description make the batch use case clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_batch_remove_from_boardsADestructiveInspect
Deactivate board publication for multiple jobs in one request. Use for bulk depublishing workflows.
| Name | Required | Description | Default |
|---|---|---|---|
| jobs | Yes | Array of job IDs to depublish | |
| boards | No | Array of board identifiers to deactivate (e.g. ['indeed', 'linkedin']) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds that it 'deactivates' publication, but does not detail side effects, prerequisites, or whether deactivation is reversible.
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 consists of two short sentences, front-loading the action and purpose. Every word adds value, with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a batch operation with 2 parameters and no output schema, the description covers purpose and usage adequately. It does not explain return values, but that is not required given the lack of output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with adequate descriptions for both parameters. The tool description adds no additional semantic information beyond what is in 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?
The description clearly states the action ('Deactivate board publication') and the resource ('multiple jobs'). It distinguishes from sibling tools like hires_batch_publish_to_boards, which does the opposite. The phrase 'Use for bulk depublishing workflows' further clarifies 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 specifies the use case ('bulk depublishing workflows') but does not explicitly mention alternatives for single-job removal (e.g., hires_remove_from_job_board) or 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.
hires_batch_remove_tagsADestructiveInspect
Remove tags from multiple candidates in one request (max 100). Returns per-item results with partial success support.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Candidate IDs to remove tags from (max 100). | |
| tags | Yes | Tag names to remove. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare destructiveHint=true, consistent with removal. The description adds that it returns per-item results with partial success support, which is valuable behavioral context beyond 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?
Two sentences, first conveys purpose and batch limit, second adds return behavior. No unnecessary words, 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?
Given the tool's simplicity, the description is complete: it covers batch removal, limit, and partial success. No output schema, but description hints at return format. Sibling tools like batch_add_tags exist but not contrasted. Slight lack of error handling info.
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 provides full parameter descriptions (ids and tags), so the description adds no extra parameter meaning. Baseline score of 3 is appropriate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool removes tags from multiple candidates in a single request, with a max limit of 100. This distinguishes it from siblings like hires_batch_add_tags and hires_remove_candidate_tag.
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 batch removal but does not explicitly contrast with single removal tool or state when not to use it. The 'max 100' indicates a batch context, but no exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_cancel_all_notification_messagesADestructiveInspect
Cancel all scheduled notification emails for a candidate. Already sent notifications are not affected. Returns success even if no scheduled notifications exist.
| Name | Required | Description | Default |
|---|---|---|---|
| candidate_id | Yes | Candidate ID (numeric) or alias. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructive hint, and description adds valuable behavioral context: already sent emails are not affected and the tool returns success even if no scheduled notifications exist. This provides information beyond the 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?
Three concise sentences front-load the action and scope, with no redundant information. Each sentence adds meaningful detail.
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, the description covers cancellation scope, side effects (already sent unaffected), and idempotency (returns success even if none exist). No output schema is needed; all context for correct invocation is present.
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 'candidate_id' is fully described in the schema (numeric or alias). The description does not add new parameter-level information, but with 100% schema coverage, 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?
Description clearly states the verb 'Cancel', the resource 'all scheduled notification emails', and the scope 'for a candidate'. It also clarifies that already sent notifications are unaffected, distinguishing it from single-notification deletion 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 usage (when you want to cancel all scheduled notifications for a candidate) but lacks explicit when-not or alternative guidance. Sibling tools like 'hires_delete_notification_message' exist but are not referenced.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_create_applicationAInspect
Create an application by linking an existing candidate to a job. Use for sourcing workflows and manual application ingestion. The candidate must already exist.
| Name | Required | Description | Default |
|---|---|---|---|
| cv | No | Optional CV/resume to attach. | |
| job_id | Yes | Job ID to apply the candidate to. | |
| include | No | Comma-separated relations to embed: candidate, cv.text, job. | |
| stage_id | No | Pipeline stage ID. If omitted, defaults to the first stage. | |
| candidate_id | Yes | Candidate ID (numeric) or alias. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=false, and the description is consistent. It adds that the candidate must already exist but does not disclose additional behavioral traits such as error conditions or side effects beyond creation.
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 the action, second provides usage context and a prerequisite. 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 the straightforward nature of the tool and full schema coverage, the description covers purpose, usage, and prerequisites. The absence of an output schema is not fully compensated, but the description is adequate 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 has 100% coverage describing all parameters. The description adds minimal extra meaning beyond 'The candidate must already exist' and stating that 'CV/resume to attach' is optional. 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's purpose: 'Create an application by linking an existing candidate to a job.' This distinguishes it from siblings like 'hires_submit_career_application' (candidate-facing) and 'hires_create_candidate' (creates a 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?
The description specifies usage contexts: 'Use for sourcing workflows and manual application ingestion.' It also notes the prerequisite that the candidate must already exist. It does not explicitly state when not to use, but the guidance is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_create_candidateAInspect
Create a new candidate profile. Optionally link to a job/stage and attach the candidate's resume as extracted text. Used for imports, inbound forms, and enrichment workflows. When the user provides an attached resume (PDF/DOCX/etc.), parse the file content yourself from the chat context — LLMs natively extract text from uploaded files — and pass the extracted text via resume_text. Do NOT attempt to inline binary file data: host function-call serializers truncate arguments above ~20KB.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | Candidate city for location/timezone resolution. | |
| No | Candidate email address. Used for deduplication. | ||
| phone | No | Candidate phone number. | |
| state | No | Candidate state or region. | |
| job_id | No | Job ID to create an application for this candidate. | |
| country | No | Candidate country name or ISO code. | |
| profile | No | Key-value map of profile field answers. Keys can be question text or question_id. Example: {"Current job title": "Senior Engineer"}. | |
| stage_id | No | Pipeline stage ID for the initial application. Requires job_id. | |
| timezone | No | IANA timezone (e.g. 'America/Los_Angeles'). Auto-resolved from city/country if omitted. | |
| last_name | No | Candidate last name. | |
| company_id | No | Target company ID. Required only when the API key has access to multiple companies. | |
| first_name | No | Candidate first name. | |
| resume_text | No | Plain-text resume content extracted by the model from an attached PDF/DOCX/etc. Stored as a text/plain attachment on the candidate. Do not pass binary or base64 here — only the parsed text content. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate the tool is not read-only (readOnlyHint=false) and not destructive (destructiveHint=false). The description adds value by explaining the resume text extraction behavior and warning about argument truncation for binary data, which are behavioral details beyond the annotations. No contradiction found.
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 paragraph with front-loaded core action. All sentences provide value, covering purpose, use cases, and a key implementation note. It is appropriately sized and not 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's complexity (13 parameters, no output schema), the description covers the essential aspects: candidate creation, linking to job/stage, resume handling, and target use cases. It does not explain the return value, but that is acceptable without an output schema. It is complete enough for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds meaning beyond the schema by explaining that resume_text should be extracted from file content, that job_id and stage_id can be used for linking, and that timezone auto-resolves from city/country if omitted. This additional context elevates the 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 'Create a new candidate profile' and specifies optional linking to a job/stage and resume attachment. It distinguishes from siblings like 'hires_create_application' by focusing on candidate profile creation, and provides specific use cases: imports, inbound forms, enrichment workflows.
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 guidance on when to use the tool (imports, inbound forms, enrichment workflows) and includes a critical directive on resume handling: parse text from chat context, do not inline binary data. It lacks explicit comparison to alternatives or when-not-to-use scenarios, but the context is sufficient for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_create_companyAInspect
Create a client company (partner tenant) — provisions its public career-site URL (slug) and public branding (logo, name). Typical entrypoint for multi-tenant onboarding.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Company profile URL | |
| logo | No | Company logo file | |
| name | Yes | Company name | |
| website | No | Company website URL | |
| company_owner_name | Yes | Company owner full name | |
| is_staffing_agency | No | Whether this company is a staffing agency | |
| company_owner_email | Yes | Company owner email address | |
| company_owner_phone | No | Company owner phone number |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide minimal info (readOnlyHint=false, destructiveHint=false, openWorldHint=true). The description adds that it provisions slug and branding, which are side effects beyond mere creation. However, it does not disclose rate limits, required permissions, whether the company is immediately active, or if the operation is reversible. More detail would be beneficial for a creation 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 extremely concise: one sentence and a fragment, totaling 22 words. It front-loads the primary action ('Create a client company') and efficiently conveys the key side effects. 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?
Given the tool has 8 parameters, no output schema, and sparse annotations, the description covers the main purpose and entrypoint context. It mentions key outputs (career-site URL, branding). However, it omits mention of required parameters (name, company_owner_email, company_owner_name) and does not specify what the response contains (e.g., company ID), which could be inferred but is not explicit. Overall adequate but not exhaustive.
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 each parameter has a description. The description mentions 'name' and 'logo' but adds no extra meaning beyond the schema. For example, it does not clarify the difference between 'url' and 'website' or the purpose of 'company_owner_email'. The description provides no additional semantic depth over 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 the tool creates a client company (partner tenant), provisions career-site URL and branding. It distinguishes from sibling create tools like hires_create_application and hires_create_candidate, and from hires_update_company, by specifying 'Create' and 'client company'. The phrase 'Typical entrypoint for multi-tenant onboarding' adds clear context.
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 this is the first step in onboarding, suggesting when to use it. However, it does not explicitly state when not to use it (e.g., if the company already exists, use hires_update_company) or mention alternatives like hires_create_candidate for creating candidate-type entities. The context is clear but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_create_email_templateAInspect
Create a new email template with name, subject, and body. Subject and body support placeholders like {{first_name}}, {{job_title}}. To embed placeholders: 1) GET /template-placeholders to list them, 2) POST /template-placeholders/prepare to get the HTML tag, 3) insert the tag into the body.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Email body HTML (supports placeholders) | |
| name | Yes | Template name | |
| subject | Yes | Email subject line (supports placeholders like {{first_name}}, {{job_title}}) | |
| company_id | No | Target company ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the tool is not read-only and not destructive, so the description's disclosure of the create action is consistent. However, no additional behavioral details are given, such as required permissions or idempotency, leaving some gaps beyond 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 extremely concise, with only two sentences. The first sentence clearly states the tool's purpose, and the second provides actionable instructions. No unnecessary words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the creation action and placeholder embedding thoroughly, but it omits information about the return value or any side effects. Given the absence of an output schema, this information would be valuable 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?
The schema description coverage is 100%, but the description adds value by providing concrete placeholder examples ({{first_name}}, {{job_title}}) and a multi-step embedding process, which goes beyond the schema's basic 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 the verb 'create' and resource 'email template', specifying the main fields (name, subject, body). It distinguishes itself from siblings like 'hires_update_email_template' and 'hires_list_email_templates' by focusing on creation.
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 step-by-step instructions for embedding placeholders, which aids the AI in using the tool correctly. However, it does not explicitly contrast with alternatives or specify 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.
hires_create_formAInspect
Create a new application form, optionally attaching existing questions by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Form name. | |
| questions | No | Array of question IDs to attach to this form. | |
| company_id | No | Target company ID. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a non-destructive write (readOnlyHint=false, destructiveHint=false). The description adds that attaching questions is optional, which provides some behavioral context beyond the annotations. However, it does not disclose what happens if invalid question IDs are provided or whether the form is immediately active.
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 14 words that is front-loaded with the action and resource. Every word serves a purpose, with no redundancy or 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?
The description is adequate for a simple create tool with three parameters and no output schema. However, it does not explain what the tool returns (e.g., the created form object) or the role of 'company_id' (optional but not described). The context is somewhat complete given the low complexity, but these gaps reduce completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers all three parameters with descriptions. The description adds value by explaining that the 'questions' parameter is for attaching existing question IDs, clarifying its optional nature. The meaning of 'company_id' is not elaborated, but with 100% schema coverage, the description provides useful 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 ('Create a new application form') and the resource ('application form'). It distinguishes from sibling tools like 'hires_create_question' (creates individual questions) and 'hires_update_form' (updates existing forms) by specifying that it creates a new form and optionally attaches existing questions.
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 that the tool is used for creating forms, optionally with attached questions, but does not explicitly state when to use this tool versus alternatives like 'hires_update_form' or 'hires_create_question'. No guidance on prerequisites or when to avoid using it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_create_interviewAInspect
Schedule a new interview for an application. Provide start/end times as Unix timestamps and a list of interviewer user IDs. Location is resolved to an existing record or created automatically.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Application ID. | |
| include | No | Comma-separated relations to embed: candidate, application, job. | |
| end_time | Yes | Interview end time as Unix timestamp (seconds, must be after start_time). | |
| location | No | Location string; resolved to existing record or created automatically. | |
| start_time | Yes | Interview start time as Unix timestamp (seconds). | |
| interviewer_ids | Yes | List of user IDs who will conduct the interview. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate non-read-only and non-destructive. Description adds that location may be created automatically, implying side effects. No mention of authorization or potential pitfalls.
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 states purpose, second gives parameter guidance. No redundant or missing 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?
Covers core parameters but omits mention of the optional 'include' parameter. Given schema coverage, this is minor.
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 little beyond what schema already provides. It reiterates timestamp format and location resolution, which are already in 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 ('Schedule a new interview') and the resource ('for an application'). It distinguishes from sibling tools like hires_get_interview or hires_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 specifies what to provide (start/end times as Unix timestamps, interviewer IDs) and explains the location behavior. However, it does not explicitly contrast with alternatives or mention 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.
hires_create_jobAInspect
Create a job with taxonomy, location, salary, and workflow configuration. Primary endpoint for programmatic job publishing. Required fields: status, title, description, location_city, location_country.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Public job title. | |
| status | Yes | Job status (e.g. Draft, Public). See GET /taxonomy/statuses. | |
| form_id | No | Application form ID. If omitted, a new form named after the job title is created with default questions. | |
| include | No | Comma-separated related resources to embed: workflow, hiring_team, pipeline_stages | |
| is_remote | No | Whether this is a remote position. | |
| company_id | No | Target company ID. Required only when the API key has access to multiple companies. | |
| salary_max | No | Maximum salary. | |
| salary_min | No | Minimum salary. | |
| category_id | No | Job category ID from GET /taxonomy/categories. | |
| description | Yes | Job description (HTML allowed). | |
| workflow_id | No | Workflow ID. If omitted, a new workflow named after the job title is created with default stages. | |
| department_id | No | Department ID from GET /taxonomy/departments. | |
| location_city | Yes | Job city. | |
| parent_job_id | No | Canonical parent job ID. If provided, the created job becomes a satellite job. | |
| salary_period | No | Salary period. | |
| internal_title | No | Internal-only title visible to the hiring team. | |
| location_state | No | Job state or region. | |
| internal_job_id | No | External reference ID from your ATS or HR system. | |
| salary_currency | No | Salary currency code (e.g. USD, EUR). | |
| location_country | Yes | Job country. | |
| education_level_id | No | Education level ID from GET /taxonomy/education-levels. | |
| employment_type_id | No | Employment type ID from GET /taxonomy/employment-types. | |
| knockout_questions | No | Boolean knockout questions added to the application form. | |
| ai_scoring_criteria | No | AI scoring criteria for evaluating candidates. Diff-replace by id: items with id update existing, items without id create new, existing criteria not in payload are removed. Pass [] to detach all. | |
| experience_level_id | No | Experience level ID from GET /taxonomy/experience-levels. | |
| resume_field_status | No | Resume field behavior on the application form. | |
| location_postal_code | No | Postal or ZIP code. | |
| location_full_address | No | Full formatted address. | |
| location_street_address | No | Street address. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a write operation (readOnlyHint=false). The description adds that taxonomy lookups are used but does not disclose behavioral traits such as automatic creation of form or workflow if omitted, or idempotency. It does not contradict 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 two sentences, front-loaded with the purpose, and contains no extraneous information. Every sentence contributes 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?
Given 29 parameters and no output schema, the description covers required fields and general purpose but does not explain return values or what the created job object looks like. Additional detail on outcomes would improve 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%, so baseline is 3. The description adds grouping of parameters into categories (taxonomy, location, salary) and lists required fields, which provides some additional context beyond the schema definitions.
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', resource 'job', and scope including taxonomy, location, salary, and workflow. It distinguishes from sibling tools like hires_update_job by identifying itself as the primary endpoint for programmatic job publishing.
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 it is the primary endpoint for programmatic job publishing but does not explicitly state when to use this tool versus alternatives like hires_update_job or hires_set_job_status. No guidance on prerequisites or when not to use is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_create_job_webhookAInspect
Register a webhook URL for job-related events. Core step for outbound integration setup. URL must be HTTPS. Returns a signing_secret once — store it to verify the x-hires-signature-v2 header on incoming deliveries.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Job ID (numeric) or alias | |
| url | Yes | Webhook destination URL. Must be HTTPS and point to a public host (no localhost / private / link-local IPs). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds crucial behavioral context beyond annotations: it's a creation action, returns a one-time signing_secret, and requires storage for verification. No contradiction with annotations (readOnlyHint=false, destructiveHint=false).
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?
Three sentences; front-loaded with purpose, then importance, then critical post-creation detail. 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 creation tool without output schema, the description covers the action, prerequisites, and return value (signing_secret) with usage instruction, making it complete 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?
Input schema has 100% description coverage, so baseline is 3. The description adds no additional parameter meaning beyond restating the HTTPS requirement already in 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?
Description clearly states the verb 'Register' and resource 'webhook URL for job-related events', distinguishing it from similar tools like hires_create_webhook. The context 'Core step for outbound integration setup' adds specificity.
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 indicates when to use (outbound integration setup) and mentions URL requirement (HTTPS). It implicitly differentiates from general webhook creation but does not explicitly state when not to use or list alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_create_noteCreate noteAInspect
Create a discussion note for a candidate. Supports visibility control (all or private) and @mentions with email notifications. Always pass include=candidate when surfacing results in the widget — without it, the confirmation card can only show the candidate ID and cannot link to their backoffice profile.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Note content. Supports HTML. | |
| include | No | Include related resources, e.g. 'user' for author details, 'candidate' for full candidate object with url_backoffice. Set to `candidate` so the widget can link the candidate name to their backoffice profile. | |
| user_id | No | Author user ID. If omitted, the authenticated user is used | |
| visibility | No | Visibility: 'all' (default) or 'private' | |
| candidate_id | Yes | Candidate ID (numeric) or alias | |
| mention_user_ids | No | Array of user IDs to mention. Mentioned users receive email notifications. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, so the description's mention of creation aligns. Adds context about visibility control and mentions behavior, but doesn't cover failure cases or rate limits. The note about include parameter behavior adds transparency beyond 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?
Two concise sentences. The first states the core purpose, the second provides an essential implementation note. 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?
Covers the essential purpose and key parameters with usage context. No output schema exists, but the description does not explain return values. Given the tool's complexity (6 params, creation), the guidance is 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 coverage is 100%, so baseline is 3. The description adds practical meaning to the include parameter (why it's needed for the widget) and briefly explains visibility and mentions, going beyond the schema description.
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 discussion note for a candidate, mentions key features (visibility, @mentions), and implicitly distinguishes from sibling tools like update_note or delete_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?
Provides a crucial usage tip about always passing include=candidate for widget integration, indicating when to apply this parameter. Does not explicitly compare to alternatives or state when not to use, but the tip is contextually valuable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_create_nurture_campaignAInspect
Create a nurture campaign with steps. Steps are executed sequentially; each step has a type (email, sms, voicemail, move_to_next_stage, assign_tag, assign_task) with type-specific fields. Optionally bind to a workflow stage.
| Name | Required | Description | Default |
|---|---|---|---|
| steps | Yes | Campaign steps (at least one required) | |
| title | Yes | Campaign name | |
| stage_id | No | Stage ID that triggers the campaign | |
| timezone | No | IANA timezone, e.g. "America/New_York" | |
| company_id | No | Target company ID (optional if API key is scoped to one company) | |
| delay_time | No | Delay time in seconds | |
| send_to_all | No | Send to all candidates or only new ones (default false) | |
| workflow_id | No | Workflow ID to bind the campaign to | |
| relative_days | No | Relative days for schedule | |
| relative_time | No | Relative time for schedule (seconds from midnight) | |
| response_move_to_stage_id | No | Stage to move candidate to when they reply |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate mutation (readOnlyHint=false). The description adds that steps are executed sequentially and lists type-specific fields, providing useful behavioral context beyond 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?
Two sentences, front-loaded with the main action, no wasted text. 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 complexity (11 params, nested steps) and no output schema, the description omits return value and prerequisites. It covers core but could be more 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 already describes parameters in detail. The description gives a high-level overview but adds minimal meaning beyond what the schema 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 it creates a nurture campaign with steps, listing step types and executing sequentially. It differentiates from sibling tools like update/get/delete.
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 vs alternatives. The description notes optional workflow binding but lacks when-not-to-use or comparisons to other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_create_questionAInspect
Create a reusable question with optional answer options for dropdown types. Used by forms and questionnaires.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Question text | |
| type | Yes | Question type (from hires_list_question_types) | |
| options | No | Answer options (for select/multiselect question types) | |
| company_id | No | Target company ID (uses default company when omitted) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds context (reusable, for forms) but does not disclose behavioral traits like return value, permissions needed, or whether the question is immediately usable. Annotations are minimal, so the description carries burden but falls short.
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-loads the action, and contains no fluff. It efficiently communicates 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?
Given 4 parameters and no output schema, the description adequately explains the tool's role but misses details like the company_id context and the relationship to question types. It is adequate but not 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%, so the description adds limited value. It mentions 'optional answer options for dropdown types' which aligns with the options parameter, but does not elaborate on constraints like options required for select/multiselect types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('create'), the resource ('reusable question'), and the context ('used by forms and questionnaires'). It distinguishes from siblings like update_question or delete_question.
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 context but lacks explicit guidance on when to use this tool versus alternatives (e.g., inline question definitions in create_form). No prerequisites are stated, like needing to list question types first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_create_webhookAInspect
Create a company-scoped webhook subscription. Use for outbound company-level event integrations. Returns a signing_secret once — store it to verify the x-hires-signature-v2 header on incoming deliveries.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Company ID | |
| url | Yes | Webhook destination URL. Must be HTTPS and point to a public host (no localhost / private / link-local IPs). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=false, destructiveHint=false) already indicate mutation, but the description adds crucial context: the signing_secret is returned only once and must be stored for signature verification. This goes beyond 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?
Three concise, front-loaded sentences: purpose, usage, and a critical post-creation instruction. No unnecessary words, well structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description adequately covers the return value (signing_secret) and signature verification header. Two parameters are fully explained. Complexity is low, and the description is 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 covers 100% of parameters. The description adds concrete constraints for the 'url' parameter (must be HTTPS, public host, no localhost/private IPs), which is not in the schema description.
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), resource (webhook subscription), and scope (company-scoped). It distinguishes from sibling 'hires_create_job_webhook' by explicitly specifying 'company-scoped'.
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 usage context ('Use for outbound company-level event integrations') and post-creation guidance for storing the signing_secret. It does not include when-not-to-use or explicit alternatives, but the scope is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_delete_applicationADestructiveInspect
Permanently delete an application. This removes it from all list and view queries.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Application ID. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds context beyond annotations by explicitly stating the deletion is permanent and that it removes the application from queries. Annotations already indicate destructiveHint=true, but the description clarifies the scope.
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, no redundant information, clearly front-loaded with the core action.
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 is complete. It explains the permanent deletion and its effect on visibility.
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 'Application ID.' The tool description does not add further parameter semantics, but the high coverage keeps the baseline at 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 (permanently delete) and the resource (application). It also explains the consequence (removes from all list and view queries), 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?
No guidance on when to use this tool versus alternatives like moving, rejecting, or updating an application. There is no mention of when not to use it or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_delete_candidateADestructiveInspect
Permanently delete a candidate by ID or alias.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Candidate ID (integer) or alias (string). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true, and the description adds 'permanently' to emphasize irreversibility. However, it does not disclose potential cascading side effects (e.g., deletion of associated applications, notes) or required permissions, which would be valuable given the destructive nature.
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 and front-loaded, containing no extraneous words. 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?
For a simple destructive tool with one parameter, the description is minimally complete. However, it lacks details on irreversibility (already hinted) and potential cascading effects, which would improve completeness for an AI agent deciding to use this 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 covers 100% of parameters with a clear description of the 'id' parameter (integer or alias). The description's mention of 'by ID or alias' adds no new information 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?
The description clearly states the action (delete), resource (candidate), and means of identification (by ID or alias). It distinguishes from sibling delete tools for other entities (e.g., hires_delete_application) and from the alternative disqualify 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 indicates the tool is for permanent deletion but does not specify when to use it versus alternatives like disqualification (hires_disqualify_candidate) or any prerequisites (e.g., candidate must not have active applications). No explicit usage guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_delete_companyADestructiveInspect
Delete (soft-delete) a company — takes its public career site offline. Use for lifecycle control in partner tenancy management.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Company ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare destructiveHint=true and readOnlyHint=false. The description adds value by specifying that the delete is a 'soft-delete' and that it 'takes its public career site offline.' This provides behavioral context beyond the annotations, indicating the action is reversible and has a specific observable effect. No contradiction with 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 two sentences long and to the point. The first sentence states the action and its immediate effect, while the second provides usage context. Every sentence is informative, and there is no redundant 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?
Given the tool has a single parameter, no output schema, and rich annotations, the description covers the core aspects: action type (soft-delete), effect on career site, and recommended use case. It does not detail what happens to associated data (like jobs or candidates) or explicitly mention restoration, but the sibling tool 'hires_restore_company' implies reversibility. Overall, it is adequate for the tool's 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 description coverage is 100%; the input schema includes a description for the 'id' parameter ('Company ID'). The tool description does not add any additional meaning or nuances about the parameter. Since the schema already documents the parameter adequately, 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 clearly states the action: 'Delete (soft-delete) a company — takes its public career site offline.' It uses a specific verb ('Delete'), identifies the resource ('company'), and explains the effect ('takes its public career site offline'). This distinguishes it from other sibling tools, such as hires_restore_company or hires_delete_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?
The description provides context: 'Use for lifecycle control in partner tenancy management.' This suggests the tool is intended for administrative scenarios where a company needs to be deactivated. However, it does not explicitly mention when not to use it or name alternatives, such as when restoration is needed. The context is clear but lacks exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_delete_email_templateADestructiveInspect
Soft-delete an email template. Templates already used in automations will stop being available for new actions.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Email template ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds context beyond annotations: it clarifies it's a soft-delete and explains the impact on automations. Annotations only say destructive, but the description specifies the non-permanent nature and downstream 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?
The description is a single, front-loaded sentence that conveys the main action and key behavioral detail without extraneous words. Every part is necessary.
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 aspects: action, soft-delete nature, and impact on automations. It does not mention reversibility or restore options, which could be relevant but is 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 baseline is 3. The description does not add any extra meaning to the 'id' parameter beyond what the schema already provides ('Email template ID'). No additional guidance on how to obtain the ID.
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 soft-deletes an email template, distinguishing it from other delete tools by specifying the resource. It also adds the important behavior about automations, making the purpose specific and well-defined.
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 conveys usage: when you need to remove an email template. It does not explicitly state when not to use or compare with alternatives, but the resource specificity is clear among sibling tools, and the soft-delete nature is mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_delete_formCDestructiveInspect
Delete an application form.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Form ID. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, so the description's 'Delete' is consistent but adds no extra context. It does not disclose side effects (e.g., impact on applications using the form) beyond what annotations imply.
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 redundancy. It is efficient but could benefit from a bit more structure (e.g., warning or note).
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 param, no output schema), the description is adequate for basic understanding. However, it lacks contextual completeness around implications of deleting a form.
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 'Form ID.' The tool description adds no further semantics beyond the schema, 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 'Delete' and the resource 'application form', making the tool's purpose straightforward. It distinguishes from siblings like hires_delete_application, but could be more specific (e.g., noting permanence).
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 or when to avoid it. For a destructive action, prerequisites or notes about form dependencies would be helpful, but none are present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_delete_jobADestructiveInspect
Delete a job. Use to align archived/removed positions across integrated platforms.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Job ID (numeric) or alias |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already signal destructive behavior (destructiveHint=true, readOnlyHint=false). The description adds the purpose of alignment across integrated platforms, which implies potential side effects beyond local deletion. However, it does not disclose specifics like whether the deletion is permanent, whether it affects related entities, or any authorization requirements. With annotations present, the description provides marginal additional transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with only two sentences, front-loading the primary action. Every word adds value, with no redundancy or filler.
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 clearly states the tool's purpose and provides context for its use. For a simple delete operation with one parameter and annotations signaling destructiveness, the description covers the essential information. A minor gap is that it does not explicitly state whether the deletion is permanent or reversible, but the destructiveHint annotation compensates.
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 already fully documents the single parameter with a description ('Job ID (numeric) or alias'). The tool description does not add any additional semantic information beyond what is provided in the schema, so the parameter semantics are adequately covered by 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 explicitly states the action ('Delete') and the resource ('a job'), making the primary purpose unambiguous. It further clarifies usage for synchronizing archived/removed positions across integrated platforms, differentiating it from other deletion tools (e.g., hires_delete_application) and from job-related tools like update or create.
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 context on when to use this tool ('to align archived/removed positions across integrated platforms'), which implies a synchronization use case. However, it does not explicitly state when not to use it or contrast with alternatives like setting job status or using other deletion tools, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_delete_job_webhookADestructiveInspect
Delete a job webhook subscription by ID. Use for cleanup, rotation, and endpoint migration.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Job ID (numeric) or alias | |
| webhook_id | Yes | Webhook ID to delete |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false, so the agent knows it's a write operation. The description adds minor context about typical use cases but does not reveal additional behavioral traits beyond the 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 extremely concise: two sentences that immediately convey the action and purpose. No unnecessary words or repetition.
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 delete operation with no output schema, the description adequately covers purpose and scenarios. It could mention error handling or idempotency, but overall it is complete enough given the 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 coverage is 100% with descriptions for both parameters (id and webhook_id). The description mentions 'by ID' but does not clarify which parameter corresponds to which ID, adding little 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 deletes a job webhook subscription, specifying the action (delete) and the resource (job webhook subscription). This distinguishes it from sibling tools like create or rotate.
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 use cases: cleanup, rotation, and endpoint migration. While it doesn't mention when not to use it, the context is clear and helps an agent decide among similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_delete_messageADestructiveInspect
Cancel a scheduled message before it is processed by the mailbox scheduler.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Message ID. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true. The description adds that it cancels before processing, but does not disclose permissions, reversibility, or side effects beyond what annotations provide. With annotations, the bar is lower; description adds some context but not significantly.
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 redundant words. It is efficient and front-loaded with the core action.
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 required parameter and no output schema, the description provides sufficient context: what it does, when it applies, and what resource it acts on. No missing essential 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?
Schema coverage is 100% and the parameter 'id' is described as 'Message ID' in the schema. The tool description does not add further meaning beyond what the schema already 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 the verb 'Cancel' and the resource 'scheduled message', with context 'before it is processed by the mailbox scheduler'. This distinguishes it from other delete tools like hires_delete_notification_message.
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 usage only for scheduled messages not yet processed, but does not explicitly state when not to use or list alternative tools. The context is clear but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_delete_noteADestructiveInspect
Delete a note. Use for moderation policies and data cleanup operations.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Note ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, so the description's mention of 'Delete' confirms this. However, it adds only minimal behavioral context (e.g., no details on cascading effects or permissions), relying heavily on 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 extremely concise—one sentence that front-loads the action and 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 delete tool with one required parameter and no output schema, the description and annotations together fully cover the tool's purpose and behavior.
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 is sufficiently described in the schema. The description adds no extra meaning beyond what the schema 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 'Delete' and the resource 'note', and distinguishes it from sibling update/get tools by specifying its purpose for moderation and data cleanup.
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 mentions use cases ('moderation policies and data cleanup operations'), providing guidance on when to use it, though it doesn't exclude scenarios or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_delete_notification_messageADestructiveInspect
Cancel a scheduled notification email before it is sent. Already sent messages cannot be canceled.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Notification email message ID. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true and readOnlyHint=false. Description adds the critical constraint that cancellation only works before sending, which is essential behavior beyond the annotation.
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 key action and constraint. 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 one-parameter tool with no output schema and clear annotations, the description provides necessary context (condition on sent vs scheduled) and is 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 covers the single required parameter 'id' with description 'Notification email message ID.' Description adds no extra meaning; baseline 3 due to 100% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb 'Cancel' and resource 'scheduled notification email', clearly distinguishing it from sibling tools like hires_delete_message and hires_cancel_all_notification_messages.
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 when to use (cancel scheduled email) and when not (already sent cannot be canceled). Does not mention alternatives like 'hires_cancel_all_notification_messages' but provides clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_delete_nurture_campaignADestructiveInspect
Delete (soft-delete) a nurture campaign. Active campaign executions will be stopped.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Nurture campaign ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (destructiveHint=true), the description adds that it is a soft-delete and that active campaign executions will be stopped, which is valuable behavioral context. No contradiction with 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?
Two sentences, each adding unique value: the first states the core action, the second adds an important behavioral detail. 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 delete operation with one required parameter and no output schema, the description adequately covers the key behavior (soft-delete, stopping executions). It does not discuss idempotency or prerequisites, but these are minor 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% with a clear description for the 'id' parameter. The description does not add further parameter details, 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?
The description clearly states the action (delete) and the resource (nurture campaign), specifies it's a soft-delete, and mentions that active executions are stopped. This distinguishes it from other delete tools in the sibling list, such as hires_delete_application or hires_delete_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?
No explicit guidance on when to use this tool versus alternatives like updating the campaign or other delete operations. The destructive hint is present but does not provide usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_delete_questionADestructiveInspect
Delete a reusable question from the catalog. Use cautiously when deprecating question banks.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Question ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already set destructiveHint=true; description adds 'use cautiously' but no other behavioral traits beyond what annotations provide.
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 action, 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?
Simple tool with one param and no output schema; description is adequate but could mention irreversibility or permission requirements, though annotations partly cover the destructive nature.
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 fully describes the single parameter 'id' as Question ID; description adds no extra meaning beyond that.
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 ('delete') and the resource ('reusable question from catalog') with context about deprecating question banks, distinguishing it from other delete 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 usage for deleting reusable questions but provides no explicit guidance on when to use vs 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.
hires_delete_webhookADestructiveInspect
Delete a company-scoped webhook subscription by ID. Use for endpoint retirement and security rotation.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Company ID | |
| webhook_id | Yes | Webhook ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the tool is destructive (destructiveHint: true) and not read-only. The description adds that it is 'company-scoped' and its use cases, but does not provide additional behavioral details such as reversibility or authentication requirements. Given the annotations, this is acceptable but not exceptional.
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: two sentences, front-loaded with the purpose, followed by usage guidance. Every word is informative and there is no 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 delete operation with two required parameters and no output schema, the description adequately explains the purpose and use cases. It covers the necessary information to understand when and why to use the tool, though it could optionally mention the expected outcome (e.g., successful deletion).
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 for both parameters with descriptions. The description does not add any additional meaning beyond what the schema already provides, so it meets the baseline but does not exceed 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 clearly states the action ('Delete'), the resource ('webhook subscription'), and the scope ('company-scoped'). It also provides specific use cases ('endpoint retirement and security rotation'), which helps distinguish it from similar tools like 'hires_delete_job_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 explicitly mentions when to use the tool ('endpoint retirement and security rotation'), giving clear context. However, it does not explicitly state when not to use it or provide alternatives, which would further enhance guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_disqualify_candidateADestructiveInspect
Disqualify a candidate from all active applications. Optionally provide rejection reason IDs. Returns affected application IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Candidate ID (integer) or alias (string). | |
| reasons | No | Array of rejection reason IDs from GET /taxonomy/rejection-reasons. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true. The description adds context that the tool returns affected application IDs, but does not disclose reversibility or side effects on interviews or candidate status. It adds some value but not extensive behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the primary action, followed by optional input and return. Every sentence adds value 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 mutation tool with 2 parameters, destructive annotation, and no output schema, the description covers action, scope, optional input, and return. It lacks error conditions or prerequisites but is otherwise 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 coverage is 100% with descriptions for both parameters (id and reasons). The description restates that reasons are optional, adding no new 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?
The description clearly states the action 'disqualify', the resource 'candidate', and the scope 'from all active applications'. It also mentions optional rejection reasons and return value. This distinguishes it from siblings like 'hires_reject_application' which targets 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?
The description implies usage when needing to disqualify a candidate from all active applications, but does not explicitly state when to use this tool versus alternatives like 'hires_reject_application' or 'hires_batch_reject_applications'. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_download_attachmentARead-onlyInspect
Download an attachment (resume, candidate file, application file, mail attachment, call recording). Pass the absolute URL returned by another endpoint (e.g. message.attachments[].url, cv.url, resume.url) — it MUST belong to the configured 100Hires API host; other hosts are rejected to avoid leaking the Bearer token. Returns {file_name, mime_type, size, data} where data is base64-encoded bytes. Files larger than 25 MB are rejected up-front (Content-Length check / streaming abort) without being loaded into memory.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Absolute attachment URL returned by another API response (e.g. https://api.100hires.com/v2/attachments/mail_attachment/<uuid>/<file_name>). Must match the API host. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint, destructiveHint) already indicate safe read operation. Description adds behavioral details: host validation to prevent token leakage, 25 MB file size limit, and rejection mechanism (Content-Length check/streaming abort). No contradiction.
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?
Highly concise with zero wasted words. Front-loaded with core purpose, then details constraints and return format. 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 no output schema, description fully specifies return format ({file_name, mime_type, size, data}) and data encoding. Covers all critical context: host restriction, size limit, and rejection behavior. Complete for a download 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?
Single parameter 'url' has 100% schema description coverage. The description adds valuable context: must be absolute URL from API, must belong to configured host, and provides examples of source fields (message.attachments[].url, cv.url).
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 tool downloads an attachment and lists supported types (resume, candidate file, etc.). Distinguishes from sibling tools like upload_attachment and list_application_attachments by specifying it uses a URL from another endpoint.
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?
Explains when to use (after obtaining URL from another endpoint) and includes critical constraints (host validation, file size limit). Does not explicitly state when not to use or list alternatives, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_get_ai_scoreARead-onlyInspect
Get the structured AI score for an application, including per-criterion scores, justifications, and follow-up questions. Returns null score if the application has not been AI-scored.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Application ID. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and destructiveHint. The description adds the behavioral detail that null is returned if the application has not been AI-scored, which is not in annotations. No contradictions.
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 key purpose and return behavior. Every sentence is necessary and succinct.
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 what to expect (structured score, null if unscored). It is complete enough for the 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%, so the parameter 'id' is already documented. The description does not add further meaning beyond what the schema provides, warranting 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 clearly states the tool retrieves the structured AI score for an application, specifying contents (per-criterion scores, justifications, follow-up questions) and the null case. This distinguishes it from sibling tools like hires_get_application or hires_get_evaluation.
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 retrieving AI scores but does not explicitly state when to use this over alternatives like hires_get_evaluation or hires_list_application_evaluations. No exclusions or when-not-to-use are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_get_applicationARead-onlyInspect
Get full application details including stage, status, and rejection context. Recommended before mutating stage transitions.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Application ID. | |
| include | No | Comma-separated relations to embed: candidate, cv.text, job. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, which the description complements by specifying the returned data scope (stage, status, rejection context). No contradictions; adds value beyond 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?
Two sentences, front-loaded with the tool's purpose, and no wasted words. Highly concise and structurally 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?
For a simple read tool with no output schema, the description provides enough context about what is returned and when to use it. Could specify additional fields but adequate given the annotations.
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 parameters are well-documented in the schema. The description does not add extra semantics but does not need to, as the schema is sufficient.
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 gets full application details including stage, status, and rejection context. It distinguishes from sibling tools like list_applications (list) and update_application (mutation) by specifying the comprehensive retrieval 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?
Explicitly recommends using this tool before mutating stage transitions, providing clear context. Does not explicitly state when not to use it, but the recommendation implies when it's most appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_get_billingARead-onlyInspect
Get billing/pricing capability flags for the current company. Use before invoking paid-only API behaviors.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and destructiveHint=false, establishing it as a safe, read-only operation. The description adds that it returns 'flags' and is for the current company, but does not delve into behavioral specifics like rate limits or response structure. Given annotation coverage, this is adequate though not extensive.
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 clearly states the purpose, and the second provides usage guidance. It is front-loaded with the core action and resource, 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?
For a simple, parameterless, read-only tool with good annotations, the description is complete enough. It communicates the purpose and usage intent. The lack of output schema is not critical here, though specifying the flag structure could add minor 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?
The input schema has zero parameters with 100% schema description coverage. Since there are no parameters, the description does not need to add semantics. A baseline score of 4 is appropriate 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 action ('get'), the resource ('billing/pricing capability flags'), and the context ('for the current company'). It is specific and distinguishes this tool from siblings, as no other sibling tool deals with billing flags.
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 advises using this tool before invoking paid-only API behaviors, providing clear when-to-use guidance. While it doesn't mention when not to use it, the context implies it should be used only as a prerequisite check, and no alternative tools are listed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_get_candidateGet candidateARead-onlyInspect
Get full candidate data including application summaries by candidate ID or alias.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Candidate ID (integer) or alias (string). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds value by specifying the returned data includes application summaries, which enhances transparency about the response content.
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, information-dense sentence with no extraneous words, making it highly 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?
For a simple get-by-ID tool with one parameter and no output schema, the description covers the essential purpose, input, and output, leaving no critical details missing.
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 'Candidate ID (integer) or alias (string).' The description merely restates this, adding no extra semantic value 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 'Get', the resource 'full candidate data including application summaries', and the identifier 'candidate ID or alias', distinguishing it from sibling tools like hires_list_candidates and hires_get_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?
The description implies usage when needing complete candidate data with an ID or alias, but lacks explicit guidance on when to use versus alternatives or avoid use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_get_candidate_resumeARead-onlyInspect
Get the primary resume for a candidate. Returns uuid, absolute download url (use Bearer auth), relative_time, file metadata, type. Use include='text_content' to also get the parsed plain-text content in a text field without downloading the file.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Candidate ID (integer) or alias (string). | |
| include | No | Comma-separated optional fields. Use 'text_content' to add a `text` field with parsed plain-text resume content. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses important behavioral details: returns specific fields, the download url requires Bearer auth, and the include parameter adds text content. This adds value beyond the annotations, which only indicate read-only and non-destructive 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 two sentences, front-loaded with the core purpose, and efficiently packs return details and optional usage. 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?
Given the simple parameters and no output schema, the description covers the return fields and optional behavior. It lacks mention of error cases (e.g., missing resume), but is sufficient for basic 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?
The description builds on the schema by explaining that the include parameter accepts 'text_content' to add a `text` field, and clarifies the effect. Schema coverage is 100%, but the description adds practical 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 it gets the primary resume for a candidate, and specifies the returned fields (uuid, download url, etc.). It distinguishes from sibling tools like hires_get_candidate or hires_list_candidate_files by focusing specifically on the resume.
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 explains what the tool does but does not explicitly state when to use it versus alternatives like hires_get_candidate or hires_download_attachment. No exclusion criteria or direct comparisons are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_get_career_jobARead-onlyInspect
Get full details of a single public job by ID. Returns salary, education level, experience level, and other extended fields. Returns 404 for draft, archived, or internal jobs.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Job ID | |
| company_slug | Yes | Company slug identifying the career site |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true and destructiveHint=false. The description adds that the tool returns 404 for non-public jobs, which is important behavioral context beyond annotations. No contradictions.
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 covering purpose, outputs, and error case. Front-loaded with key action 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?
For a simple read tool with 2 parameters and no output schema, the description sufficiently covers return fields and error behavior. Minor omission: no explicit read-only mention, but annotations cover that.
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 (id and company_slug). The description adds no new parameter-level detail beyond tool purpose, 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 tool retrieves full details of a single public job by ID, listing specific returned fields (salary, education, experience) and distinguishing from non-public jobs via 404 behavior. This differentiates it from siblings like hires_get_job which may access internal 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 implies usage for public jobs only by noting 404 for draft/archived/internal jobs. It provides clear context but could explicitly contrast with hires_get_job for internal jobs or hires_list_career_jobs for listing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_get_companyARead-onlyInspect
Get company profile and owner metadata. Use before updates or ownership-sensitive actions.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Company ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description's mention of retrieving 'owner metadata' adds useful context without contradicting annotations. No further behavioral details are needed for a read-only 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 extremely concise: two sentences that front-load the purpose and immediately follow with usage guidance. Every word contributes value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one parameter and no output schema, the description adequately covers purpose and usage. It mentions what data is returned ('profile and owner metadata'), though a full list of fields is not provided. Given the low complexity, this is 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 coverage is 100% with a single parameter 'id' documented as 'Company ID.' The description adds no additional parameter-level detail, leaving the agent to rely solely on the schema. With high coverage, a score of 3 is 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's purpose: 'Get company profile and owner metadata.' It uses a specific verb and resource, and distinguishes from sibling tools like hires_get_application by focusing on company data.
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 instructs when to use the tool: 'Use before updates or ownership-sensitive actions.' This provides clear context and implies it should precede write operations like hires_update_company.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_get_email_templateARead-onlyInspect
Get full details of a specific email template by ID, including subject and body content.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Email template ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds minimal behavioral context beyond stating what details are returned (subject and body content). There are no contradictions. The description does not elaborate on potential rate limits or authentication needs.
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 the essential purpose and output without any unnecessary words. It is 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's simplicity (single required parameter, no output schema), the description provides sufficient information to understand its behavior and return value. It explicitly mentions the subject and body content that will be retrieved, which is adequate for an agent to invoke 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 input schema fully describes the only parameter (id) with a brief description. The description mentions 'by ID' but adds no additional semantic meaning beyond what the schema already provides. With 100% schema coverage, the 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 retrieves full details of a specific email template by ID, specifying subject and body content. It effectively distinguishes from sibling tools like hires_list_email_templates (which lists templates) and hires_create_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?
The description implies usage when you have an email template ID and need full details, but does not explicitly state when to use this tool versus alternatives like hires_list_email_templates or how to obtain the ID. No when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_get_evaluationARead-onlyInspect
Get a filled evaluation form with all answers. Returns evaluator info, summary score, summary text, and individual question answers. Use for detailed review of evaluator feedback on a candidate application.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Evaluation form ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false, so the description does not need to repeat safety. It adds value by listing specific return fields (evaluator info, summary score, etc.), but does not disclose any behavioral traits beyond what annotations provide. The description is adequate but not extraordinary.
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: first states the action and return values, second provides usage context. Every sentence adds value; no redundancy or waste. Front-loaded with the key 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 a single parameter, clear annotations, and no output schema, the description is largely complete. It explains what the tool does, what it returns, and when to use it. Minor omission: could mention where to get the evaluation ID, 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?
The input schema has 100% description coverage for the single parameter 'id' ('Evaluation form ID'). The description does not add any extra context about the parameter (e.g., how to obtain the ID), so it meets the baseline without exceeding 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 uses a specific verb ('Get') and resource ('filled evaluation form'), and explicitly states the return contents (evaluator info, summary score, summary text, individual answers). It clearly distinguishes itself from sibling tools like hires_list_application_evaluations by focusing on a single evaluation's full details.
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 last sentence 'Use for detailed review of evaluator feedback on a candidate application' provides clear context for when to use this tool. It implies that this is for detailed review rather than listing, but it does not explicitly mention alternatives 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.
hires_get_formARead-onlyInspect
Get form details including all questions with their statuses.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Form ID. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, assuring safe read-only behavior. The description adds that the tool returns questions with statuses, which provides some context beyond annotations. However, it does not disclose additional behavioral traits like rate 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 a single concise sentence with no unnecessary words. It is front-loaded with the core action and efficiently communicates the scope of the response.
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 partially explains the return value (questions with statuses). However, it does not mention other potential fields like form metadata, which may be needed for full understanding. 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% with a single parameter 'id' described as 'Form ID'. The description adds no further meaning about the parameter's origin or format. With full 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 retrieves form details including all questions and their statuses. It uses a specific verb ('Get') and resource ('form details'), and the mention of questions with statuses distinguishes it from sibling like 'hires_list_forms' which likely returns summary info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you need full form details, but does not explicitly state when not to use it or mention alternatives like 'hires_list_forms' for listings. The sibling context provides differentiation, but the description lacks explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_get_interviewARead-onlyInspect
Get full details of a specific interview by ID. Use include to embed related candidate, application, or job data.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Interview ID | |
| include | No | Comma-separated related resources to embed: candidate, application, job |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description's addition of the `include` parameter for embedding related data adds value beyond annotations. No behavioral traits beyond reading are disclosed, but given the annotations, 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?
Two concise sentences, front-loaded with the primary purpose, no redundant terms. 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 read-only tool with no output schema, the description fully explains the purpose and key parameter (include). No critical information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with both `id` and `include` already described. The description restates the `include` functionality without adding new meaning. Baseline is 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 states 'Get full details of a specific interview by ID,' clearly specifying the action (get), resource (full details of interview), and method (by ID). It distinguishes from sibling tools like hires_list_interviews (list vs. get) 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 mentions using the `include` parameter to embed related data, but it does not explicitly state when to use this tool versus alternatives (e.g., hires_list_interviews for a list of interviews). The usage context is implied but not clearly delineated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_get_jobGet jobARead-onlyInspect
Get full details of a job by ID or alias. Use include to load related workflow, hiring team, or pipeline stages data.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Job ID (numeric) or alias | |
| include | No | Comma-separated related resources to embed: workflow, hiring_team, pipeline_stages |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, non-destructive. Description adds the ability to embed related resources, but does not disclose other behaviors (e.g., authentication, rate limits). Consistent with 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?
Two sentences, each purposeful. First states core function, second explains optional customization. Front-loaded with essential information, no wasteful text.
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 description implies full details are returned. The include parameter is well explained. Could specify return format, but sufficient for a read-only retrieval tool given annotations.
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 description adds minimal extra context (e.g., 'by ID or alias', 'comma-separated'). Baseline 3 is appropriate as description doesn't significantly improve understanding 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 the tool retrieves full job details using ID or alias, with optional related data via include. Clearly distinguishes from list jobs 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?
Explains how to use include parameter to load related data. Implicitly tells when to use: when full details are needed, not just a list. No explicit exclusions or alternatives, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_get_messageARead-onlyInspect
Get a scheduled message by ID. Returns scheduler-backed message details including sender account, schedule timestamps, and cancelability.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Message ID. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds return field details (sender account, schedule timestamps, cancelability) but does not cover potential rate limits, authentication requirements, or idempotency. Provides some additional 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, concise and front-loaded with the purpose. No unnecessary words. 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?
Given no output schema, the description adequately explains return fields. For a simple read tool with one parameter, missing error handling or idempotency is acceptable. Covers essential 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% with a clear parameter description ('Message ID.'). The description does not add further meaning or format details 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?
Clearly states the action (Get) and resource (scheduled message by ID). Specifies return contents (sender account, schedule timestamps, cancelability). Distinguishes from siblings like hires_list_messages and hires_get_notification_message.
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 when needing a specific scheduled message by ID, but does not explicitly state when to use versus alternatives like hires_list_messages or hires_get_notification_message. No when-not or alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_get_noteARead-onlyInspect
Get a single note with author and visibility metadata. Use include=user to load author details.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Note ID | |
| include | No | Include related resources: 'user' for author details, 'candidate' for full candidate payload with url_backoffice. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds only that the tool returns 'author and visibility metadata'. There is no contradiction, and for a read-only fetch, this is sufficient 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 sentences with no filler. The first sentence states the core action and output, the second provides a key parameter tip. Every word is relevant.
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 only two parameters and good annotation coverage, the description covers the main purpose and provides a helpful parameter hint. It could mention the return object type, but it's 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%, but the description adds value by explaining that 'include=user' loads author details, which goes beyond the schema's generic 'Include related resources'. This clarifies the parameter's effect.
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 'Get a single note' and specifies returning 'author and visibility metadata'. This verb+resource combination is unambiguous and distinguishes from sibling tools like 'hires_list_notes' (list) and 'hires_delete_note' (delete).
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 usage hint ('Use include=user to load author details') but lacks explicit guidance on when to choose this tool over alternatives or any prerequisite conditions. It is minimally adequate for a simple get operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_get_notification_messageARead-onlyInspect
Get a notification email message (e.g. rejection email) by ID. Returns subject, body, sender, recipient, and schedule metadata. Use candidate messages list to discover notification message IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Notification email message ID. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds behavioral context by listing the returned fields (subject, body, sender, recipient, schedule metadata), surpassing what annotations alone provide. No contradictions.
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 core action is front-loaded, and every sentence serves a purpose: describing the action, return value, and ID procurement.
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-only tool with full schema coverage and informative annotations, the description is complete. It explains what the tool does, what it returns, and how to get the required ID, leaving 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% with the parameter 'id' described as 'Notification email message ID.' The description adds context by explicitly saying 'by ID' and connecting to ID discovery, but this is marginal given the schema already covers meaning.
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 'notification email message' (e.g., rejection email), clearly differentiating it from sibling tools like 'hires_get_message' which handles other message types. It also specifies the returned fields and hints at how to obtain IDs.
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 advises to 'Use candidate messages list to discover notification message IDs', providing a prerequisite for using this tool. However, it does not explicitly state when not to use it or contrast with related tools like 'hires_get_message'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_get_nurture_campaignARead-onlyInspect
Get a single nurture campaign by ID with all steps and configuration details.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Nurture campaign ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, signaling safe read-only behavior. The description adds no further behavioral context (e.g., rate limits, data freshness). It is consistent with 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 one concise sentence with no redundant words. Every part is essential: action, resource, identifier, and detail scope.
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 comprehensive annotations and full schema coverage, the description is mostly complete. The mention of 'all steps and configuration details' provides expectation of output, though no output schema exists. Slightly lacking in usage guidance, but 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?
The input schema fully describes the single 'id' parameter with a clear description. The description only restates 'by ID', adding no additional meaning. 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 states the action ('Get'), the resource ('nurture campaign'), the key identifier ('by ID'), and what is returned ('all steps and configuration details'). It clearly distinguishes from list and mutation 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 retrieving a single campaign's details, but does not explicitly state when not to use it or mention alternative tools (e.g., list for multiple campaigns, update for modifications). No context about prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_get_questionARead-onlyInspect
Get a question definition including type and options by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Question ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false, so the description only adds that it returns type and options. This adds minimal behavioral context beyond what annotations provide.
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 captures the essential information without unnecessary verbosity.
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 is complete enough to inform the agent of what it does and how to call it.
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 is described in the schema. The description does not add further semantic detail for the parameter.
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 a question definition including type and options by ID, which distinguishes it from sibling tools like hires_list_questions and hires_list_question_types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you have a specific question ID, but it does not explicitly state when not to use this tool or mention alternatives like hires_list_questions for listing all questions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_get_userARead-onlyInspect
Get a single user by ID within current tenant scope. Use for identity resolution in automation flows. The default_mail_account_id field can be used as from_account_id when sending emails.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | User ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false, but the description adds value by noting that the `default_mail_account_id` field can be used as `from_account_id` when sending emails, providing behavioral insight beyond 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?
Two sentences with no fluff. The first sentence clearly states the purpose, and the second adds relevant, actionable information about a response field. 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 simplicity of the tool (single parameter, no output schema, annotations covering safety), the description fully covers the necessary context: purpose, use case, and a key output field.
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 `id` parameter, which is described as 'User ID'. The description adds meaning about a response field (`default_mail_account_id`) but does not enhance the semantic understanding of the input parameter 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 'Get a single user by ID within current tenant scope', using a specific verb (get) and resource (user by ID), distinguishing it from sibling tools like `hires_list_users` which list users.
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 explicitly mentions use for 'identity resolution in automation flows', providing clear context. However, it does not explicitly state when not to use or compare with alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_get_workflow_stagesARead-onlyInspect
Get stages for a specific workflow by ID. Equivalent to hires_list_workflow_stages with workflow_id filter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Workflow ID | |
| company_id | No | Target company ID (uses default company when omitted) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds minor context about equivalence to a filtered list, but no significant behavioral details beyond 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, front-loaded with core purpose, followed by concise clarification. No superfluous text.
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 complete schema annotations and clear sibling reference, the description is fully adequate. No output schema needed; behavior is fully described.
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 both parameters. The description adds no additional meaning beyond 'by ID' matching the required id parameter.
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 stages for a specific workflow by ID') and verb+resource, and distinguishes from the sibling 'hires_list_workflow_stages' by noting equivalence with a 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?
Explicitly states equivalence to 'hires_list_workflow_stages with workflow_id filter', guiding when to use this tool vs. the list variant. Lacks explicit when-not-to-use but provides clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_hire_applicationADestructiveInspect
Mark an application as hired. This is the finalization step in a hiring workflow. The application status changes to 'hired' and hired_at is set.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Application ID. | |
| include | No | Comma-separated relations to embed: candidate, cv.text, job. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false. The description adds that status changes to 'hired' and hired_at is set, consistent with mutation. However, no additional behavioral traits like reversibility or permissions are 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?
The description is two sentences, front-loading the main action and outcome. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple mutation tool with 2 parameters and full annotation coverage, the description adequately explains the result. Could mention if the action is irreversible, but destructiveHint already implies it.
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 both 'id' and 'include' are already described. The description does not add any extra context or semantics beyond what the schema 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 marks an application as hired, specifying it's the finalization step. It distinguishes from siblings like reject or advance by naming the exact status change ('hired') and field set ('hired_at').
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 finalizing a hiring workflow but does not explicitly state when to use or not use it vs. other tools like reject_application. No alternative tools mentioned or exclusions given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_application_attachmentsARead-onlyInspect
List all file attachments linked to an application (resumes, cover letters, documents). Returns file metadata and download URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Application ID. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description's claim that it 'lists' attachments is consistent. It adds value by specifying that it returns 'file metadata and download URLs', but it does not discuss pagination or rate limits. The description adds moderate behavioral context beyond 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 two sentences, totaling about 20 words. It is front-loaded with the action and resource, and includes relevant examples and output. 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 has no output schema, so the description explains the return content (file metadata and download URLs). It does not mention potential pagination or ordering, but for a simple list tool, it is sufficient. A minor gap given the lack of output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter 'id' with a description 'Application ID.' Schema coverage is 100%, so the description does not need to add extra parameter info. The description does not elaborate on the parameter beyond what the schema provides, so it meets 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 uses a specific verb 'List' and clearly identifies the resource 'file attachments linked to an application'. It lists example types (resumes, cover letters, documents) and mentions output (file metadata and download URLs). This distinguishes it from sibling tools like 'hires_download_attachment' and 'hires_list_candidate_files'.
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 requiring an application ID. It is clear when to use it (to see attachments on an application). However, it does not explicitly state when not to use it or compare with alternatives like 'hires_list_candidate_files', but the purpose is straightforward.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_application_evaluationsARead-onlyInspect
List all filled evaluation forms for an application. Each evaluation includes the evaluator, summary score (strong-yes to strong-no), and summary text.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Application ID. | |
| view | No | Response shape. Default `summary` replaces `summary_text` with a 200-char `summary_text_preview`. Use `full` only when the full evaluator commentary is needed; call hires_get_evaluation for a single record. | summary |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate `readOnlyHint: true`, so the tool is safe. Description adds that it returns only filled evaluation forms and details the fields (evaluator, score, summary). The `view` parameter behavior is explained, making behavior transparent.
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: first states purpose, second states return fields. Parameter guidance is in the schema, keeping the main description lean 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?
Given no output schema, the description adequately conveys the return structure (evaluator, score, summary). It also explains the `view` parameter's effect. Missing details like pagination, but overall 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?
Both parameters have schema descriptions covering 100%, so the description adds no extra meaning beyond the schema. The 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?
Clearly states 'List all filled evaluation forms for an application' with specific verb and resource. Differentiates from siblings like `hires_get_evaluation` by indicating this returns multiple evaluations per 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?
The description of the `view` parameter advises using `full` only when full commentary is needed and suggests `hires_get_evaluation` for a single record. However, it does not explicitly state when to use this tool versus other list tools (e.g., `hires_list_application_attachments`).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_applicationsList applications (pipeline view)ARead-onlyInspect
List applications across all accessible jobs. Supports filtering by candidate, job, stage, status, AI score range, and date ranges. Use for pipeline analytics, sync jobs, and ATS dashboards. Avoid include=candidate or include=cv.text on large pages (each embeds heavy nested data); if the response exceeds the budget the tool returns isError:true with error_code=response_too_large and retry hints. Each application embeds its current stage (IdName) directly in the response — this is sufficient for rendering kanban/pipeline views; you DO NOT need to call hires_get_job to fetch workflow_stages separately when rendering a pipeline.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1). | |
| size | No | Items per page (default 25, max 100). | |
| sort | No | Sort order. Prefix with - for descending. Default: -created_at. | |
| job_id | No | Filter applications by job ID. | |
| status | No | Filter by application status: pending (active), hired, or rejected. | |
| include | No | Comma-separated relations to embed: `candidate`, `cv.text`. **Recommended: `candidate`** for pipeline / kanban / UI rendering — without it the widget shows candidate IDs instead of names and emails. Use `cv.text` only when resume text is genuinely needed (large payload). | |
| stage_id | No | Filter applications by pipeline stage ID. Best used together with job_id. | |
| company_id | No | Filter by company ID. Omit for all accessible companies. | |
| ai_score_max | No | Return only applications with ai_score <= this value. | |
| ai_score_min | No | Return only applications with ai_score >= this value. | |
| candidate_id | No | Filter applications by candidate ID. | |
| created_after | No | Return only applications created at or after this time. Unix timestamp (seconds) or ISO-8601 string (e.g. 2026-05-11T00:00:00Z). Fractional seconds accepted but truncated. | |
| updated_after | No | Return only applications updated at or after this time. Unix timestamp (seconds) or ISO-8601 string (e.g. 2026-05-11T00:00:00Z). Fractional seconds accepted but truncated. Use for incremental sync. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it as read-only and non-destructive. The description adds valuable behavioral context: it warns about response_too_large errors with retry hints and reveals that each application embeds its current stage, reducing need for extra fetches. No contradictions with 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?
Two concise, front-loaded sentences. The first states purpose and filter capabilities. The second delivers essential usage warnings and a time-saving hint, all without redundancy. 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 13 optional parameters and no output schema, the description covers all essential behaviors: filtering, pagination (defaults from schema), error handling, and performance guidance. Could mention that it returns a paginated list of applications, but the error context and embedded stage info suffice 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?
Schema coverage is 100%, baseline 3. The description adds critical nuance: it explains that include=candidate is recommended for UI rendering (otherwise shows IDs) and that cv.text should be used sparingly. It also clarifies that stage_id works best with job_id, and that updated_after is intended for incremental sync.
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 lists applications with extensive filtering options. The verb 'list' and resource 'applications' are specific, and the tool is distinct from sibling list tools (e.g., hires_list_candidates, hires_list_jobs) by focusing on applications with pipeline-relevant 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?
Explicitly states use cases: 'pipeline analytics, sync jobs, and ATS dashboards.' Provides a clear when-not-to-use warning about heavy includes causing errors. Also advises against calling hires_get_job separately because stage data is embedded, directly preventing unnecessary API calls.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_application_stage_historyARead-onlyInspect
Get the full chronological stage transition history for an application, including the initial assignment. Each entry has from_stage_id/name, to_stage_id/name, moved_at (Unix seconds), moved_by_type (system, user, automation), moved_by_user_id, and source (what caused the transition, e.g. 'apply:indeed', 'form_watcher', 'user'; null for historical records). Use this for funnel analysis, attribution reports, and time-in-stage reports instead of paginating through /candidates/{id}/activities when only stage data is needed.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Application ID. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and destructiveHint. The description adds valuable context about returned fields (from_stage, to_stage, moved_at, source) and that it includes initial assignment, enhancing transparency beyond 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?
Two sentences: first covers purpose and output details, second provides usage guidance. 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?
Despite having no output schema, the description details return fields and use cases. For a simple 1-parameter read-only tool, it is 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?
Schema coverage is 100% with one parameter (id) described as 'Application ID.' The description does not add additional parameter semantics 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?
The description clearly states the tool retrieves 'full chronological stage transition history' for an application, including initial assignment. It specifies verb (Get), resource (stage history), and scope, distinguishing it from sibling tools like list_candidate_activities.
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 provides use cases (funnel analysis, attribution reports, time-in-stage reports) and advises against using an alternative (paginating through activities) when only stage data is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_boardsARead-onlyInspect
List available publishing boards with metadata. Use for distribution setup and board selection.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false, establishing the tool is safe and read-only. The description adds that it lists boards with metadata, which is consistent but does not provide additional behavioral details beyond annotations. No contradiction.
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 short sentences, front-loaded with the action and resource, and each sentence adds value. No redundant or extra 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?
The description states it returns metadata but does not specify what metadata (e.g., IDs, names, statuses). Without an output schema, the description should provide more detail for completeness. It is adequate but vague.
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 does not need to explain parameters. Per guidelines, baseline is 4 for 0 params.
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 publishing boards with metadata and is used for distribution setup and board selection. However, the sibling tool 'hires_list_job_boards' exists with a very similar name and purpose, and the description does not differentiate between them, causing potential confusion.
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 context ('Use for distribution setup and board selection'), which guides usage. However, it does not mention when not to use this tool or specify alternatives like 'hires_list_job_boards', so the guidance is incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_candidate_activitiesARead-onlyInspect
List timeline activities for a candidate (comments, stage moves, AI responses, etc.). Supports filtering by event type. Recommended size <= 10: copilot responses and call transcriptions can be large per event; if the response exceeds the budget the tool returns isError:true with error_code=response_too_large and retry hints.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Candidate ID (integer) or alias (string). | |
| page | No | Page number (1-based). | |
| size | No | Page size. Values above 100 are rejected with 400. Default 20, max 100. | |
| view | No | Response shape. Default `summary` replaces the largest event payloads (copilot LLM response/prompt, call transcription, comment body) with 200-char `*_preview` fields. Other event types pass through unchanged. Use `full` when the original content is needed. | summary |
| since | No | Inclusive lower bound on event timestamp. Unix timestamp (seconds) or ISO-8601 string (e.g. 2026-04-01T00:00:00Z). Fractional seconds accepted but truncated. | |
| until | No | Inclusive upper bound on event timestamp. Unix timestamp (seconds) or ISO-8601 string (e.g. 2026-04-01T00:00:00Z). Fractional seconds accepted but truncated. | |
| event_type | No | Comma-separated event types to filter. Supported: comment, copilot_response, stage_moved, automation_action_triggered, assign_job, enrichment, call, validate_emails, profile_mutation, qualification, assign_tags, assign_sources, candidate_rate. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint=true), description discloses that copilot responses and call transcriptions can be large, recommends size<=10, and describes error handling with retry hints. This 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?
Two sentences, no unnecessary words. The first sentence states purpose, the second adds critical usage guidance. Every sentence 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?
With 7 parameters and no output schema, the description covers core purpose and important behavioral aspects. It misses some details like ordering and pagination behavior, but the schema and annotations fill many 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 baseline is 3. The description adds no additional parameter meaning beyond what is in the schema, but does include a practical size recommendation. Baseline score 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 it lists timeline activities for a candidate, with examples like comments, stage moves, AI responses. This distinguishes it from sibling list tools which are for other entities (e.g., applications, 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?
Provides practical guidance on recommended page size (<=10) due to potentially large event payloads, and explains error behavior. However, it does not explicitly compare with alternatives or 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.
hires_list_candidate_filesARead-onlyInspect
List all files attached to a candidate (resumes and other documents). Each entry has uuid, absolute download url (use Bearer auth), relative_time, file metadata (orig_file_name, file_ext, file_type/MIME, readable_size), and type (resume/other). Default response is compact; avoid include=text_content on candidates with many files — it adds parsed resume text per file which can exceed the response budget.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Candidate ID (integer) or alias (string). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes response fields in detail (uuid, download URL with Bearer auth, relative_time, file metadata, type) and flags a potential budget exceedance. Annotations already indicate read-only, non-destructive, reinforcing safety.
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?
Concise one-paragraph with front-loaded purpose. Every sentence adds value, though the warning could be slightly more compact. Good structure overall.
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?
Compensates for missing output schema by detailing response fields. Warns about text_content overhead. Lacks pagination info but reasonable for a list-all tool. Completeness is solid.
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 provides clear description for the single parameter 'id'. Description adds no extra semantic value beyond the schema, 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?
Description clearly states 'List all files attached to a candidate', specifying document types. It distinguishes from siblings like hires_get_candidate_resume and hires_list_application_attachments through the 'all files' scope and candidate context.
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 actionable guidance: default is compact, warns against include=text_content for candidates with many files to avoid response budget issues. Lacks explicit comparison to alternative tools or when-not-to-use, but the advice is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_candidate_interviewsARead-onlyInspect
List all interviews for a candidate across all applications. Useful for timeline views and scheduling conflict detection.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Candidate ID (integer) or alias (string). | |
| page | No | Page number (1-based). | |
| size | No | Number of items per page. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is clear. Description adds 'across all applications' scope and use cases, but does not detail pagination behavior, ordering, or whether only upcoming interviews are returned. Adds some but not rich behavioral context beyond 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?
Two sentences, front-loaded with action and scope, no redundant words. 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?
For a read-only list tool with 3 parameters and no output schema, the description covers purpose, scope, and use case adequately. Lacks hint about return fields (e.g., date, status) but still informative enough for agent decision.
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 all three parameters (id, page, size). Description only ties id to candidate, no additional meaning for page/size. Baseline 3 as description does not add 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 'List all interviews for a candidate across all applications' with specific verb and resource, and provides use cases (timeline views, scheduling conflict detection). Distinguishes from sibling 'hires_list_interviews' which likely lists interviews without candidate 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?
Provides usage context: 'for timeline views and scheduling conflict detection'. Does not explicitly contrast with sibling tools or mention when not to use, but the context is clear enough for an agent to infer appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_candidate_messagesARead-onlyInspect
List email and messaging history for a candidate. Use is_scheduled=1 to filter only pending scheduled messages. Recommended size <= 10: messages include full HTML body; if the response exceeds the budget the tool returns isError:true with error_code=response_too_large and retry hints.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Candidate ID (integer) or alias (string). | |
| page | No | Page number (1-based). | |
| size | No | Number of items per page. | |
| view | No | Response shape. Default `summary` excludes the HTML body and attachments metadata. Use `full` only when message body content is needed. | summary |
| is_scheduled | No | Set to 1 to return only scheduled (not yet sent) messages. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and non-destructive behavior, but the description goes beyond by disclosing that responses may be large and that exceeding a budget returns isError with error_code=response_too_large and retry hints. This adds valuable 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: one sentence for purpose, one for a key filter, and one for a critical behavioral note. It is front-loaded and efficient, 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?
Given no output schema, the description covers the main behaviors (large responses, error handling, recommended size). It does not detail pagination or sorting, but the schema covers page/size and the annotations confirm read-only, so it is fairly 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 the schema already documents all parameters. The description adds a size recommendation and mentions that is_scheduled=1 filters, but does not significantly enhance parameter understanding 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?
The description clearly states it lists email and messaging history for a candidate, which is specific and distinguishes it from generic message listing tools like hires_list_messages. It also mentions filtering by is_scheduled, adding further specificity.
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 usage guidance: using is_scheduled=1 to filter scheduled messages and a recommended size <=10 due to potential large responses. It doesn't explicitly state when not to use or mention alternatives, but the hints are clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_candidatesSearch candidatesARead-onlyInspect
List candidates with optional filters. Supports filtering by job, stage, email, name, LinkedIn, and date ranges. Returns paginated results. Recommended size <= 10: candidate payloads include the full profile answers array and can be large; if the response exceeds the budget the tool returns isError:true with error_code=response_too_large and retry hints — reduce size, narrow filters, or fetch a single record via hires_get_candidate.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Plain-text search by name or email. Supports partial matches. | |
| page | No | Page number (1-based). | |
| size | No | Number of items per page. | |
| view | No | Response shape. Default `summary` excludes the `profile` array (custom profile-form answers). Use `full` only when those answers are genuinely needed; call hires_get_candidate for a single full record. | summary |
| No | Exact candidate email filter. | ||
| job_id | No | Filter candidates by job ID. | |
| include | No | Comma-separated related data. Supported: `applications` — embeds each candidate's application summaries with job titles and pipeline stages. Recommended when the caller needs stage/pipeline context (e.g. UI rendering, candidate-status questions). | |
| No | Search by LinkedIn profile URL or alias (e.g. 'johndoe' or full URL). | ||
| stage_id | No | Filter candidates by pipeline stage ID. Best used together with job_id. | |
| full_name | No | Candidate full-name filter. | |
| company_id | No | Filter by company ID. Required only when the API key has access to multiple companies. | |
| created_after | No | Return only candidates created at or after this time. Unix timestamp (seconds) or ISO-8601 string (e.g. 2026-05-11T00:00:00Z). Fractional seconds accepted but truncated. | |
| updated_after | No | Return only candidates updated at or after this time. Unix timestamp (seconds) or ISO-8601 string (e.g. 2026-05-11T00:00:00Z). Fractional seconds accepted but truncated. Useful for incremental sync. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only. The description adds significant behavioral context: the risk of large responses (profile answers), potential error_code=response_too_large, retry hints, and the trade-off between summary/full views. This goes beyond the 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 extremely concise: two sentences plus an error-handling note. It is front-loaded with the tool's purpose, then filters, then important warnings. Every sentence adds value, and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite 13 parameters and no output schema, the description covers filters, pagination, payload size guidance, error handling, and a fallback option. It omits details about the response structure (e.g., what fields are returned), but given the lack of output schema, a slightly lower score is warranted. Still, it provides enough context for an agent 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?
The input schema has 100% description coverage, so the description cannot add much per-parameter detail. However, it adds critical context for the 'size' parameter (recommend <=10) and reinforces the 'view' parameter's purpose. This extra guidance justifies a score above the 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 'List candidates' and enumerates specific filters (job, stage, email, name, LinkedIn, date ranges), distinguishing it from sibling list tools like hires_list_applications. It also notes paginated results, leaving no ambiguity about the tool's function.
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 explicit guidance on when to use this tool (listing with filters) and includes a critical warning about payload size (recommend size<=10) and error handling. It suggests an alternative (hires_get_candidate) for single full records. However, it does not explicitly state when not to use it or compare to other list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_candidate_tagsARead-onlyInspect
List all tags assigned to a candidate. Useful for segmentation and audience-based automations.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Candidate ID (integer) or alias (string). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description aligns with annotations (readOnlyHint=true), but does not add extra behavioral context such as output format, pagination, or potential side effects. Since annotations already indicate safety, the description is minimally 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. The first sentence states the core function, the second adds a relevant use case. Excellent 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?
For a simple one-parameter read-only tool with no output schema, the description is sufficient. It covers purpose and a use case. However, it could optionally mention the response format (e.g., array of tags) 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?
The input schema fully describes the required 'id' parameter with a clear description. The tool description does not add additional meaning beyond the schema, 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 states 'List all tags assigned to a candidate' with a specific verb and resource. It also provides a use case ('Useful for segmentation and audience-based automations'), making the purpose clear and distinct 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?
The description mentions a use case (segmentation) but does not specify when not to use this tool or how it differs from alternatives like 'hires_list_tags' or 'hires_remove_candidate_tag'. No explicit exclusions or comparisons are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_career_jobsARead-onlyInspect
List publicly visible jobs for a company career site. Supports filtering by department, employment type, city, and country. Use to power a custom careers page.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | Filter by job city (exact match) | |
| page | No | Page number (default 1) | |
| size | No | Page size (default 25) | |
| country | No | Filter by job country (exact match) | |
| company_slug | Yes | Company slug identifying the career site | |
| department_id | No | Filter by department ID | |
| employment_type_id | No | Filter by employment type ID (e.g. Full-time, Part-time) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint and destructiveHint; description adds that jobs are 'publicly visible', which is key behavioral context. No contradictions, and description supplements annotations by specifying the public nature.
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, 22 words, front-loaded with purpose. Every sentence adds value; 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?
Covers key aspects (public jobs, filters, use case) but lacks details on pagination (page/size parameters exist) or return format. No output schema, but description could mention pagination behavior. Adequate for a read-only 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?
Schema coverage is 100% with descriptions for all 7 parameters. The description briefly lists filterable fields but adds no extra semantic detail beyond what the schema provides. 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 the verb 'List', resource 'publicly visible jobs for a company career site', and includes filtering capabilities. Distinguishes from siblings like hires_list_jobs and hires_get_career_job by specifying 'public' and 'career site' context.
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 use case 'to power a custom careers page', implying it's for public-facing listings. Lacks explicit when-not-to-use or alternative tools, but the context is clear given sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_categoriesARead-onlyInspect
List global job categories. Use for job classification and consistent taxonomy mapping.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, indicating a safe read operation. The description adds context by noting 'global' and 'taxonomy mapping', which is helpful but does not contradict 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 extremely concise at two short sentences, front-loading the action and purpose without superfluous words. 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?
For a tool with no parameters and no output schema, the description fully covers what the tool does and its intended use, leaving no gaps in understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so schema coverage is 100%. The description does not need to elaborate on parameters, and it adds no param-specific information, which 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 ('global job categories'), distinguishing it from sibling tools like 'hires_list_tags' or 'hires_list_boards' by specifying 'global job categories'.
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 use case ('Use for job classification and consistent taxonomy mapping'), which guides when to use the tool, but it does not explicitly mention when not to use it or compare with alternatives, preventing a higher score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_companiesARead-onlyInspect
List partner-accessible companies with pagination. Use for tenant discovery and management panels.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| size | No | Page size (default 25) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and destructiveHint=false, so safety is clear. The description adds pagination behavior and partner-accessibility, providing useful context beyond 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?
Two concise sentences, front-loaded with purpose and usage. No unnecessary words; 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?
The description covers purpose, usage, and pagination. No output schema, so return values are not detailed, but for a simple list tool with two parameters, it is nearly 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 covers both parameters (page, size) with descriptions (100% coverage). The description does not add extra semantics about parameters, so baseline score 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 'List partner-accessible companies with pagination', specifying the verb (list), resource (companies), and a key qualifier (partner-accessible). This distinguishes it from other list tools among 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 'Use for tenant discovery and management panels', providing clear context. No explicit exclusions or alternatives, but the purpose is well-marked among many list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_company_id_mail_accountsARead-onlyInspect
List all mail accounts for all users in a specific company. The company must be accessible (own company or a client).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Company ID | |
| page | No | Page number (default 1) | |
| size | No | Page size (default 25) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds the behavioral constraint that the company must be accessible, which is beyond the annotations. No other behavioral traits (e.g., pagination details, error cases) are disclosed, but the safety profile is well-covered.
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 only two sentences, front-loaded with the main purpose and followed by a crucial constraint. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool with good schema coverage and annotations, the description is complete. It specifies the resource, scope, and a key precondition. The output format is not described, but no output schema exists, so the description suffices.
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 already having a clear description (e.g., "Company ID", "Page number", "Page size"). The tool description adds no additional meaning beyond what is in 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 verb "list", the resource "mail accounts", and the scope "for all users in a specific company". It distinguishes from sibling tools like hires_list_user_mail_accounts and hires_list_company_mail_accounts by specifying the company-level scope with an ID.
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 usage condition: the company must be accessible (own company or client). This provides context for when to use the tool, but it does not explicitly state when not to use it or mention alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_company_mail_accountsARead-onlyInspect
List all mail accounts for all users in the current company. Use to resolve from_account_id before creating scheduled emails.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| size | No | Page size (default 25) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds that the tool lists all accounts for all users, implying broad scope and no destructive side effects. However, it does not disclose pagination behavior or any rate limits, which would add further transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences. The first sentence states the primary purpose, and the second adds actionable context. Every sentence earns its place without unnecessary detail.
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 that the tool is a simple list operation with pagination, the description covers the scope (all users in the current company) and provides a use case. However, there is no output schema, and the description does not specify what fields each mail account object contains (e.g., id, email address, user). This omission slightly reduces completeness, but overall it is sufficient for an agent to understand when to call it.
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%, meaning both parameters (page, size) are described in the schema. The description does not add any additional meaning beyond what the schema provides. Per the guidelines, the baseline score is 3 in this case.
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 'mail accounts for all users in the current company'. It also provides a specific use case (resolving from_account_id before creating scheduled emails). However, it does not explicitly differentiate from similar sibling tools like hires_list_company_id_mail_accounts or hires_list_user_mail_accounts, which could cause 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 gives a concrete context: use to resolve from_account_id before creating scheduled emails. However, it lacks explicit guidance on when not to use this tool or alternatives. For example, it does not mention that if you need mail accounts for a specific user, you might use hires_list_user_mail_accounts instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_departmentsARead-onlyInspect
List departments for the company. Use for job organization filters and reporting dimensions.
| Name | Required | Description | Default |
|---|---|---|---|
| company_id | No | Target company ID (uses default company when omitted) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering safety. Description adds that it lists departments for a company but does not detail behavior like pagination, ordering, or permission requirements. It adds context beyond annotations but remains 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, 12 words, no redundant information. Every part is useful and the description is 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 list tool with one optional parameter and no output schema, the description adequately states purpose and use case. It does not describe return format or ordering, but this is acceptable given the low 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 coverage is 100% and schema describes the company_id parameter. Tool description does not add any further information beyond what is in 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 explicitly states 'List departments for the company' with specific verb and resource, and distinguishes from sibling list tools by focusing on departments. The use case is further clarified with 'for job organization filters and reporting dimensions.'
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 clear context for when to use the tool (for job organization filters and reporting), but does not explicitly exclude other circumstances or mention alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_education_levelsARead-onlyInspect
List education level taxonomy values. Useful for job requirements and structured matching.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, making it clear this is a safe read operation. The description adds the concept of taxonomy values but no additional behavioral traits beyond what annotations provide.
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?
Extremely concise: two sentences, no wasted words, front-loaded with the core 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?
For a simple list tool with no parameters and no output schema, the description adequately explains what the tool returns (taxonomy values) and its purpose, covering all necessary 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?
No parameters exist, and schema coverage is 100%. The description correctly implies that no parameters are needed, adding no additional param info. Baseline for 0 parameters is 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?
Description clearly states the action ('List') and resource ('education level taxonomy values'), and mentions usefulness for job requirements and structured matching, which distinguishes it from sibling list tools like hires_list_experience_levels.
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 when to use ('Useful for job requirements and structured matching') but lacks explicit when-not or alternative guidance. Still, it offers sufficient context for an AI agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_email_templatesARead-onlyInspect
List email templates for the target company. Returns paginated results with template name, subject, and body. Recommended size <= 10: templates include the full HTML body; if the response exceeds the budget the tool returns isError:true with error_code=response_too_large and retry hints — reduce size or fetch a single template via hires_get_email_template.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| size | No | Page size (default 25) | |
| view | No | Response shape. Default `summary` excludes the HTML template body. Use `full` only when body content is needed; call hires_get_email_template for a single record. | summary |
| company_id | No | Target company ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds detail on pagination, budget errors, and response limits beyond the readOnlyHint annotation.
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 tightly written sentences with clear purpose and essential usage details; 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?
Covers all key aspects: purpose, pagination, view modes, error conditions, and alternative tool, despite lacking 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?
Expands on schema descriptions, especially for 'view' and 'size', explaining practical implications like budget limits.
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?
Describes specific action 'List email templates' for a target company, clearly distinguishing it from single fetch tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on page size recommendation, error handling for large responses, and alternative tool hires_get_email_template.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_employment_typesARead-onlyInspect
List supported employment types (full-time, part-time, contract, etc.). Use for validation and normalization.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=false. Description adds usage context (validation/normalization) but doesn't disclose additional behavioral traits like return format or fixed set. Score 3 as it adds moderate value beyond 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, front-loaded with purpose, no redundant words. Every part 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 no parameters, no output schema, and a simple lookup tool, the description is complete. It tells exactly what the tool does and how to use it (validation/normalization). 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?
No parameters. Schema coverage is 100% (vacuously). Description adds examples of employment types, which helps clarify what is listed. Baseline 4 for zero 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 the verb 'list' and resource 'employment types' with examples (full-time, part-time, contract). While not explicitly distinguishing from siblings, the name and purpose are specific enough. Calibration: 5 requires explicit sibling differentiation.
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 'Use for validation and normalization,' providing a clear usage context but no explicit when-to-use or when-not-to-use compared to alternatives. Score 3 as guidelines are implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_experience_levelsARead-onlyInspect
List experience level taxonomy values for role seniority modeling.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description's use of 'list' is consistent. However, it adds no additional behavioral context beyond what annotations provide, such as idempotency or rate limits. Without annotations, the description would need to cover this, but with annotations, the bar is lower.
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. Every part of the description 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?
For a simple list tool with no parameters and no output schema, the description is fully complete. It accurately conveys the tool's purpose and is sufficient for an AI agent to understand what it does.
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, so the baseline is 4. The description adds no parameter information, but none is needed. Schema coverage is 100% as there are no parameters to document.
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 lists experience level taxonomy values for role seniority modeling, specifying both the verb and resource. It distinguishes itself from sibling list tools like hires_list_categories and hires_list_education_levels by indicating its specific purpose for seniority modeling.
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 used to get experience level values for seniority modeling, but it does not explicitly state when to use it over alternatives or provide any constraints. As a simple list tool, the context is clear, but it lacks comparative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_formsARead-onlyInspect
List application forms (paginated). Returns forms with their questions for the target company. Recommended size <= 10: each form embeds its full question list; if the response exceeds the budget the tool returns isError:true with error_code=response_too_large and retry hints.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number. | |
| size | No | Page size. | |
| view | No | Response shape. Default `summary` omits the embedded `questions` array. Use `full` only when the full question list is needed; call hires_get_form for a single form. | summary |
| company_id | No | Target company ID. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond annotations (readOnlyHint, destructiveHint) by explaining that the response can be too large and returns error_code=response_too_large with retry hints. It also details the 'view' parameter's effect on response shape. No contradiction with 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 concise with four well-structured sentences. Each sentence adds essential information: purpose, pagination, size recommendation, view options, and error handling. No redundant or missing 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 lacking an output schema, the description adequately covers what is returned (forms with questions), pagination, error case, and parameter usage. For a read-only list tool, this provides 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 all parameters are documented. The description adds value by recommending a maximum size of 10 and explaining the 'view' options, complementing the schema descriptions. However, the schema already contains detailed parameter descriptions, so the description's additional guidance is limited.
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 'List application forms (paginated)' and specifies it returns forms with questions for the target company. This distinguishes it from related tools like 'hires_get_form' which returns a single form.
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 usage guidelines: recommends size <= 10 due to embedded question lists, explains the 'view' parameter and when to use 'full' vs 'summary', and directs users to 'hires_get_form' for a single form. It also describes error behavior with retry hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_hiring_teamARead-onlyInspect
List users currently assigned to a job's hiring team. Useful for notification routing and collaboration tooling.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Job ID (numeric) or alias |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, informing the agent of safe read-only behavior. The description adds context about the listing being of currently assigned users, which is useful but beyond what annotations provide. There is no contradiction.
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, well-structured sentences: the first states the action and resource, the second provides a use case. No unnecessary words, and all information is 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 list tool with one required parameter and no output schema, the description covers purpose and usage context. It hints at the output (list of users) but does not detail the user fields returned. Given the tool's simplicity, this is reasonably complete, though a brief note on output structure would elevate it further.
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%: the single parameter 'id' is described as 'Job ID (numeric) or alias'. The tool description does not add further semantic information about the parameter, 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 uses the specific verb 'list' and clearly identifies the resource as 'users currently assigned to a job's hiring team'. It distinguishes this tool from siblings like 'hires_add_hiring_team_member' (write) and 'hires_get_job' (broader job details).
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 use case ('useful for notification routing and collaboration tooling'), indicating when to use this tool. However, it does not explicitly mention when not to use it or suggest alternative tools for related tasks like getting job details.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_interviewsList interviews (agenda)ARead-onlyInspect
List interviews with optional filters by job, application, candidate, interviewer, date, or timestamps for incremental sync. Returns paginated results. Always pass include=candidate when surfacing results in the agenda widget — without it, the widget can only show candidate IDs and cannot link cards to candidate profiles. Avoid include=job on large pages (embeds full job description per interview); if the response exceeds the budget the tool returns isError:true with error_code=response_too_large and retry hints.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Filter by interview date (YYYY-MM-DD, UTC) | |
| page | No | Page number (default 1) | |
| size | No | Page size (default 20) | |
| job_id | No | Filter interviews by job ID | |
| include | No | Comma-separated related resources to embed: candidate, application, job. Set to `candidate` (or include `candidate` in the list) so the widget can link interview cards to candidate profiles in the backoffice. | |
| company_id | No | Filter by company ID. Omit for all accessible companies. | |
| candidate_id | No | Filter interviews by candidate ID | |
| created_after | No | Return only interviews created at or after this time. Unix timestamp (seconds) or ISO-8601 string (e.g. 2026-05-11T00:00:00Z). Fractional seconds accepted but truncated. | |
| updated_after | No | Return only interviews updated at or after this time. Unix timestamp (seconds) or ISO-8601 string (e.g. 2026-05-11T00:00:00Z). Fractional seconds accepted but truncated. | |
| application_id | No | Filter interviews by application ID | |
| interviewer_user_id | No | Filter interviews by interviewer user ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the tool is safe. The description adds valuable behavioral details: pagination behavior, the impact of the `include` parameter on response size and widget functionality, and error conditions. This goes beyond what annotations provide.
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 structured into two focused paragraphs: first the core functionality and pagination, then critical usage warnings. It is front-loaded with the main action. While slightly detailed, every sentence adds value, and it avoids redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately covers the tool's purpose, filters, pagination, and critical usage scenarios. It omits the return format details, but for a list tool, the parameter documentation sufficiently describes the available data. Contextual completeness is high.
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 well-documented. The description adds extra semantics for `include` (explicitly states the widget requirement and the risk of large responses) and for the timestamp parameters (truncates fractional seconds). This enriches 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 the tool lists interviews with optional filters, using the verb 'list' and resource 'interviews'. It distinguishes from siblings by mentioning the agenda widget use case, which is unique among the many '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?
The description provides explicit guidance on when to use `include=candidate` and when to avoid `include=job`, including the consequences of misuse (widget failing or response_too_large error). It also explains pagination and retry hints, giving clear context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_job_boardsARead-onlyInspect
Get current board publication state for a specific job. Returns which job boards the job is published to. Useful for distribution dashboards and posting audits.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Job ID (numeric) or alias |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds that the tool returns a list of job boards, which is consistent and adds some context. However, it does not disclose other behavioral traits like rate limits 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 concise with three sentences that front-load the action and output. Each sentence adds value: operation, return type, and use cases. No unnecessary words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, read-only), the description is fairly complete. It explains the output and provides use-case context. Minor gaps like missing edge cases (e.g., invalid job ID) prevent a perfect score.
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 provides a description for the 'id' parameter ('Job ID (numeric) or alias'), covering 100% of parameters. The description adds no extra meaning beyond what the schema offers, so the 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 retrieves the board publication state for a specific job, using the verb 'Get' and specifying the resource. It distinguishes from sibling tools like hires_list_boards (lists all boards) and batch operations, and provides use cases (distribution dashboards, posting audits).
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 use cases but does not explicitly state when to use this tool versus alternatives (e.g., hires_get_job or batch tools). No when-not-to-use or exclusion criteria are provided, leaving room for ambiguity in tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_jobsList jobsARead-onlyInspect
List jobs with optional filters by status, date range, department, or search query. Returns paginated results. Use for career-site sync, reporting, and external system indexing. Recommended size <= 10: full job payloads include description HTML and can be large; if the response exceeds the budget the tool returns isError:true with error_code=response_too_large and retry hints — reduce size, narrow filters, or fetch a single record via hires_get_job.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Search by job title or internal title (partial match) | |
| page | No | Page number (default 1) | |
| size | No | Page size (default 20) | |
| view | No | Response shape. Default `summary` excludes heavy fields (description HTML, indeed_posting_data, ai_scoring_criteria) and embedded relations — recommended for list operations. Use `full` only when description or include=workflow/hiring_team/pipeline_stages is genuinely needed; call hires_get_job for a single full record. | summary |
| status | No | Filter by job status name (from GET /taxonomy/statuses, e.g. Public, Draft, Archived) | |
| include | No | Comma-separated related resources to embed: workflow, hiring_team, pipeline_stages | |
| company_id | No | Filter by company ID (required only for multi-company API keys) | |
| department_id | No | Filter jobs by department ID (from GET /taxonomy/departments) | |
| updated_after | No | Return only jobs updated at or after this time. Unix timestamp (seconds) or ISO-8601 string (e.g. 2026-05-11T00:00:00Z). Fractional seconds accepted but truncated. Use for incremental sync. | |
| created_at_end | No | Return only jobs created at or before this time. Unix timestamp (seconds) or ISO-8601 string (e.g. 2026-05-11T00:00:00Z). Fractional seconds accepted but truncated. | |
| created_at_start | No | Return only jobs created at or after this time. Unix timestamp (seconds) or ISO-8601 string (e.g. 2026-05-11T00:00:00Z). Fractional seconds accepted but truncated. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and non-destructive. The description adds behavioral details: returns paginated results, can error with response_too_large, and size recommendations. No contradiction. However, it doesn't mention rate limits or sorting 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 efficient: first sentence states purpose and filters, second sentence mentions pagination, third states use cases, fourth gives critical size guidance and error handling. 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?
Given 11 optional parameters and no output schema, the description covers purpose, filters, pagination, use cases, and error behavior. It could mention default ordering or response structure, but for a list tool it is sufficiently 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 baseline is 3. The description summarizes filters (status, date range, department, search) but doesn't add new semantic meaning beyond what the schema descriptions already provide. The size and error info is useful but not parameter-specific.
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 specific verb and resource. It distinguishes from sibling tools like hires_get_job by mentioning optional filters and suggesting it for bulk operations. The error handling hints further differentiate it.
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 use cases: 'Use for career-site sync, reporting, and external system indexing.' Provides when-not guidance through error handling: 'fetch a single record via hires_get_job' and advice on reducing size or narrowing filters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_job_webhooksARead-onlyInspect
List webhooks configured for job-level events. Use to audit subscriptions and deployment state.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Job ID (numeric) or alias |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and destructiveHint=false, indicating safe read operation. Description adds context about auditing and deployment state, but no new behavioral traits beyond what annotations imply.
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. Every sentence is informative with no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with one parameter and no output schema, the description sufficiently explains what the tool does and when to use it. No gaps in necessary 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?
Schema coverage is 100% and already documents the single parameter 'id' as Job ID (numeric) or alias. Description adds no additional meaning to the parameter.
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 action (list), resource (webhooks for job-level events), and purpose (audit subscriptions and deployment state). It distinguishes from sibling 'hires_list_webhooks' by specifying 'job-level events'.
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 use case: 'Use to audit subscriptions and deployment state.' It implies when to use this tool for auditing job-level webhooks, but does not explicitly exclude other contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_messagesARead-onlyInspect
List messages sent or scheduled from a specific mail account. Returns outbound messages only (sent and scheduled), not received. Useful for monitoring cold outreach campaigns — check pending queue, delivery history, and plan next sends. Recommended size <= 10: messages include full HTML body; if the response exceeds the budget the tool returns isError:true with error_code=response_too_large and retry hints.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (1-based). Default: 1. | |
| size | No | Number of items per page (1-100). Default: 20. | |
| view | No | Response shape. Default `summary` excludes the HTML body and attachments metadata — recommended for list operations. Use `full` only when message body content is needed. | summary |
| status | No | Filter by message status: `scheduled` (pending send), `sent` (delivered), `all` (both). Default: `all`. | |
| date_to | No | End of period (unix timestamp, seconds). Filters on scheduled/sent time. | |
| date_from | No | Start of period (unix timestamp, seconds). Filters on scheduled/sent time. | |
| from_account_id | Yes | ID of the mail account (from `GET /companies/mail-accounts` or `GET /users/{user_id}/mail-accounts`). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint, destructiveHint), description warns about large responses causing isError with error_code=response_too_large and retry hints, and explains that it returns only outbound messages. Adds meaningful behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose, no redundant information. Every sentence adds value: purpose, use case, and behavioral warning. 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?
Covers pagination, view, status, date range, and required parameter. Warns about response size limit. Without output schema, some return format details are missing, but the description is sufficient for an agent to use the tool correctly in most cases.
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 all 7 parameters with descriptions. Description adds extra guidance: recommends size <=10, explains view enum options with examples, and clarifies date filter as unix timestamps. Provides value 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?
Description explicitly states it lists outbound messages from a specific mail account, distinguishes from received messages, and gives concrete use cases like monitoring cold outreach. This provides a specific verb+resource scope that differentiates from sibling tools like list_candidate_messages.
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 when to use (monitoring cold outreach, checking pending queue) and a specific recommendation (size <= 10). Does not explicitly state when not to use or name alternatives, but the context is clear enough for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_notesARead-onlyInspect
List notes by candidate. Returns paginated discussion notes for a candidate. Use for shared recruiter context and timeline synchronization. Notes can contain long free-form text; if the response exceeds the budget the tool returns isError:true with error_code=response_too_large and retry hints.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number | |
| size | No | Page size | |
| view | No | Response shape. Default `summary` replaces the full note body with a 200-char `body_preview`. Use `full` only when the full note text is genuinely needed; call hires_get_note for a single record. | summary |
| include | No | Include related resources: 'user' for author details, 'candidate' for full candidate payload with url_backoffice. | |
| candidate_id | Yes | Candidate ID (numeric) or alias |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint=true, destructiveHint=false), the description adds critical behavioral context: notes may contain long text, and if the response exceeds budget, the tool returns isError:true with error_code=response_too_large and retry hints. This helps agents handle errors gracefully.
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 three sentences: first states purpose, second gives usage context, third describes error behavior. No redundant text, front-loaded with actionable 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 tool with no output schema, the description covers purpose, usage, pagination, and error handling. It could briefly mention the response shape (e.g., list of notes with body_preview in summary mode) but is sufficient for selection and invocation.
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 5 parameters have schema descriptions (100% coverage), but the description adds value by explaining the view parameter's trade-offs ('Use full only when genuinely needed; call hires_get_note for a single record'). This goes beyond the schema's basic description.
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 notes by candidate and returns paginated discussion notes. This is a specific verb+resource combination that distinguishes it from sibling tools like hires_get_note (single note) and hires_create_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?
The description provides clear usage context ('shared recruiter context and timeline synchronization') but does not explicitly state when not to use it. However, the view parameter hints at using hires_get_note for a single record, offering some guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_nurture_campaignsARead-onlyInspect
List nurture campaigns with pagination. Returns campaign summaries including steps.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| size | No | Page size (default 25) | |
| company_id | No | Target company ID (optional if API key is scoped to one company) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and non-destructive. Description adds that it returns campaign summaries including steps, which provides useful context about the return content beyond the 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?
Two sentences, no filler. First sentence covers action and result, second adds detail. 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 tool's simplicity (list with pagination, 3 optional parameters, no output schema), the description is adequate. It explains the return type (summaries including steps) and pagination. Could be more specific about the summary fields, but overall 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 parameters (page, size, company_id). Description does not add additional meaning beyond what the schema already 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?
Clearly states the action (list), resource (nurture campaigns), and key feature (pagination). Distinguishes from sibling tools like get_nurture_campaign and delete_nurture_campaign.
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 usage for listing all nurture campaigns with pagination. No explicit when-not or alternatives, but the context of read-only listing is clear and sufficient for differentiation from single-campaign retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_originsARead-onlyInspect
List candidate origin taxonomy values. Use for attribution analytics and source normalization.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds context by explaining the purpose (taxonomy values) and use cases, without contradicting annotations. However, it does not add new behavioral traits beyond the 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?
Two short, front-loaded sentences with no wasted words. First sentence states the action, second gives usage context. Perfectly 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?
Given the tool has no parameters and no output schema, the description covers the essential purpose and usage. It could mention the return format (e.g., 'returns a list of values'), but for a simple list tool, it is fairly 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, and schema description coverage is 100% (trivially). The description does not need to add parameter details; baseline for 0 parameters is 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 tool lists 'candidate origin taxonomy values' with a specific verb and resource. It also differentiates by mentioning 'attribution analytics and source normalization,' which distinguishes it from sibling tools like hires_list_sources that might list source values.
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 ('Use for attribution analytics and source normalization') but does not explicitly state when not to use this tool or name alternatives. It lacks exclusion criteria, which is a gap given the many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_questionsBRead-onlyInspect
List paginated question catalog for the company.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| size | No | Page size (default 25) | |
| company_id | No | Target company ID (uses default company when omitted) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and destructiveHint=false. The description states 'List paginated question catalog,' which aligns with read-only behavior. It adds pagination context but lacks details on sorting, filtering, or result structure.
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 clear verb and resource, front-loaded and efficient. 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?
Tool has no output schema and moderate complexity (3 parameters). Description covers the basic purpose but omits return value structure, sorting, filtering, or pagination behavior details. Given the absence of output schema, more context would be helpful.
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 does not add significant meaning beyond the schema. The schema already documents page, size, and company_id with 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?
Description clearly states 'List paginated question catalog for the company,' specifying the action (list), resource (questions), and scope (company). It distinguishes from sibling tools like hires_list_question_types (different resource) and hires_get_question (single item).
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. The description does not mention prerequisites, exclusions, or context for selecting this tool over other list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_question_typesARead-onlyInspect
List available question types supported by the platform. Use to drive dynamic form builders.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, so safe read. Description adds context that it returns platform question types, but no additional behavioral traits beyond what annotations convey.
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. Information is front-loaded and directly useful.
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 and no output schema, the description is complete: it specifies what is returned (question types) and a primary use case (dynamic form builders).
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?
No parameters; schema coverage is 100%. Description does not need to add parameter info, and baseline for 0 params is 4. It does not repeat schema content.
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 it lists available question types, using specific verb 'List' and resource 'question types'. It distinguishes from sibling 'hires_list_questions' which lists actual question instances, not types.
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 usage context ('Use to drive dynamic form builders'), implying when to use. No explicit exclusions or alternatives, but not necessary given the tool's specificity and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_rejection_reasonsARead-onlyInspect
List configured rejection reasons for the company. Use to validate rejection actions and analytics.
| Name | Required | Description | Default |
|---|---|---|---|
| company_id | No | Target company ID (uses default company when omitted) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description's 'list' aligns. It adds minimal behavioral context beyond what annotations provide.
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, focused sentences convey purpose and usage without unnecessary words. Highly 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 read-only list tool with one optional parameter and no output schema, the description is sufficient. It could mention pagination but is otherwise 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 to the single parameter beyond what its schema description 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 it lists configured rejection reasons for the company, which is specific and distinct from sibling tools like hires_list_statuses or hires_list_tags.
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 a clear use case ('validate rejection actions and analytics'), but lacks explicit when-not or alternative tools. Sibling hires_batch_reject_applications is related but not mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_sourcesARead-onlyInspect
List candidate sources for the company. Use for attribution sync and reporting consistency.
| Name | Required | Description | Default |
|---|---|---|---|
| company_id | No | Target company ID (uses default company when omitted) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds little beyond annotations (readOnlyHint=true, destructiveHint=false). It doesn't elaborate on return format or other behavioral traits, but annotations already convey safe read 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 two sentences, front-loads the purpose, and contains no fluff. Every word 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?
For a simple list tool with one optional parameter, no output schema, and safe read annotations, the description covers purpose and usage context completely.
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 for the sole parameter 'company_id' is already clear in the schema. The description does not add meaningful parameter 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?
The description clearly states it lists candidate sources for the company, which is specific and distinguishes it from sibling list tools like hires_list_candidates or hires_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?
It provides clear usage context ('attribution sync and reporting consistency') but does not explicitly state when not to use it or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_statusesARead-onlyInspect
List job status labels (draft, published, on_hold, closed, archived). Cache to validate job status updates.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds value by enumerating the statuses returned (draft, published, on_hold, closed, archived) and suggesting caching, which aids intelligent 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?
Two concise sentences with no wasted words. The verb and resource are front-loaded, 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?
For a simple, parameterless tool with no output schema, the description provides the resource, examples, and a usage hint. It is fully adequate for an agent to select and invoke the 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 zero parameters with 100% coverage, so no parameter documentation is needed. The description compensates by listing expected output values, which is ideal.
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 'job status labels', and provides specific examples (draft, published, on_hold, closed, archived). It is distinct from sibling tools like 'hires_list_jobs' or 'hires_list_workflow_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?
The description hints at usage for validation ('Cache to validate job status updates'), but does not explicitly state when to use or avoid this tool, nor compare it to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_tagsARead-onlyInspect
List all tags for the company. Returns paginated results. Recommended to cache for fast tagging UX.
| Name | Required | Description | Default |
|---|---|---|---|
| company_id | No | Target company ID (uses default company when omitted) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds useful behavioral traits: paginated results and caching recommendation, which are beyond annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with essential information, no fluff. 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?
Given no output schema, the description covers pagination and caching needs. It is fairly complete for a simple read operation, though could mention tag fields or default pagination limits.
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 restates 'for the company' but does not add significant new meaning beyond the schema's description of the optional company_id.
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 all tags for the company' with a specific verb and resource scope. It distinguishes from sibling tools like 'hires_list_candidate_tags' which filters by 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?
The description recommends caching for fast UX, implying frequent reads, but does not explicitly explain when to use this tool versus alternatives like hires_list_candidate_tags or batch tag operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_template_placeholdersARead-onlyInspect
List available placeholders for email templates with pagination. Use type to filter by category, q to search by label. Discover placeholders here, then use hires_prepare_template_placeholders to get an HTML tag for insertion.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Filter placeholders by label (case-insensitive substring match) | |
| page | No | Page number (default 1) | |
| size | No | Page size (default 25) | |
| type | No | Filter by placeholder type | |
| company_id | No | Target company ID (uses default company when omitted) | |
| is_notification | No | Include notification-specific system placeholders (0 or 1, default 0) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds value by specifying the scope (email templates) and the workflow connection, without contradicting annotations. It does not mention any additional behavioral traits, but given the annotations cover safety, 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?
Two sentences, zero wasted words. The first sentence states the core purpose and pagination; the second gives filtering and workflow guidance. Front-loaded with the main action.
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 6 parameters and no output schema, the description covers the core purpose, filtering, and integration with the sibling tool. It does not detail output format, but for a list operation the return type is typically an array, which can be inferred. The description is complete enough 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% with descriptions for all 6 parameters. The description adds meaning by explaining the purpose of `type` and `q` filters and mentioning pagination. While it does not describe every parameter, the schema already does that, so the description provides contextual value beyond the structured schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists available placeholders for email templates with pagination, and distinguishes from sibling tool hires_prepare_template_placeholders by mentioning it as the next step. The verb 'list' and resource 'template placeholders' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit workflow guidance: 'Discover placeholders here, then use hires_prepare_template_placeholders to get an HTML tag for insertion.' It also suggests filtering by type and search by label. While it does not explicitly state when not to use this tool, the context is clear enough for an agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_user_mail_accountsARead-onlyInspect
List mail accounts connected to a user. Use to resolve from_account_id before creating scheduled emails via POST /candidates/{id}/messages.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | User ID | |
| page | No | Page number (default 1) | |
| size | No | Page size (default 25) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and non-destructive behavior. The description adds the specific user-scope but no additional behavioral detail beyond what annotations and schema provide.
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, 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?
Simple tool with good schema and annotations. Missing brief mention of return format (list of mail account objects), but the use-case guidance compensates.
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 parameters have descriptions in schema (100% coverage). Description adds no new semantics; 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 mail accounts connected to a user,' specifying verb, resource, and scope. This distinguishes it from siblings like hires_list_company_mail_accounts.
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 use case: resolving `from_account_id` before creating scheduled emails. Does not include explicit when-not-to-use, but the purpose is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_usersARead-onlyInspect
List users for the target company with role context. Returns paginated results useful for access reviews and hiring-team management.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| size | No | Page size (default 25) | |
| company_id | No | Company ID to list users for |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, indicating a safe read operation. The description adds that results are paginated and include role context, which adds moderate value beyond the 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 two sentences (22 words), front-loading the action and scope in the first sentence and adding usage context in the second. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, so the description partially compensates by mentioning 'paginated results' and 'role context'. It could be more complete by specifying expected fields or explicitly stating that company_id must be 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 description coverage is 100%, so the schema already documents all three parameters. The description does not provide additional per-parameter meaning, such as clarifying that company_id is effectively required, though not marked as such.
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 users' and the scope 'for the target company with role context'. It differentiates from sibling tools like 'hires_list_hiring_team' and 'hires_get_user' by implying this tool returns all users with 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?
The description provides context by stating it is 'useful for access reviews and hiring-team management'. However, it does not explicitly exclude alternatives or specify when not to use this tool, such as when needing only hiring team members.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_webhooksARead-onlyInspect
List webhook subscriptions configured at company scope.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Company ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it as read-only. The description adds the scope context ('company scope'), but no additional behavioral traits (e.g., authorization, pagination) are disclosed. It does not contradict 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, clear sentence with no unnecessary words. It is 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 tool's simplicity (one parameter, no output schema, read-only), the description provides sufficient context to understand what the tool does and its scope.
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 description 'Company ID'. The description does not add any extra semantic meaning 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 action ('List') and the resource ('webhook subscriptions'), and specifies the scope ('at company scope'), which distinguishes it from sibling hires_list_job_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?
The description implies use for company-level webhooks but does not explicitly state when to use this tool versus the sibling hires_list_job_webhooks or other webhook tools. 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.
hires_list_workflowsARead-onlyInspect
List workflows with embedded stages for the company. Use to build stage-aware integrations and routing rules.
| Name | Required | Description | Default |
|---|---|---|---|
| company_id | No | Target company ID (uses default company when omitted) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that it returns workflows with embedded stages, which is useful context. However, no additional behavioral details (e.g., pagination, ordering) are disclosed. With annotations covering safety, the description's added value is moderate.
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 consists of two concise sentences. The first specifies the action and resource, and the second provides a usage context. There is no unnecessary verbiage.
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 operation with one optional parameter and no output schema, the description sufficiently conveys the tool's purpose and expected output (workflows with embedded stages). It is complete enough for the agent to use correctly, though it could hint at the nested 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 one optional parameter (company_id). The description does not add any parameter-level information beyond what the schema already provides. Therefore, it meets the baseline for high coverage without adding extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and specific resource 'workflows with embedded stages', and provides a use case ('build stage-aware integrations and routing rules'). It differentiates from sibling tools like 'hires_list_workflow_stages' by emphasizing embedded 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?
The description offers a usage hint ('Use to build stage-aware integrations and routing rules'), but lacks explicit guidance on when to use this tool versus alternatives, such as 'hires_list_workflow_stages' for independent stages. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_list_workflow_stagesARead-onlyInspect
List pipeline stages filtered by workflow or job. Useful for transition UIs and workflow validation.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | No | Filter stages by job ID (returns stages from the job's assigned workflow) | |
| company_id | No | Target company ID (uses default company when omitted) | |
| workflow_id | No | Filter stages by workflow ID (from hires_list_workflows) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral details beyond what the annotations already convey (readOnlyHint=true). Annotations already indicate this is a safe, non-destructive read operation. The description does not disclose any additional traits such as response format or pagination 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 extremely concise at two sentences (15 words), front-loaded with the action and object. Every sentence contributes valuable information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (0 required params, no output schema, no nested objects), the description is sufficient. It explains the purpose, filtering options, and use cases. The absence of output format documentation is acceptable because 'list' implies returning an array of stages, and the tool's name is self-explanatory.
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 provides 100% description coverage, with each parameter (job_id, company_id, workflow_id) fully documented. The description mentions filtering by workflow or job, but this does not add meaning beyond the schema. The baseline of 3 is appropriate since the schema carries the full burden.
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 specifies the verb 'List' and the resource 'pipeline stages', and indicates filtering by workflow or job. It distinguishes from siblings like 'hires_list_workflows' (lists workflows) and 'hires_get_workflow_stages' (likely returns details of a specific stage). The mention of 'transition UIs and workflow validation' provides additional context.
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 states it is 'useful for transition UIs and workflow validation', providing some context of when to use. However, it does not explicitly exclude other use cases or provide alternatives (e.g., when to use 'hires_get_workflow_stages' instead). The guidance is implied rather than direct.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_move_applicationBDestructiveInspect
Moves an application to a specific pipeline stage for explicit stage transitions in workflow orchestration. Requires the target stage_id (available via the job's pipeline_stages).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Application ID. | |
| include | No | Comma-separated relations to embed: candidate, cv.text, job. | |
| stage_id | Yes | Target pipeline stage ID. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description repeats the mutation aspect already conveyed by destructiveHint=true and readOnlyHint=false. It adds minimal behavioral context beyond what annotations already provide, such as no mention of side effects, permissions, reversibility, or error cases.
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, consisting of two sentences that efficiently state the purpose and a key prerequisite. Every word adds value, with no redundancy or filler.
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 destructive nature and lack of output schema, the description should inform about effects, success indicators, and potential side effects. It fails to explain what happens after a move (e.g., previous stage overwritten, history tracked). This leaves the agent with significant uncertainty.
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, the description adds value by explaining the stage_id parameter's source (pipeline_stages). However, it does not elaborate on the 'id' or 'include' parameters, leaving them to the schema. The added context is useful but limited to one parameter.
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 'moves' and resource 'application', and specifies the destination as 'specific pipeline stage'. It hints at explicit stage transitions, which helps distinguish from automated advances, but does not explicitly contrast with siblings like hires_advance_application or hires_transfer_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?
The description provides a prerequisite by noting that the target stage_id is available via the job's pipeline_stages. However, it lacks explicit guidance on when to use this tool versus alternatives (e.g., advance, batch move, or update), and does not 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.
hires_patch_messageADestructiveInspect
Partially update a scheduled message before send time. Only provided fields are changed.
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | Carbon-copy recipient email addresses. | |
| id | Yes | Message ID. | |
| to | No | Primary recipient email addresses. | |
| bcc | No | Blind carbon-copy recipient email addresses. | |
| body | No | Email body as HTML. | |
| subject | No | Email subject line. | |
| scheduled_at | No | Updated send time as a Unix timestamp in seconds. | |
| from_account_id | No | Sending mail account ID. If omitted, the API key owner's default mail account is used. | |
| reply_to_email_id | No | Optional mailbox message ID to reply to. | |
| send_in_new_thread | No | Whether to send the updated message as a new thread. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true. The description adds that the operation is a partial update and applies only to scheduled messages before send time, providing useful behavioral context beyond the annotations. It does not detail error handling or side effects after send time, but the added clarity justifies a 4.
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 defines the action and resource, the second clarifies the partial update behavior. No extraneous words, front-loaded with the key verb and object.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (10 parameters, no output schema), the description conveys the essential purpose and constraint. It omits error conditions (e.g., what happens if the message was already sent) but is otherwise complete for a patch operation with well-documented schema and annotations.
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. The description adds the crucial semantic that only provided fields are changed, which reinforces the patch behavior and is not evident from the individual parameter descriptions. This extra meaning elevates the score above the 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 partially updates a scheduled message before send time. The verb-pair 'patch message' and resource 'scheduled message' are explicit, and the qualifier 'only provided fields are changed' distinguishes it from a full update, effectively differentiating it from siblings like hires_update_message.
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 the use case 'before send time', which gives clear context. It does not explicitly list when not to use (e.g., after send time) or name alternatives, so the score is high but not maximal. The condition implies proper usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_prepare_template_placeholdersARead-onlyInspect
Convert a placeholder reference into an HTML tag for insertion into an email template body.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Placeholder type (system, candidate_column, job_variable, questionnaire_link, scheduling_link) | |
| identifier | No | Placeholder identifier | |
| job_variable_id | No | Job variable ID | |
| form_question_id | No | Form question ID | |
| system_column_title | No | System column title | |
| qas_profile_question_id | No | Profile question ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states it converts to an HTML tag, which is non-destructive and read-only. Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds no new behavioral context beyond what is already provided by 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?
A single, well-structured sentence that immediately conveys the tool's purpose. Every word is necessary and contributes to understanding. It is front-loaded and avoids redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple conversion tool but lacks details about the output format (the HTML tag structure) and does not explain how parameters relate to different placeholder types. Given no output schema, the description could be more complete by specifying the return value. However, the tool is straightforward, so it barely meets minimal 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 descriptions for all 6 parameters, so the baseline is 3. The description does not add additional meaning or relationships between parameters; it simply reiterates the conversion action. No extra guidance on parameter selection or usage 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 tool's function: converting a placeholder reference into an HTML tag for email template insertion. It uses a specific verb ('convert') and resource ('placeholder reference'), and the context of email templates distinguishes it from sibling tools like 'hires_list_template_placeholders' or 'hires_create_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?
No explicit guidance on when to use this tool versus alternatives. The usage is implied from the purpose (preparing HTML for email templates), but there are no when-not-to-use or alternative tool mentions. This leaves the agent to infer context without clear direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_publish_to_job_boardAInspect
Activate selected job boards for a job. Sets boards to activation queue state. Use for controlled multi-board publishing workflows.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Job ID (numeric) or alias | |
| boards | No | Array of board identifiers to activate (e.g. ['indeed', 'linkedin']) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral insight by stating 'Sets boards to activation queue state', indicating that the activation is not immediate but queued. This goes beyond the annotations (readOnlyHint false, destructiveHint false, openWorldHint true) which only hint at mutability and openness. No contradictions with 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 consists of two concise sentences that front-load the action and state. Every sentence adds value: first defines the operation, second clarifies the state and use case. No redundancy or unnecessary detail.
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 a straightforward mutation, and the description covers the core purpose and behavior. No output schema exists, but the return value is not critical for a publish action. Given the presence of annotations and sibling tools, the description is sufficiently complete for an agent to decide when to use it. It could mention success/failure indicators but is still 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%, so baseline is 3. The description does not add significant meaning beyond the schema: it mentions 'selected job boards' and 'boards to activation queue state', but the schema already describes the parameters clearly. No additional format or constraints 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 tool activates selected job boards for a job, using the verb 'activate' and specifying the resource 'job boards'. It also distinguishes from siblings like hires_batch_publish_to_boards by mentioning 'controlled multi-board publishing workflows' and setting boards to an 'activation queue state', which implies a staged 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 gives some context with 'Use for controlled multi-board publishing workflows', suggesting it is for deliberate multi-board activation. However, it does not explicitly state when not to use it or compare to alternatives like the batch version or the single removal tool. More explicit guidance would improve clarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_reject_applicationADestructiveInspect
Reject an application with an optional rejection reason. Use GET /taxonomy/rejection-reasons to list available reason IDs. Set suppress_notification to skip the rejection email.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Application ID. | |
| include | No | Comma-separated relations to embed: candidate, cv.text, job. | |
| rejection_reason_id | No | Rejection reason ID from GET /taxonomy/rejection-reasons. | |
| suppress_notification | No | Set to true to skip sending the rejection email to the candidate. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true, so the agent knows it's destructive. The description adds value by explaining the notification suppression option. No contradictions with annotations; behavioral traits are well 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?
The description is three concise sentences with no fluff. It front-loads the action and provides essential additional information efficiently. 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?
Given the 4 parameters, no output schema, and destructive annotation, the description covers critical usage details: how to get reason IDs and suppress notifications. It does not explain return values or error handling, but those are often standard for such tools. Overall, it is sufficient for agent invocation.
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 documented. The description adds extra meaning: it specifies how to obtain rejection_reason_id values and explains the function of suppress_notification. This goes beyond the schema's basic 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 the tool rejects an application, with optional rejection reason. It distinguishes from siblings like batch_reject and unreject by focusing on a single application rejection. The verb 'reject' and resource 'application' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context by advising to use GET /taxonomy/rejection-reasons for reason IDs and to set suppress_notification to skip the email. It lacks explicit exclusions or when-not-to-use, but the presence of sibling tools like batch_reject implies the single-application scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_remove_candidate_tagADestructiveInspect
Remove a specific tag from a candidate.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Candidate ID (integer) or alias (string). | |
| tag | Yes | The tag string to remove. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, and the description's 'Remove' is consistent. No additional behavioral context beyond annotations is provided.
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 is efficient and front-loaded, but could be slightly more descriptive to earn a 5.
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 removal operation, the description is adequate but lacks context on prerequisites, error handling, or distinction from batch operations.
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%, and the description adds no meaning beyond what the schema already provides for the two 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 the verb 'Remove' and the resource 'a specific tag from a candidate', distinguishing it from sibling tools like add or batch remove.
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 such as hires_batch_remove_tags. Usage is implied but not clarified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_remove_from_job_boardBDestructiveInspect
Deactivate selected board publications for a job. Stops the job from being listed on specified boards.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Job ID (numeric) or alias | |
| boards | No | Array of board identifiers to deactivate (e.g. ['indeed', 'linkedin']) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, and the description confirms this by stating 'deactivate' and 'stops listing.' However, it adds little beyond the annotation, not disclosing whether the action is reversible, permission requirements, 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?
The description consists of two concise sentences that directly convey the purpose without extraneous information. Every word adds value, achieving high efficiency.
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 destructive tool, the description covers the basic functionality. However, it omits details such as what happens if the boards are not published, error handling, or return value, given no output schema. It is adequate but not 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 description coverage is 100%, with both parameters adequately described in the schema. The description adds no extra meaning beyond the schema, maintaining the baseline score. No contradiction or additional clarity needed.
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 ('Deactivate') and the resource ('selected board publications for a job'), and specifies the effect: stopping listing on specified boards. It effectively distinguishes from sibling tools like hires_publish_to_job_board and hires_batch_remove_from_boards by focusing on individual job board deactivation.
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, such as the batch version hires_batch_remove_from_boards. It lacks context on prerequisites (e.g., job must be published) or scenarios where this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_restore_companyADestructiveInspect
Restore a previously deleted company and re-enable it for active use — its public career site comes back online. Use for recovery and rollback scenarios.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Company ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description states 'Restore a previously deleted company' which is a non-destructive action, but annotations include destructiveHint=true, indicating a contradiction. Per rules, score 1 for contradiction.
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 first sentence states the action and effect, the second specifies usage context. Efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema, the description covers purpose and usage. It could mention idempotency or error conditions, but overall it is 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 coverage is 100% with the parameter id described as 'Company ID'. The description adds mild context (previously deleted company) but does not elaborate on the parameter beyond what the schema 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 uses specific verb 'Restore' with resource 'company' and provides additional context (re-enables public career site). It clearly distinguishes from sibling tools like hires_delete_company and hires_update_company.
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 'Use for recovery and rollback scenarios', providing clear guidance on when to use. However, it does not explicitly state when not to use, such as when the company is not deleted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_rotate_job_webhook_secretADestructiveInspect
Rotate a job webhook's signing secret (zero-downtime). Returns the new signing_secret once; the previous secret stays valid for a grace window so deliveries are not dropped while you switch over.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Job ID (numeric) or alias | |
| webhook_id | Yes | Webhook ID whose signing secret to rotate |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond annotations by explaining the zero-downtime behavior and grace window. Annotations indicate destructiveHint=true, and the description clarifies that the previous secret remains valid temporarily, mitigating immediate destruction concerns.
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 first sentence states the core action and key property (zero-downtime), and the second explains the behavioral implication: the grace window for safe transitions.
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 low parameter count, complete schema coverage, and presence of annotations, the description is fairly complete. It explains the return value (new signing_secret) and the grace window, which compensates for the lack of 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 100%, so the baseline is 3. The description does not add additional meaning to parameters (id, webhook_id) beyond what the schema 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 action (rotate), the resource (job webhook's signing secret), and a key feature (zero-downtime). It distinguishes from sibling tools like hires_create_job_webhook and hires_rotate_webhook_secret by specifying the job webhook context.
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 this tool (for zero-downtime rotation) and mentions the grace window for safe switchover. However, it does not explicitly contrast with the sibling tool hires_rotate_webhook_secret, which likely handles non-job webhooks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_rotate_webhook_secretADestructiveInspect
Rotate a company webhook's signing secret (zero-downtime). Returns the new signing_secret once; the previous secret stays valid for a grace window so deliveries are not dropped while you switch over.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Company ID | |
| webhook_id | Yes | Webhook ID whose signing secret to rotate |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that the previous secret remains valid temporarily (grace window) and that the new secret is returned once. This adds context beyond the annotations (destructiveHint=true, openWorldHint=true), which are consistent.
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 redundant text. The purpose and key behavior are front-loaded, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 required params, no output schema), the description adequately covers the return value and the grace window behavior. No critical 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?
Both parameters are described in the schema (100% coverage). The description does not add new information about the parameters beyond what is already in 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 the action 'rotate' and the resource 'company webhook's signing secret'. Including 'zero-downtime' adds specificity and distinguishes from similar tools like 'hires_rotate_job_webhook_secret'.
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 mentions zero-downtime and the grace window, guiding the agent on when to use this tool (safe rotation without dropping deliveries). Implicitly contrasts with a hypothetical unsafe alternative, but does not directly name alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_send_candidate_messageBInspect
Schedule an email message to a candidate. If scheduled_at is omitted, the message is scheduled for 15 minutes after creation.
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | Carbon-copy recipient email addresses. | |
| id | Yes | Candidate ID (integer) or alias (string). | |
| to | Yes | Primary recipient email addresses. | |
| bcc | No | Blind carbon-copy recipient email addresses. | |
| body | Yes | Email body as HTML. | |
| subject | Yes | Email subject line. | |
| scheduled_at | No | Unix timestamp (seconds) for when to send. Defaults to 15 minutes after creation. | |
| application_id | No | Optional application ID to link this message to. | |
| from_account_id | No | Sending mail account ID. If omitted, uses the API key owner's default mail account. | |
| reply_to_email_id | No | Optional mailbox message ID to reply to. | |
| send_in_new_thread | No | Send as a new email thread instead of replying in an existing one. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the default scheduling behavior (15 minutes after creation), which is useful beyond annotations. However, it does not disclose other behavioral traits like sending behavior for past timestamps or authentication needs.
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 front-loaded with the primary action. 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 tool with 11 parameters and no output schema, the description lacks details on return values, error conditions, and edge cases (e.g., scheduling in the past). Minimal context 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%, so the schema already documents all parameters. The description only repeats the default for scheduled_at, adding no new semantic value 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 schedules an email message to a candidate, with a specific verb ('schedule') and resource ('email message to a candidate'). The default timing detail 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?
The description provides no guidance on when to use this tool versus alternatives like batch create messages or patching. No prerequisites or context for selection are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_set_job_statusADestructiveInspect
Change job status via dedicated endpoint. Recommended for publish/unpublish/archive transitions and status automation workflows.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Job ID (numeric) or alias | |
| status | Yes | New job status (e.g. Draft, Public, Archived). See GET /taxonomy/statuses. | |
| include | No | Comma-separated related resources to embed: workflow, hiring_team, pipeline_stages |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false, correctly marking it as a modification. The description adds 'dedicated endpoint' but does not elaborate on side effects or dependencies. Without contradicting annotations, it provides minimal additional 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?
Two sentences, front-loaded with the action, zero fluff. Every sentence adds meaning: the first states what it does, the second specifies when to use it.
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 status change tool with no output schema and good annotations, the description is nearly complete. It lacks prerequisites or return value hints, but these are not critical given low 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 coverage is 100%, but the description adds value beyond schema: it clarifies 'id' accepts numeric or alias, provides examples for 'status' and references a taxonomy endpoint, and lists embeddable resources for 'include'. This 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 the tool changes job status via a dedicated endpoint, distinguishing it from general job update. It specifies recommended use cases (publish/unpublish/archive transitions and status automation), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly recommends this tool for specific transitions and automation workflows, providing clear usage context. However, it does not mention when not to use it or suggest alternatives, which would strengthen guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_submit_career_applicationAInspect
Submit a job application on behalf of a candidate. Creates a candidate record and triggers the career-site pipeline automation.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Applicant email address | ||
| phone | No | Applicant phone number | |
| job_id | Yes | Job ID to apply to | |
| resume | No | Resume file upload (base64 encoded) | |
| source | No | Application source identifier | |
| answers | No | Array of form answer objects | |
| last_name | Yes | Applicant last name | |
| first_name | Yes | Applicant first name | |
| company_slug | Yes | Company slug identifying the career site | |
| linkedin_url | No | Applicant LinkedIn profile URL |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond annotations by stating the tool creates a candidate record and triggers pipeline automation. Annotations already indicate it is not read-only and not destructive, and the description aligns with that while providing specific 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?
The description is extremely concise with two short sentences, no superfluous information, and front-loads the core action. Every word contributes.
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 (10 parameters, 5 required) and no output schema, the description provides a clear high-level purpose and side effect (triggers automation). The schema covers parameter details, so the description is sufficiently complete for an agent to understand when to use the 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 coverage is 100%, so the baseline is 3. The description does not provide additional meaning for any specific parameters beyond what the schema already describes. It remains generic.
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 submits a job application and creates a candidate record, with a specific verb and resource. It also mentions triggering pipeline automation, which adds context. However, it does not explicitly distinguish from similar siblings like hires_create_application or hires_create_candidate, leaving some 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?
No guidance is provided on when to use this tool versus alternatives, such as hires_create_application or hires_create_candidate. There are no preconditions, when-not-to-use, or alternative suggestions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_submit_feedbackAInspect
Submit structured API feedback about missing features, issues, or workflow improvements. Rate limited to 5 requests per hour.
| Name | Required | Description | Default |
|---|---|---|---|
| context | No | Arbitrary context object (max 4KB JSON) | |
| endpoint | No | The API endpoint this feedback relates to, e.g. /v2/candidates | |
| issue_type | No | Category of the issue | |
| description | Yes | Description of the issue or feedback (max 2000 chars) | |
| suggested_improvement | No | Suggested solution or improvement (max 2000 chars) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate non-destructive write. Description adds value by disclosing the rate limit of 5 requests per hour, which is critical behavioral information not present in 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?
Two concise sentences that immediately state the tool's purpose and a key constraint. 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 feedback tool with 100% schema coverage and clear annotations, the description covers purpose and rate limit. No output schema is needed for this type of operation.
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?
Input schema covers all parameters with descriptions (100% coverage). The description adds context about 'missing features, issues, or workflow improvements' which aligns with the issue_type enum but doesn't add new parameter meaning.
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 'Submit structured API feedback', with a specific verb and object. It distinguishes itself from all sibling tools as the only feedback submission tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions rate limiting (5 per hour), providing important usage context. While no explicit when-not-to-use is given, there are no alternative feedback tools among siblings, so the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_transfer_applicationAInspect
Transfer an application to another job. A new application is created on the target job. Optionally specify a stage on the target job's pipeline.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Application ID to transfer. | |
| job_id | Yes | Target job ID to transfer the application to. | |
| include | No | Comma-separated relations to embed: candidate, cv.text, job. | |
| stage_id | No | Pipeline stage ID on the target job. If omitted, defaults to the first stage. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=false, which are consistent with the description. The description adds context that a new application is created, which is a behavioral trait beyond annotations. However, it does not specify whether the original application is deleted or retained, leaving some ambiguity.
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 consists of two sentences, front-loading the primary action and then adding the optional stage detail. Every sentence is necessary and concise, 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?
The description covers the core transfer action and optional stage, but lacks details about the original application's fate (e.g., is it deactivated?), return values, or any prerequisites. Given the absence of an output schema and the tool's mutation nature, some extra context would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all parameters. The description adds value by summarizing the optional stage_id parameter ('Optionally specify a stage'), but does not elaborate on other parameters beyond what the schema already provides. Thus, it meets 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 tool transfers an application to another job, creating a new application on the target job. The verb 'transfer' and resource 'application' are specific, and the scope distinguishes it from creating or moving applications within the same job, aligning with the sibling 'hires_move_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?
The description provides basic guidance on optionally specifying a stage on the target job's pipeline, but it does not explain when to use this tool versus alternatives like 'hires_move_application' or 'hires_create_application'. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_unreject_applicationADestructiveInspect
Undo a rejection and reopen a previously rejected application. The status returns to active and rejected_at is cleared.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Application ID. | |
| include | No | Comma-separated relations to embed: candidate, cv.text, job. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains the behavioral effects ('status returns to active, rejected_at cleared') beyond the destructiveHint annotation. It does not mention potential side effects like notifications, but is adequate for a simple reinstatement 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?
The description is extremely concise, consisting of two short sentences that immediately convey the core action and effects. No unnecessary words or repetition.
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 an undo operation with a clear effect, the description is nearly complete. It lacks mention of prerequisites (e.g., application must be rejected) and return value, but these are minor gaps given the simplicity of the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the description does not need to add parameter details. It focuses on the tool's purpose rather than parameter meaning, which is acceptable given the schema completeness.
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 ('undo a rejection and reopen a previously rejected application') and specifies the resulting state changes, distinguishing it from sibling tools like 'hires_reject_application' and 'hires_delete_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?
The description implies the tool is for undoing rejections but does not explicitly state when to avoid using it or offer alternative tools for related operations. No exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_update_applicationADestructiveInspect
Update application fields such as stage, disqualification flag, and CV. For explicit stage transitions prefer hires_move_application or hires_advance_application.
| Name | Required | Description | Default |
|---|---|---|---|
| cv | No | Replace or attach a CV. | |
| id | Yes | Application ID. | |
| include | No | Comma-separated relations to embed: candidate, cv.text, job. | |
| stage_id | No | Move application to this pipeline stage. | |
| is_disqualified | No | Set to true to disqualify the candidate on this application. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true. Description adds that it updates specific fields but does not elaborate on side effects or prerequisites beyond 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 concise sentences, front-loaded with purpose and usage guidance, 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?
Covers main use case and alternatives. Could elaborate on behavior of stage_id update (e.g., whether it moves to any stage) but sufficiently complete for a simple update 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 coverage is 100%, so schema already describes all parameters. Description mentions stage, disqualification flag, and CV, which maps to schema fields but adds no new meaning.
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 tool updates application fields (stage, disqualification flag, CV) and distinguishes from sibling tools for explicit stage transitions.
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 advises when not to use (for stage transitions, prefer hires_move_application or hires_advance_application), providing clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_update_candidateADestructiveInspect
Update candidate fields, profile answers, and optional resume text. Used for bi-directional sync from ATS, CRM, sourcing, or enrichment tools. When the user provides an attached resume, parse it yourself from chat context and pass via resume_text — do not inline binary data.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Candidate ID (integer) or alias (string). | |
| city | No | Candidate city for location/timezone resolution. | |
| No | Candidate email address. | ||
| phone | No | Candidate phone number. | |
| state | No | Candidate state or region. | |
| job_id | No | Job ID to create a new application for this candidate. | |
| country | No | Candidate country name or ISO code. | |
| profile | No | Key-value map of profile field answers. Keys can be question text or question_id. | |
| stage_id | No | Pipeline stage ID for the application. Requires job_id. | |
| timezone | No | IANA timezone (e.g. 'America/Los_Angeles'). Auto-resolved from city/country if omitted. | |
| last_name | No | Candidate last name. | |
| first_name | No | Candidate first name. | |
| resume_text | No | Plain-text resume content extracted by the model from an attached file. Stored as a text/plain attachment. Do not pass binary or base64 — only parsed text. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the tool is destructive (destructiveHint: true). The description adds important behavioral context: resume_text must be parsed plain text from an attachment, not inline binary data. This exceeds what annotations provide.
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 sentences. The first states the core function, the second adds usage context and an explicit instruction. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 13 parameters, no output schema, and a destructive operation, the description covers the key aspects: what is updated, use case, and specific resume handling. It lacks details on return values and idempotency but is generally 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 coverage is 100% with all parameters described. The description adds specific guidance for the resume_text parameter (parse from chat, no binary), but this is already implied by the schema description. No significant additional semantics 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 tool updates candidate fields, profile answers, and optional resume text, specifying its use for bi-directional sync from various tools. This differentiates it from sibling tools like hires_create_candidate (create) and hires_update_application (update 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?
The description provides context that the tool is intended for bi-directional sync from ATS, CRM, sourcing, or enrichment tools, but does not explicitly mention when not to use it or direct alternatives. However, the sibling list implies other tools for different purposes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_update_companyADestructiveInspect
Update company profile, owner contact data, and optional logo — changes the tenant's public career-site URL (slug), name, and logo (public branding). Supports partner-operated account management.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Company ID | |
| url | No | Company profile URL | |
| logo | No | Company logo file | |
| name | No | Company name | |
| website | No | Company website URL | |
| company_owner_name | No | Company owner full name | |
| is_staffing_agency | No | Whether this company is a staffing agency | |
| company_owner_email | No | Company owner email address | |
| company_owner_phone | No | Company owner phone number |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds value by specifying that it changes the public career-site URL, name, and logo (public branding), providing behavioral detail beyond the 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 two sentences, front-loading the main action and listing key effects. It is efficient but not overly terse; could be slightly more structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive operation with 9 parameters and nested objects, the description covers main effects (career-site URL, brand) and partner context, but lacks prerequisites, side effects (e.g., URL change impact), or return value info (no output schema). Reasonably complete but not exhaustive.
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 description coverage, the schema already documents all parameters. The description groups parameters (profile, owner contact, logo) but adds no new semantic detail 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 'Update company profile, owner contact data, and optional logo' with specific verb and resource. It differentiates from sibling tools like hires_create_company and hires_delete_company by focusing on modifications.
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 updating company profile, owner data, or logo, and adds context about 'partner-operated account management'. However, it does not explicitly state when not to use or contrast with specific alternatives among many sibling update tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_update_email_templateADestructiveInspect
Update an existing email template. Only provided fields are overwritten; omitted fields keep their current values. To add placeholders, use the same workflow as creation.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Email template ID | |
| body | No | Email body HTML (supports placeholders) | |
| name | No | Template name | |
| subject | No | Email subject line (supports placeholders) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, but description adds valuable detail about partial update semantics ('only provided fields are overwritten'). No contradictions.
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 first sentence states purpose immediately, second provides key behavioral detail. Efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the essential behavioral nuance (partial update) and references creation for placeholders. Missing prerequisites (need template ID from list/get) but overall sufficient for a simple update 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 covers 100% of parameters with descriptions. The tool description adds only the partial update behavior, which is not parameter-specific. 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?
Description clearly states 'Update an existing email template' with the resource and action. It also distinguishes from create/delete siblings by specifying partial update behavior (only provided fields overwritten).
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?
Gives specific guidance that placeholders follow the same workflow as creation. While it doesn't explicitly list when-not-to-use, the update purpose is clear compared to siblings like create or delete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_update_formCDestructiveInspect
Update form name and question composition.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Form ID. | |
| name | Yes | Form name. | |
| questions | No | Array of question IDs to attach to this form. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already indicating destructiveHint: true and readOnlyHint: false, the description adds no additional behavioral context. It does not mention potential side effects like removing or replacing existing questions, or permissions required, which would be valuable beyond the 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, front-loaded sentence with no wasted words. It is concise and directly states the action. However, it could be restructured to include key usage or behavioral details 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's complexity (3 params, no output schema, destructive nature), the description is too brief. It does not explain the update semantics (full replacement of questions?), return values, or constraints. The annotations provide some context but the description fails to fill remaining 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 parameters are already documented. The description adds the phrase 'question composition' which conceptually groups the questions parameter, providing slight additional meaning. However, it does not specify how the array is applied (e.g., full replacement vs. partial update).
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 'form', specifying the fields 'name' and 'question composition'. This distinguishes it from sibling tools like hires_update_form_question, which handles individual question edits. However, 'question composition' could be more explicit.
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 hires_update_form_question or hires_create_form. The description lacks context on prerequisites or conditions, leaving the agent without clear selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_update_form_questionADestructiveInspect
Update the status (required/optional/hidden) of a question inside a form.
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | Question visibility on this form: required, optional, or hidden. | |
| form_id | Yes | Form ID. | |
| question_id | Yes | Question ID. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, matching the 'update' action. The description adds no additional behavioral context (e.g., reversibility, permission requirements, side effects). Since annotations carry the safety profile, the description provides minimal extra 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?
A single concise sentence that communicates the tool's purpose without extraneous information. Every word is necessary 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 update tool with only three required parameters and no output schema, the description adequately explains the action. However, it could mention that this tool only affects the form-question status relationship, not the question object itself, to provide more 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 input schema provides 100% coverage with descriptions for all three parameters. The description reiterates the status parameter's enum values but adds no additional meaning or context beyond what the schema already specifies. 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 explicitly states the verb 'update', the resource 'status of a question inside a form', and lists allowed statuses ('required/optional/hidden'). It distinguishes from sibling tools like hires_create_question (creates new question) and hires_update_question (updates question content).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when changing question visibility in a form but lacks explicit guidance on when to use this tool versus alternatives like hires_update_question (which modifies the question itself) or hires_update_form (which updates broader form settings). No exclusion criteria or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_update_jobADestructiveInspect
Update mutable job attributes. Only send fields you want to change. Preserves domain-level validation rules.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Job ID (numeric) or alias | |
| title | No | Public job title. | |
| status | No | Job status (e.g. Draft, Public). See GET /taxonomy/statuses. | |
| form_id | No | Application form ID to assign to this job. | |
| include | No | Comma-separated related resources to embed: workflow, hiring_team, pipeline_stages | |
| is_remote | No | Whether this is a remote position. | |
| salary_max | No | Maximum salary. | |
| salary_min | No | Minimum salary. | |
| category_id | No | Job category ID from GET /taxonomy/categories. | |
| description | No | Job description (HTML allowed). | |
| workflow_id | No | Workflow ID to assign to this job. | |
| department_id | No | Department ID from GET /taxonomy/departments. | |
| location_city | No | Job city. | |
| parent_job_id | No | Canonical parent job ID. If provided, the job becomes a satellite job. | |
| salary_period | No | Salary period. | |
| internal_title | No | Internal-only title visible to the hiring team. | |
| location_state | No | Job state or region. | |
| internal_job_id | No | External reference ID from your ATS or HR system. | |
| salary_currency | No | Salary currency code (e.g. USD, EUR). | |
| location_country | No | Job country. | |
| education_level_id | No | Education level ID from GET /taxonomy/education-levels. | |
| employment_type_id | No | Employment type ID from GET /taxonomy/employment-types. | |
| knockout_questions | No | Boolean knockout questions added to the application form. | |
| ai_scoring_criteria | No | AI scoring criteria for evaluating candidates. Diff-replace by id: items with id update existing, items without id create new, existing criteria not in payload are removed. Omit to leave existing criteria untouched. Pass [] to detach all. | |
| experience_level_id | No | Experience level ID from GET /taxonomy/experience-levels. | |
| resume_field_status | No | Resume field behavior on the application form. | |
| location_postal_code | No | Postal or ZIP code. | |
| location_full_address | No | Full formatted address. | |
| location_street_address | No | Street address. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond annotations: it clarifies the tool performs partial updates and preserves validation rules. Annotations already indicate destructiveHint=true, but the description explains how mutations work. No contradiction found.
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: the first states the action, the second provides key usage guidance. No wasted words, and the structure is front-loaded with the verb.
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 (29 parameters, no output schema), the description is sufficient to understand its core behavior—partial updates with validation. It lacks details on side effects or omitted fields, but the schema covers parameters. Slightly above average for a mutator 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 coverage is 100% with detailed descriptions for all 29 parameters. The description does not add extra meaning for individual parameters 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 the tool updates mutable job attributes, specifying the verb (update) and resource (job attributes). It distinguishes from create and get tools, and the context of siblings like hires_create_job and hires_get_job makes the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides partial guidance: 'Only send fields you want to change' instructs on partial updates, and 'Preserves domain-level validation rules' hints at behavior. However, it does not explicitly mention alternatives like hires_set_job_status for status-only changes, nor when to avoid this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_update_messageADestructiveInspect
Fully update (replace) a scheduled message before send time. All required fields must be provided.
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | Carbon-copy recipient email addresses. | |
| id | Yes | Message ID. | |
| to | Yes | Primary recipient email addresses. | |
| bcc | No | Blind carbon-copy recipient email addresses. | |
| body | Yes | Email body as HTML. | |
| subject | Yes | Email subject line. | |
| scheduled_at | No | Updated send time as a Unix timestamp in seconds. | |
| from_account_id | No | Sending mail account ID. If omitted, the API key owner's default mail account is used. | |
| reply_to_email_id | No | Optional mailbox message ID to reply to. | |
| send_in_new_thread | No | Whether to send the updated message as a new thread. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true and readOnlyHint=false. The description adds 'replace' semantics and the precondition 'before send time', which are valuable beyond annotations. It does not contradict 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 concise sentence that efficiently conveys the core action, conditions, and a requirement. 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?
Given the complexity and sibling tools, the description covers the key aspects: full replacement, required fields, and timing constraint. Missing info about handling of optional fields and return value, but overall sufficient 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 coverage is 100%, so description adds only the context that 'all required fields must be provided', which is already implied by the 'required' array. Minimal added value per parameter.
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 specific verbs 'fully update' and 'replace' with the resource 'scheduled message', clearly distinguishing this from partial updates like hires_patch_message and other message-related operations.
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 states the tool is for 'before send time' and 'fully update (replace)', implying it is not for patching or after send time. It could explicitly mention alternatives like hires_patch_message for partial updates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_update_noteADestructiveInspect
Update note body and/or visibility without creating a new timeline item. Use for corrections and moderation workflows.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Note ID | |
| body | No | Note content. Supports HTML. | |
| include | No | Include related resources: 'user' for author details, 'candidate' for full candidate payload with url_backoffice. | |
| visibility | No | Visibility: 'all' (default) or 'private' |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, and the description adds that it does not create a new timeline item, which is useful behavioral context. However, it does not disclose other potential side effects, permissions, or reversibility, limiting full transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences that front-load the action and then specify use cases. Every word earns its place, with no fluff or repetition.
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 core functionality and use cases but omits mention of return values (no output schema) and does not explain the 'include' parameter. While adequate, it lacks completeness for a newcomer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter already well-described. The tool description redundantly mentions 'body and/or visibility' but adds no new meaning beyond the 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 tool updates a note's body and/or visibility, distinguishing it from creating a new note by explicitly saying 'without creating a new timeline item'. It also specifies use cases (corrections, moderation), making the purpose unmistakable.
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 this tool ('for corrections and moderation workflows') and implicitly contrasts with creating a note. However, it does not explicitly list alternatives or conditions when not to use, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_update_notification_messageADestructiveInspect
Update a scheduled notification email before it is sent. Change subject, body, and optionally reschedule the send time. Only scheduled (not yet sent) messages can be updated.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Notification email message ID. | |
| body | Yes | Email body as HTML. | |
| subject | Yes | Email subject line. | |
| scheduled_at | No | Unix timestamp (seconds) to reschedule send time. If omitted, the existing schedule is preserved. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate readOnlyHint=false and destructiveHint=true. The description adds context that this tool is for scheduled notification emails and that updates are only allowed before sending. It discloses the limitations (not yet sent) and the optional rescheduling behavior, adding value beyond 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 two sentences, highly concise, and front-loaded with the action and resource. Every sentence provides essential information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is no output schema, the description adequately covers preconditions (scheduled, not sent), mutable fields (subject, body, schedule), and a key constraint. It does not describe return values, but for a mutation tool this is acceptable. Annotations and schema enrich the 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 coverage is 100%, so baseline is 3. The description mentions 'subject, body, and optionally reschedule the send time', which aligns with the schema parameters but adds no new semantic details beyond what the schema descriptions already provide.
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 the resource 'a scheduled notification email before it is sent'. It specifies what can be changed (subject, body, and optionally send time) and distinguishes from siblings by noting the 'scheduled (not yet sent)' condition, which implies other tools handle sent or unscheduled messages.
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 an explicit condition: 'Only scheduled (not yet sent) messages can be updated.' This guides the agent when to call this tool versus other update tools. However, it does not explicitly name alternative tools or when not to use it beyond that condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_update_nurture_campaignADestructiveInspect
Update an existing nurture campaign. Pass all steps -- mark removed steps with is_deleted=true. Existing steps must include their id.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Nurture campaign ID | |
| steps | Yes | All steps -- mark removed steps with is_deleted=true | |
| title | Yes | Campaign name | |
| stage_id | No | Pipeline stage ID that triggers the campaign | |
| timezone | No | Timezone for scheduled sends, e.g. "America/New_York" | |
| delay_time | No | Delay in minutes before the first step | |
| send_to_all | No | Whether to send to all candidates or only new ones | |
| workflow_id | No | Workflow ID this campaign is associated with | |
| relative_days | No | Number of days offset for scheduling | |
| relative_time | No | Time of day for scheduled sends | |
| response_move_to_stage_id | No | Stage ID to move candidates to when they respond |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true. The description adds behavioral context: 'Pass all steps -- mark removed steps with is_deleted=true. Existing steps must include their id.' This reveals how the update operates (full replacement of steps required), which is beyond the annotation. No contradictions.
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 purpose, then concise instructions. Every sentence provides value without repetition or fluff. Ideal length for such a tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (11 parameters, nested step types), the description covers the most critical aspect (steps update behavior). It doesn't mention return value or validation, but these are not required as there is no output schema. The schema handles optional parameters. Sufficient for an update tool with rich 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 100% with descriptions, so baseline 3. The description adds crucial meaning for the steps parameter: it explains the requirement to include all steps, mark deletions, and include ids for existing steps. This is not obvious from the schema alone. Other parameters are adequately described in 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 'Update an existing nurture campaign' with specific verb+resource. It provides instructions on handling steps (mark removed with is_deleted=true, include ids for existing steps). This distinguishes from sibling tools like hires_create_nurture_campaign and hires_delete_nurture_campaign.
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 clear instructions on how to correctly update steps (pass all, mark removals, include ids). It doesn't explicitly discuss when to use update vs create or delete, but the name and context make it clear. Lacks explicit alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_update_questionCDestructiveInspect
Update text, type, or options of an existing question definition.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Question ID | |
| text | Yes | Question text | |
| type | Yes | Question type (from hires_list_question_types) | |
| options | No | Answer options (for select/multiselect question types) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true. The description adds no additional behavioral context, such as whether the update is partial or full replacement, or the impact on dependent forms. Minimal extra value beyond 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?
A single, concise sentence that front-loads the verb and resource. No wasted words; perfectly sized for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Missing key context: no output schema info (what does the response contain?), no clarification that text and type are always required even if only updating options, and no distinction from hires_update_form_question. Incomplete for a mutation tool with 4 parameters.
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 already well-documented. The description reiterates 'text, type, or options' but adds no new semantics. Baseline 3 is appropriate since the description does not compensate 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 tool updates an existing question definition and specifies the attributes (text, type, options) that can be modified. It distinguishes from create/delete tools, but could be more explicit about requiring an existing ID.
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 like hires_update_form_question or hires_create_question. It does not mention prerequisites (e.g., question must exist) 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.
hires_upload_application_attachmentAInspect
Upload a file attachment to an application. Provide the file as base64-encoded data. Commonly used for signed documents and interviewer artifacts.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Application ID. | |
| file | Yes | File to upload. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate non-read-only and non-destructive nature. The description adds the requirement to provide base64-encoded data, which is useful but does not disclose other behavioral traits like file size limits, auth requirements, or return value. Partial transparency beyond schema and 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?
Two sentences with no wasted words. The first sentence states the core functionality; the second provides encoding format and typical use cases. Well-structured 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?
The description covers the main purpose and input format but lacks information about the return value (e.g., attachment ID). Given no output schema, the description should ideally mention what the tool returns. Also missing prerequisites like whether the application must exist. Adequate for a simple upload tool but incomplete for a mutation.
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 all fields have descriptions. The description reinforces the base64 encoding requirement but adds little new semantic meaning beyond the schema. The 'commonly used for' phrase provides context but not parameter-level detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Upload a file attachment') and the resource ('to an application'), and the use case ('signed documents and interviewer artifacts') distinguishes it from sibling tools like `hires_download_attachment` and generic uploads.
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 typical use cases ('Commonly used for signed documents and interviewer artifacts') but does not explicitly state when to use this tool vs alternatives such as `hires_upload_attachment` or `hires_upload_candidate_file`. Usage context is implied but not rigorously defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_upload_attachmentAInspect
Upload a file and create an attachment. Supported categories: voicemail (wav/mp3, max 20 MB, no object_id — returned uuid is usable as attachment_uuid in nurture voicemail steps); candidate (candidate ID); application (application ID); candidate_comment (comment ID); job_note (job-note ID); company_favicon/company_header/company_link_preview (company ID). Object ownership is strictly verified against the authenticated API key's company. Returns {uuid, url, file, relative_time}.
| Name | Required | Description | Default |
|---|---|---|---|
| file | Yes | File payload. | |
| category | Yes | Attachment category. Determines allowed extensions and object_id semantics. | |
| object_id | No | Target object ID (candidate/application/comment/job-note/company, per category). Omit for `voicemail`. | |
| company_id | No | Target company ID. Needed for partner API keys managing multiple client companies. Omitted → defaults to the authenticated company. The object_id must belong to this company (strict match). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, destructiveHint=false, openWorldHint=true. Description adds context on strict object ownership verification, return format {uuid, url, file, relative_time}, and special voicemail semantics, exceeding what annotations provide.
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?
Front-loaded main purpose in the first sentence. Uses a compact list for categories with inline details, and mentions return format. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers all key aspects: categories, required parameters, constraints per category, ownership verification, and return format. Despite no output schema, the description sufficiently explains the response. Sibling tools are not compared but not necessary 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?
With 100% schema coverage, baseline is 3. The description adds critical semantics: explains category-specific rules (object_id required or not), company_id use for partner API keys, and file constraints (max 20MB for voicemail, allowed types).
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 'Upload a file and create an attachment' with specific verb and resource. It lists all supported categories with distinct semantics, effectively distinguishing from siblings like hires_upload_application_attachment.
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 when-to-use by detailing each category's requirements (e.g., voicemail vs. others). However, it does not compare with sibling tools like hires_upload_candidate_file, leaving some ambiguity for category-specific uploads.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_upload_candidate_fileAInspect
Upload a file for a candidate using a base64 payload. Used for portfolio uploads and document attachment. WARNING: host function-call serializers (both OpenAI and Anthropic) truncate tool arguments above ~20KB, so binary files larger than that will arrive corrupted. For resumes specifically, prefer hires_create_candidate / hires_update_candidate with resume_text — the model parses the file from chat context and passes extracted text, avoiding the size limit entirely.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Candidate ID (integer) or alias (string). | |
| file | Yes | File to upload (base64 payload). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses a critical behavioral trait: binary files above ~20KB may be truncated by host function-call serializers. This goes beyond annotations (which only indicate non-readOnly, non-destructive). No contradiction with 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, well-structured paragraph. Front-loaded with purpose, then use cases, warning, and alternative. Every sentence is informative and 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?
Covers purpose, use cases, limitation, and alternative. However, with no output schema, the description could mention what the tool returns (e.g., file ID or URL) 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?
Schema coverage is 100% with good parameter descriptions. The description adds value by contextualizing the file parameter for portfolio/document uploads and highlighting the size limitation, which is not covered in 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 'Upload a file for a candidate using a base64 payload' and specifies use cases ('portfolio uploads and document attachment'). It distinguishes from siblings by warning about size limits and recommending an alternative for resumes.
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?
Explicit when-to-use (portfolio uploads, document attachment) and when-not-to-use (resumes, where alternative tools are preferred). Provides clear reasoning about the ~20KB truncation limit and names the preferred alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
AlicenseBqualityFmaintenanceOfficial Model Context Protocol server for 100Hires — the applicant tracking system for recruiting teams. Exposes the full 100Hires API v2 as 130 MCP tools, enabling AI assistants to manage candidates, jobs, applications, interviews, messages, and more.100271MIT- AlicenseAqualityDmaintenanceManage Job using MCP: Manage Job, Candidates, Resumes, Salaries all within this one MCP tools It can solve problems like: You have 50 resumes to screen. Your AI assistant can reason about candidates, but it can't: Read PDFs/DOCX — The AI can't open binary files Extract structured data — Copy-pasting loses formatting, metrics, and context Compare at scale — No consistent scoring across candida24491MIT
- Alicense-qualityDmaintenanceMCP server for Hunaras, an AI-native recruiting platform that enables candidates and employers to manage jobs, applications, assessments, and talent sourcing through natural language.7MIT
- AlicenseAqualityCmaintenanceMCP server for Recruit CRM, enabling AI assistants to search candidates, view jobs, and manage recruiting workflows.53MIT