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/5 across 131 of 131 tools scored. Lowest: 3.1/5.
Many tools have similar purposes (e.g., advance vs move vs batch_move for applications, multiple upload variations). Descriptions distinguish them, but the sheer volume (131 tools) makes it hard for an agent to reliably select the right one without careful reading. Some pairs like list_candidate_tags vs list_tags could cause confusion.
All tools follow a consistent 'hires_verb_noun' pattern (e.g., hires_create_candidate, hires_list_applications). Verbs like list, get, create, update, delete are used predictably. No mixing of camelCase or other conventions.
With 131 tools, the set is excessively large for a single MCP server. While some redundancy exists (e.g., multiple move/advance tools), many tools could be consolidated or parameterized. This overload increases cognitive load and risks context window issues.
The tool surface covers a broad ATS lifecycle: candidates, jobs, applications, interviews, notes, messages, nurture campaigns, forms, templates, webhooks, and taxonomy. Missing advanced features like detailed analytics or reporting, but core operational needs are well addressed.
Available Tools
131 toolshires_add_candidate_tagsAInspect
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 this is a write operation (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds that it is an additive operation (adding tags), which is consistent. No behavioral surprises are disclosed, but no contradictions exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences that immediately state the action, resource, and use cases. Every sentence adds value, and there is no unnecessary 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?
Given the tool's simplicity (2 parameters with 100% schema coverage) and no output schema, the description adequately covers the tool's purpose and usage context. It could be more complete by noting whether duplicate tags are handled, but that is a minor gap.
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 clear descriptions for both 'id' and 'tags'. The description does not add significant semantic detail beyond what the schema provides, but it reiterates that tags are added ('one or more tags'), which is already implicit.
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 ('tags to a candidate'), and enumerates specific use cases ('campaign tagging, qualification labels, and source attribution'). It distinguishes from siblings like 'hires_batch_add_tags' (batch operation) and 'hires_remove_candidate_tag' (removal).
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 the tool (campaign tagging, qualification labels, source attribution) but does not explicitly state when not to use it or compare to alternative tools like the batch version. However, the sibling list implies differentiation.
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 the tool is not read-only and not destructive. The description adds the context of workflow automation but does not disclose additional behavioral details like 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 is two sentences, front-loaded with the action, and contains 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 tool's simplicity and the annotations covering readOnlyHint and destructiveHint, the description is largely complete, though it could mention that the user must be a company member.
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 coverage is 100%, so the schema already documents both parameters. The description does not add any extra meaning beyond what is 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 uses a specific verb ('Add') and resource ('company member to the job's hiring team'), clearly distinguishing it from sibling tools like hires_list_hiring_team.
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 'workflow setup and ownership automation,' providing context for when to use, but does not explicitly exclude alternatives or state 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_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, so the description's confirmation of a write operation adds little. The description does add context about automatic stage determination and widget behavior, but does not detail side effects like notification triggering or irreversibility 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?
Three sentences with no wasted words: first sentence defines purpose, second explains key behavior (automatic stage), third gives actionable widget guidance. Information is front-loaded 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 advancement action without output schema, the description covers core behavior and a critical usage detail. However, it could mention potential side effects (e.g., notifications, irreversible state changes) or error cases, but the annotations partially cover 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 already covers parameter descriptions (100% coverage). The description adds significant value by explaining the 'include' parameter's practical impact on widget linking, going beyond the schema's basic description. The 'id' parameter is adequately covered by 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: 'Advance an application to the next pipeline stage according to workflow order.' It uses specific verbs and resources, and distinguishes from sibling tools like 'move_application' or 'reject_application' by emphasizing automatic stage progression without requiring a stage_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 explains when to use this tool (to advance without specifying a stage) and provides practical guidance for the 'include' parameter in widget contexts. However, it does not explicitly state when not to use this tool or mention alternatives like 'move_application' for manual stage selection.
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 annotations (which indicate mutation but not destructive), the description discloses key behaviors: a maximum of 100 candidates per request, and partial success support with per-item results. This provides useful operational context that the annotations do not cover.
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 efficiently convey the core function, limit, and return behavior. No wasted words, front-loaded with purpose and key constraints.
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 batch tag addition with 2 parameters and no output schema, the description covers the essential aspects: batch size limit and partial success. It is complete enough for an agent to correctly 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?
Schema description coverage is 100%, so the schema already documents both parameters. The description adds minimal additional meaning beyond restating the max limit for ids, which is also in the schema. A score of 3 is appropriate as the description doesn't significantly enhance 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 verb 'Add' and the resource 'tags to multiple candidates', and distinguishes itself from singular adds by emphasizing batch and max 100 limit. It also mentions the return format with per-item results and partial success support, leaving no ambiguity about its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies using this tool for adding tags to multiple candidates in one request, contrasting with a singular add (hires_add_candidate_tags). However, it does not explicitly state when not to use it or mention alternatives, though the batch nature is clear enough.
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 readOnlyHint=false, openWorldHint=true, destructiveHint=false, consistent with creation. The description adds behavioral context: independent processing, RBAC per candidate, and the 100 limit, all 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 sentences, front-loaded with the main function, no redundancy or 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 the nested array and batch complexity, the description covers batch size, independent processing, and RBAC. No output schema, but return values are not explicitly needed. Could mention error handling, but not required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all sub-properties. The description doesn't add new parameter details; it only notes behavior. Baseline 3 is appropriate as the schema carries the load.
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 starts with 'Create up to 100 scheduled messages in one request,' clearly stating the verb (create), resource (scheduled messages), and batch nature. It distinguishes from siblings like 'hires_send_candidate_message' (single) and 'hires_patch_message' (update).
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 that items are processed independently with per-candidate RBAC enforcement. It implies when to use (batch creation) but doesn't explicitly state when not to use (e.g., need for atomicity). Still clear guidance.
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, so the description does not need to restate safety. It adds context about batch optimization, which is consistent and helpful but does not reveal 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?
Two sentences efficiently convey purpose and usage context with no unnecessary words. The structure is front-loaded and each 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 read tool with one parameter and no output schema, the description is mostly complete. It explains the batch nature and UI use case, though it could optionally clarify the response format or constraints on the array size.
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 no extra meaning to the parameter. The schema already describes 'jobs' as an array of job IDs, so the description's lack of additional detail is acceptable but does not enhance 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 retrieves board publication states for multiple jobs in one request, distinguishing it from single-job board status checks or batch publish/remove operations. The verb 'Get' and resource 'board publication states for multiple jobs' 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 mentions optimization for batch monitoring and management UIs, providing clear context for when to use this tool. It does not explicitly state when not to use or name alternatives, but the sibling tools list implies alternatives for single-job or write operations.
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?
Discloses batch nature, partial success, and max limit. Annotations already indicate mutability (destructiveHint=true), and description adds value 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 sentences, no redundancy. Front-loaded with purpose and key constraints.
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 rich annotations and complete schema, description covers all necessary behavioral aspects for a batch operation. No output schema, but partial success and per-item results are noted.
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 schema. Mentions max 100, which is already in schema. No additional nuance for stage_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?
Clearly states the tool moves multiple applications to a pipeline stage, distinguishing it from single-application moves like 'hires_move_application'. Includes batch limit and partial success detail.
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 for batch moves with a max of 100 IDs, and partial success. Does not explicitly state when not to use it, but sibling tool names provide context.
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 non-read-only (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds 'Activate' which is consistent but does not provide additional behavioral context 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 sentences, front-loaded with the key verb and purpose, no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two parameters, no output schema, and informative annotations, the description is adequate. It explains the core action and use case, though it could briefly mention the required 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% with clear descriptions for both 'jobs' and 'boards'. The description does not add any new meaning or examples beyond what is in the schema, so baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's verb 'Activate board publication' for 'multiple jobs', distinguishing it from sibling tools like hires_publish_to_job_board (single job) and hires_batch_remove_from_boards (removal).
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 'Use for bulk job distribution workflows' which implies batch usage, but does not explicitly contrast with single-job alternatives or specify 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_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?
Description adds details not in annotations: returns per-item results with partial success support and max 100 limit. Annotations already indicate destructive and non-read-only behavior. 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. Action first, then outcome and constraint. Efficiently communicates all needed 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?
No output schema, but description compensates by describing response (per-item results, partial success). Includes limit and optional reason. Adequate for batch operation; could mention if rejection triggers notifications, but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. Description adds value by explaining the batch nature and partial success, though param descriptions are already adequate. Enhances 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?
The description clearly states 'Reject multiple applications in one request' with optional reason, distinguishing it from single-application reject (hires_reject_application) and delete (hires_delete_application). It also specifies batch capacity and partial success behavior.
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 batch context and max 100 IDs, which implies use over single reject when multiple applications are involved, but does not explicitly exclude individual reject use cases 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_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, so the description's mention of 'deactivate' adds little behavioral detail. It adds context about batch scope, which is useful but 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?
Two sentences: the first states the action, the second gives usage guidance. No unnecessary words, front-loaded 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?
Covers what it does and when to use it, which is sufficient for a batch operation. However, it does not mention what happens if 'boards' is omitted (e.g., remove from all boards) or the return value. No output schema, but that's acceptable.
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%; both parameters have clear descriptions. The tool description does not add extra 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 'Deactivate board publication for multiple jobs in one request,' using a specific verb and resource. It distinguishes itself from siblings like 'hires_batch_publish_to_boards' (opposite action) and 'hires_remove_from_job_board' (single job).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says 'Use for bulk depublishing workflows,' providing clear context. It implies that for single jobs, one should use the single-removal tool, but does not explicitly name the alternative.
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 already indicate destructiveHint=true, but the description adds valuable context: per-item results with partial success support, meaning some removals may succeed while others fail. It also reinforces the max 100 limit. 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?
Single, well-structured sentence that front-loads the action and resources. Every word serves a purpose; no redundant or filler 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 description explains the return behavior (per-item results, partial success) despite no output schema. For a 2-param batch tool without nested objects, it covers the essential aspects. Minor gap: no mention of prerequisites (e.g., candidate existence), but not critical given 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?
Both parameters are fully described in the input schema (100% coverage), so the description adds minimal new meaning. It restates the 'max 100' for ids, but the schema already includes that. 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 (remove tags), the resource (multiple candidates), constraints (max 100), and outcome (per-item results with partial success). It effectively distinguishes from siblings like hires_remove_candidate_tag (singular) and hires_batch_add_tags (opposite action).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies batch use with max 100 and partial success, but does not explicitly state when to use this tool over alternatives like hires_remove_candidate_tag or when not to use it (e.g., single candidate). The context is clear but lacks explicit when-to-use or 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_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?
The description adds value beyond annotations by explaining that already sent notifications are unaffected and that the call returns success even if no scheduled notifications exist. Annotations only indicate destructiveHint=true, so the description supplements this with non-obvious edge-case 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 with exactly two sentences. The first sentence states the primary action and scope; the second clarifies edge cases. No unnecessary information is included.
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 tool (one parameter, no output schema, annotations provided), the description covers all essential aspects: what it does, what is not affected, and return behavior. It is fully complete for the complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the single parameter fully (candidate_id: numeric or alias). The description does not add further parameter-specific meaning, 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 clearly specifies the verb 'cancel' and the resource 'scheduled notification emails' for a candidate. It distinguishes from sibling tools like 'hires_delete_notification_message' by indicating it cancels all scheduled messages, not a single one.
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 when to use (to cancel scheduled notifications) and clarifies that already sent notifications are not affected. It provides context for the operation but 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_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 (write operation) and destructiveHint=false (no destruction), which align with the description. The description adds key behavioral context: the candidate must exist before using this tool, which is a critical prerequisite not obvious from the schema alone.
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, front-loaded with the core action and purpose, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential context for a creation tool: purpose, prerequisite, and usage scenario. The nested object (cv) and other parameters are documented in the schema. No output schema exists, so that is not a gap. Adequate 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?
The input schema has 100% parameter description coverage, so the description does not need to add extra meaning. The description does not elaborate on parameters beyond the schema, but this is acceptable given full 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 action (create an application), the resources (existing candidate and job), and the workflow context (sourcing and manual ingestion). It distinguishes from sibling tools like hires_submit_career_application and hires_create_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 explicitly recommends usage for sourcing workflows and manual application ingestion, and states the prerequisite that the candidate must already exist. While it doesn't explicitly list when not to use, the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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?
Beyond annotations (which indicate non-read-only, non-destructive), the description adds a critical behavioral detail: the truncation issue with binary data due to serializer limits, and the instruction to extract text from chat context. This helps the agent avoid failed invocations. 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 (3 sentences) and front-loaded with the core purpose, followed by usage scenarios and a critical implementation warning. Every sentence adds value, and there is 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 complexity (13 parameters, nested objects, no output schema), the description covers the essential purpose, usage context, and a major implementation pitfall. It is missing a brief note about the return value (e.g., 'Returns the created candidate resource'), but this is a minor omission.
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% parameter description coverage, so the description's role in adding semantic value is limited. While it reinforces the resume_text parameter's usage and explains the 'why' behind the constraint, it does not elaborate on other parameters beyond the schema. 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 the tool's purpose: 'Create a new candidate profile.' It specifies optional actions (link to job/stage, attach resume) and distinguishes itself from sibling tools by mentioning typical use cases like imports and inbound forms.
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 the tool ('Used for imports, inbound forms, and enrichment workflows') and gives explicit guidance on handling resume text, including what not to do (avoid binary data). However, it does not explicitly exclude scenarios like updates, though that is implied by the tool name.
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 readOnlyHint=false, openWorldHint=true, destructiveHint=false. The description adds that it provisions a career-site URL and branding, offering some behavioral insight. However, given openWorldHint=true, more detail on potential side effects or required permissions would enhance 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 two concise sentences, front-loading the primary action and purpose. Every sentence is informative 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 has 8 parameters (3 required), a nested object, and no output schema, the description adequately covers the main purpose and typical usage. It could benefit from mentioning what the tool returns or post-creation effects, but overall 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 description coverage is 100%, so all parameters are already documented. The description does not add significant new meaning beyond what the schema provides, meeting the baseline expectation 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 identifies the action (Create), the resource (client company/partner tenant), and key provisions (career-site URL/slug, logo, name). It distinguishes from siblings by specifying the unique function of creating a company rather than other entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states it is a 'typical entrypoint for multi-tenant onboarding', providing clear context for when to use this tool. It does not explicitly list when not to use or alternatives, but the context is sufficient for an AI agent to infer appropriate usage.
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?
Aligns with annotations (write operation) and adds context about placeholder embedding workflow. Discloses that the body accepts HTML with placeholders; however, missing details on response format or error states.
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 action and key fields, second provides actionable steps. Front-loaded, 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?
Covers creation and placeholder embedding adequately. The optional company_id parameter is not referenced, and no output schema exists to explain the response, but the tool complexity is low.
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 value by explaining placeholder syntax and the embedding process, going beyond the schema's property 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 'Create a new email template' with specific fields (name, subject, body), distinguishing it from siblings like hires_update_email_template and hires_list_email_templates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit step-by-step instructions for embedding placeholders, referencing auxiliary endpoints (GET /template-placeholders, POST /template-placeholders/prepare). Does not explicitly disclaim when not to use or mention alternatives for simple templates, 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_formBInspect
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 not read-only and not destructive. The description adds minimal behavioral context (e.g., optional questions) but does not disclose permissions, limits, or side effects 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?
Single sentence that is clear and concise, stating the main action and the optional feature without any extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and simple parameters, the description combined with schema provides sufficient context. However, it could mention that 'company_id' is optional (as per schema) to enhance 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 covers all parameters with descriptions. The description adds value by noting 'optionally attaching existing questions by ID', which aligns with the 'questions' parameter, but does not mention 'company_id'. Baseline 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 'Create a new application form' with a specific verb and resource, and distinguishes from sibling tools like 'hires_create_question' by mentioning attachment of 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?
No guidance on when to use this tool versus alternatives like 'hires_update_form' or 'hires_create_question'. The description merely states what it does without any context for selection.
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 (readOnlyHint: false, destructiveHint: false) provide no behavioral insight. The description adds that location is 'resolved to an existing record or created automatically,' which is a useful trait, but it omits other side effects or return 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: two sentences with no filler. It front-loads the purpose and then lists key input requirements efficiently.
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 (creation with 6 parameters) and no output schema, the description would benefit from mentioning the return value (e.g., interview object). It adequately covers inputs but misses this important context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds minimal extra meaning (e.g., that timestamps are in seconds) but does not significantly enhance understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Schedule a new interview for an application.' It uses a specific verb and resource, distinguishing it from related siblings like hires_list_interviews (listing) and hires_get_interview (retrieval).
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 specifying required inputs (start/end times as Unix timestamps, interviewer IDs) but lacks explicit guidance on when to use vs. alternatives, prerequisites (e.g., application must exist), 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_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 already indicate readOnlyHint=false (write operation) and destructiveHint=false. The description adds that it creates a job with taxonomy, location, salary, and workflow configuration, which is helpful. However, it does not disclose the automatic creation of forms or workflows when not provided, a significant behavioral detail evident from the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two clear sentences, no wasted words. Efficiently conveys purpose, primary use, and required fields. Well-structured 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?
Despite high complexity (29 parameters, no output schema), the description fails to mention the return value or response structure. It also omits key behavioral details like auto-creation of forms/workflows. The description is incomplete for robust tool 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?
Schema coverage is 100%, so the schema already fully documents parameters. The description adds a concise summary of required fields, which is useful but does not add meaning 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?
Description specifies 'Create a job' with clear verb and resource, and adds context 'Primary endpoint for programmatic job publishing'. The name 'hires_create_job' and listed required fields make the purpose unambiguous and distinguish it from sibling tools like 'hires_update_job'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states it's the 'primary endpoint for programmatic job publishing', giving clear usage context. It lists the required fields. However, it does not explicitly state when alternatives (like 'hires_update_job') should be used 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_create_job_webhookAInspect
Register a webhook URL for job-related events. Core step for outbound integration setup. URL must be HTTPS.
| 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?
Annotations indicate write operation (not read-only) and not destructive; description adds URL constraint but doesn't disclose further behaviors like rate limits, idempotency, or event triggers.
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; purpose and key constraint 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 creation tool with 2 params and no output schema, the description adequately covers purpose, context, and constraint, though it could mention event types or test 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 descriptions already cover both parameters fully (100% coverage). Description repeats but doesn't add new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'register', the resource 'webhook URL for job-related events', and distinguishes from sibling hires_create_webhook by specifying job-related 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?
Provides context as 'core step for outbound integration setup' and a constraint 'URL must be HTTPS', but lacks explicit when-to-use vs alternatives or exclusions.
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?
The description discloses key behavioral traits beyond the annotations: it supports visibility control (all/private) and @mentions that trigger email notifications. It also explains a UI consequence of omitting the include parameter. Annotations only indicate non-read-only and non-destructive, so the description adds significant value.
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 with no wasted words. The first sentence states the purpose, the second adds features, and the third provides a crucial usage tip. Information is front-loaded and 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?
The description adequately explains the tool's purpose and key features, but lacks information on return values or expected confirmation. Since there is no output schema, the agent would benefit from knowing what the response contains. The tip about include=candidate partially compensates, but overall completeness is moderate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is already documented in the schema. The description adds specific context for the 'include' parameter (widget usage), but does not elaborate on other parameters beyond what the schema provides. This meets the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a discussion note for a candidate', using a specific verb and resource. It distinguishes from sibling tools by noting visibility control and @mentions, which are unique features not present in other create tools like hires_create_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 one critical usage guideline: 'Always pass include=candidate' when used in the widget for proper backoffice linking. However, it does not give broader guidance on when to use this tool versus alternatives, nor does it specify prerequisites or exclusions.
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 (readOnlyHint=false, destructiveHint=false) indicate mutation without destruction. The description adds valuable context: steps are executed sequentially, each step has a type with type-specific fields, and optional binding to a workflow stage. 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?
Two concise sentences that front-load the core purpose and key details without extraneous information. 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 complexity of the tool (11 parameters, detailed step schema) and no output schema, the description covers the essential aspects: step types, execution order, and optional workflow binding. It omits non-critical details like parameter behavior, but the comprehensive schema 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?
Schema coverage is 100%, so the schema fully documents all parameters. The description adds minimal extra meaning—only mentioning step sequentiality and types. 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 it creates a nurture campaign with steps, specifies the sequential execution, enumerates step types, and mentions optional workflow stage binding. This distinguishes it from sibling tools like get/delete/update nurture campaigns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives such as update or delete nurture campaigns. The description implies creation but provides no explicit context, prerequisites, or conditions for use.
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?
Annotations already indicate readOnlyHint=false and destructiveHint=false, so the safety profile is known. The description adds that questions are reusable and created for forms, but does not disclose return value, error conditions, or side effects 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 concise sentences with the main verb and resource upfront. No wasted words, and the information 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?
The description adequately covers the tool's purpose and usage context. It does not mention return values (no output schema), but given the simplicity and sibling tools for retrieval, this is acceptable. It is fairly complete for a creation tool with well-documented 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?
With 100% schema coverage, the schema already describes all four parameters. The description adds 'optional answer options for dropdown types' which maps to the 'options' parameter but is slightly less precise than the schema's 'select/multiselect'. The description adds marginal 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 'Create' and the resource 'a reusable question', and adds context about optional answer options for dropdown types and usage by forms/questionnaires. This distinguishes it from sibling tools like hires_create_form and hires_update_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 implies usage for forms and questionnaires but does not provide explicit when-to-use or when-not-to-use guidance, nor does it differentiate from alternatives like hires_create_form. 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_create_webhookAInspect
Create a company-scoped webhook subscription. Use for outbound company-level event integrations.
| 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 already indicate write operation (readOnlyHint=false) and non-destructive (destructiveHint=false). Description adds minimal extra behavioral info; no mention of side effects, rate limits, or auth requirements 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 concise sentences that are front-loaded with key purpose. No superfluous 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, description does not mention return value (e.g., webhook ID). Also lacks information on limits or management. 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 covers 100% of parameters with clear descriptions. The tool description does not add additional parameter 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?
Description clearly states 'Create a company-scoped webhook subscription' and specifies usage for outbound company-level integrations. It distinguishes from sibling hires_create_job_webhook by indicating 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?
Explicitly states the tool is for 'outbound company-level event integrations'. While it doesn't explicitly say when not to use or mention alternatives, the context of sibling tools provides differentiation.
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?
Annotations already mark destructiveHint=true. Description adds that deletion is permanent and affects all queries, which is helpful but does not disclose side effects like cascading or irreversibility. 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?
Two concise sentences, zero filler. Information is front-loaded and directly conveys the tool's action and 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?
Given simple tool with one required param, no output schema, and complete annotations, the description adequately covers purpose and effect. Minor gap: could mention permission requirements or irreversibility, 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?
Single parameter 'id' with description 'Application ID.' in schema (100% coverage). Description adds nothing beyond schema. Baseline 3 maintained.
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 verb (delete), resource (application), and effect (permanent removal from all list and view queries). Distinguishes from siblings like hires_reject_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?
No guidance on when to use vs alternatives (e.g., reject vs delete), prerequisites, or conditions. With many sibling tools, this omission increases cognitive load for the agent.
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 readOnlyHint: false. The description confirms 'permanently delete,' aligning with annotations but adding little new behavioral context beyond what is already declared.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise sentence with no unnecessary words. Could potentially add a note about irreversibility, but remains efficient for a simple operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 param, no output schema) and annotations covering destructiveness, the description is mostly complete. It covers the action and identification, though side effects (e.g., cascading deletions) are not mentioned.
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 'id' is fully described in the schema (100% coverage). The description echoes 'by ID or alias' but adds no new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (permanently delete), the resource (candidate), and identification method (by ID or alias). It distinguishes from siblings like hires_disqualify_candidate and hires_update_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 implies usage for permanent removal, but does not specify when to use versus alternatives (e.g., soft delete or disqualify). No explicit exclusions or guidance.
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?
Annotations already provide destructiveHint=true and readOnlyHint=false. The description adds behavioral context beyond annotations by specifying it's a soft-delete and that it takes the career site offline, which informs the agent of the non-permanent nature and immediate effect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the primary action and effect. Every sentence adds value: the first states the operation and its nature, the second provides usage context. No redundant or filler 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?
Given the simple parameter set (one required number ID), no output schema, and annotations covering destructiveness, the description is sufficient. It explains the effect and use case. It could mention reversibility (restore_company) but is 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?
The schema has 100% coverage for the single parameter 'id' with description 'Company ID'. The tool description does not add any additional semantics or constraints beyond what the schema provides, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Delete (soft-delete) a company'), the specific effect ('takes its public career site offline'), and the resource. It distinguishes from other delete tools in the sibling list by specifying the company resource and mentioning soft-delete, which contrasts with hard-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 provides a clear usage context ('Use for lifecycle control in partner tenancy management'), indicating when the tool is appropriate. However, it does not explicitly state when not to use it or mention alternatives like restore_company, which is a minor gap.
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?
Beyond the annotations (destructiveHint=true), the description reveals this is a soft-delete and explains the impact on existing automations. This adds valuable context not present in the annotations, though it doesn't discuss permissions or reversibility.
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 deliver the core action and a critical behavioral note without any filler. 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?
For a simple delete tool with one parameter and no output schema, the description covers the key behavioral aspect (soft-delete and automation impact). It does not mention return values or error states, but those are often implied for mutations. Overall, it is sufficiently complete 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?
The parameter schema provides a description for 'id' (Email template ID) with 100% coverage. The tool description does not add any further meaning or context about the parameter, 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 uses a specific verb 'soft-delete' and clearly identifies the resource 'email template'. It distinguishes from sibling delete tools (e.g., hires_delete_application) by naming the resource and adding the automation behavior, 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 does not explicitly state when to use this tool or compare it with alternatives. There is no guidance on when not to use it (e.g., if a hard delete is needed). The effect on automations is mentioned, but decision-making context is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_delete_formBDestructiveInspect
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?
The annotations already indicate destructiveHint=true, but the description adds no additional behavioral context (e.g., permanence, cascading effects, permissions). It simply states the action without elaboration.
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 wasted words. However, it may be too terse to fully inform the agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive operation with no output schema, the description lacks crucial context about consequences (e.g., permanent deletion, whether it affects linked entities). It feels incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'id' is fully described in the schema ('Form ID.'), and the description adds no extra meaning. Baseline score of 3 applies as schema coverage is 100%.
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', directly matching the tool name and distinguishing it from other delete tools like 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?
No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or restrictions. The agent is left to infer usage from the tool name alone.
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?
Annotations already indicate destructiveHint=true and readOnlyHint=false, so the description's statement 'Delete' is consistent. No additional behavioral details are provided (e.g., cascading effects, irreversibility, permissions required). The description adds minimal 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 short (two sentences, 14 words) and front-loaded with the action. Every part contributes value, though the second sentence is somewhat generic. It is appropriately concise for a simple 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 tool has a single parameter, no output schema, and destructive annotations, the description is reasonably complete. It states the core function and a use case. Could mention consequences like data removal, but annotations cover the destructive hint.
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 'id' is fully described in the schema (100% coverage) as 'Job ID (numeric) or alias'. The description does not add any information 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?
The description clearly specifies the action 'Delete a job' with the resource 'job'. The phrase 'to align archived/removed positions across integrated platforms' adds context but does not explicitly differentiate from other delete tools like hires_delete_application or hires_delete_candidate, though the name itself is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description suggests using the tool for alignment across integrated platforms when jobs are archived or removed, providing some usage context. However, it does not specify when not to use it, prerequisites, or alternatives (e.g., setting job status).
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, so description adds little behavioral detail beyond specifying the scope. 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 efficient sentences: first describes action, second lists use cases. 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?
Complete enough given destructiveHint and full schema coverage. Could mention irreversibility, but annotations imply 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 covers both parameters with descriptions. The tool description adds 'by ID' but does not enhance parameter 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?
The description clearly states the tool deletes a job webhook subscription by ID, using specific verb and resource. It distinguishes from siblings like hires_create_job_webhook and 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?
Provides explicit use cases: cleanup, rotation, endpoint migration. Lacks explicit when-not-to-use 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_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?
Adds context beyond annotations: states the message is scheduled and cancellation occurs before processing. This clarifies the tool's scope and conditions, which is helpful given annotations indicate 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?
Single sentence, front-loaded with the core action, no extraneous 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?
Given the simplicity (one param, no output schema, clear annotations), the description adequately covers the purpose and condition. Missing information about return value or success confirmation 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% with one parameter 'id' described as 'Message ID.' The description does not add extra meaning to the parameter, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool cancels a scheduled message before processing, with a specific verb and resource. It distinguishes from siblings like hires_delete_notification_message by focusing on scheduled messages, but does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage: use when wanting to cancel an unsent scheduled message. No explicit when-not-to-use or alternatives mentioned, but context makes it clear.
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. The description adds no behavioral details beyond 'Delete a note', such as irreversibility, permission requirements, or side effects, providing minimal additional value.
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 exceptionally concise with two sentences, front-loading the purpose. No extraneous information is present.
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 parameter and no output schema, the description provides sufficient purpose and context, making it complete for its 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?
The schema has 100% coverage with a description for the 'id' parameter ('Note ID'). The description adds no extra meaning beyond the schema, 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 'Delete a note' which identifies the action and resource. However, it lacks differentiation from sibling delete tools; the resource uniqueness is only implied by the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage context ('moderation policies and data cleanup operations') but does not explicitly state when to use this tool over alternatives (e.g., other delete tools) 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_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 indicate destructiveHint=true. Description adds that only scheduled (not sent) messages can be canceled, 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, no wasted words. Purpose and constraint are front-loaded 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?
Given the tool's simplicity (one required param, no output schema), the description covers the essential constraint (scheduled vs sent) sufficiently.
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 'id' is described in the schema. The description does not add extra meaning or usage guidance, 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?
Description clearly states the tool cancels a scheduled notification email before it is sent, distinguishing it from already sent messages. This is specific and differentiates from sibling tools like hires_delete_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?
Explicitly states when to use (before message is sent) and implies not to use for sent messages. However, it does not explicitly mention alternatives or provide a comprehensive when-not-to-use guide.
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?
Annotations indicate destructiveHint=true, but the description adds value by stating it's a soft-delete and that active campaign executions will be stopped. This provides context beyond the destructive hint, improving transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, each providing essential information. The most critical detail (delete a nurture campaign) is first, followed by the behavioral side effect. 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 tool's simplicity (one parameter, no output schema), the description covers the main action and an important side effect. It does not mention reversibility or how to undo, but for a soft-delete tool, the information is largely sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter 'id', with the schema already describing it as 'Nurture campaign ID'. The description does not add extra meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the action (delete), the resource (nurture campaign), and clarifies it's a soft-delete. It distinguishes from other delete tools by naming the specific resource, and the sibling list includes various delete operations, making this clear.
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 a nurture campaign needs to be deleted, but it does not provide explicit guidance on when to use this tool versus alternatives like updating or disabling the campaign. No exclusion criteria or alternative tool mention.
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 indicate destructiveHint=true, so the behavior is clear. The description adds 'Use cautiously' which reinforces caution but does not elaborate on consequences, cascading effects, or reversibility.
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 serving a distinct purpose: function statement and usage advisory. No redundant or irrelevant 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 one parameter and no output schema, the description covers purpose and usage context adequately. However, it could briefly mention what happens upon deletion (e.g., removal from all forms) 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?
With schema description coverage at 100% for the single 'id' parameter (described as 'Question ID'), the description adds no additional meaning. 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) and the resource (reusable question from catalog). It distinguishes from other question tools (create, get, update, list) by specifying 'catalog', but it does not explicitly differentiate from other delete tools in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Use cautiously when deprecating question banks' provides a specific use case and implies caution. However, it does not give explicit when-not-to-use guidance or name alternative tools for partial removal.
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 mark destructiveHint=true. The description adds context about the purpose of deletion (retirement, rotation), reinforcing the irreversible 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 concise sentences, front-loaded with the action and purpose. 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 deletion tool with only two required IDs and destructive annotation, the description adequately covers purpose and usage. No output schema needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The description adds minimal extra meaning beyond 'by ID', 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 (delete), resource (webhook subscription), and scope (company-scoped). It distinguishes from sibling tools like hires_delete_job_webhook and hires_list_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?
Explicitly mentions use cases: endpoint retirement and security rotation. Provides clear context for when to use, though no explicit 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_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, readOnlyHint=false, and openWorldHint=true. The description adds that it disqualifies and returns application IDs, but does not elaborate on reversibility, side effects, or required permissions. The bar is lower due to annotations, and the description provides minimal additional 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, front-loaded with the main action, and no redundant information. Every word serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (2 parameters, no output schema, no nested objects), the description adequately explains the function, the scope ('all active applications'), and the return value. No additional context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents both parameters. The description mentions 'Optionally provide rejection reason IDs,' which aligns with the reasons parameter 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 'Disqualify a candidate from all active applications,' identifying the specific verb (disqualify), resource (candidate), and scope (all active applications). This distinguishes it from sibling tools like 'reject_application' (which acts on a single application) and 'delete_candidate' (which removes the candidate entirely).
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 broad disqualification across all applications but does not explicitly state when to use it versus alternatives (e.g., 'reject_application' for per-application rejection). No when-not-to-use or prerequisites are provided.
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?
Adds critical behavioral details beyond annotations: files over 25 MB are rejected upfront, response is base64-encoded, and host verification prevents token leakage. Annotations only state readOnlyHint and destructiveHint, but the description provides operational safeguards.
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. Front-loaded with purpose, then key usage details. 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, the description explains the return object structure ({file_name, mime_type, size, data}) and the 25 MB limit. Completely specifies behavior for a single-parameter 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?
Enhances the single parameter 'url' with concrete examples (e.g., 'https://api.100hires.com/v2/attachments/mail_attachment/<uuid>/<file_name>') and states the requirement that it must be absolute and from the API host. With 100% schema coverage, this adds significant practical 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 starts with a clear verb+resource ('Download an attachment') and lists the specific attachment types (resume, candidate file, etc.). It distinguishes itself from sibling tools (e.g., upload, list) by being the sole download 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 to pass an absolute URL from another endpoint and warns that the URL must belong to the configured API host to avoid token leakage. It does not explicitly state when not to use the tool, but the context of downloading vs. other operations 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?
The description adds value beyond annotations by noting that null is returned if the application has not been AI-scored. This is consistent with the readOnlyHint and destructiveHint 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. Every sentence provides unique information: what is returned and a special case (null return). 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?
Despite no output schema, the description sufficiently describes the return value (structured AI score with details) and the null case. It covers the key behavioral aspects for a read-only tool with one parameter. Missing error handling or authentication notes, but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (the single required parameter 'id' has a description). The description does not add further meaning beyond what is in the schema, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the structured AI score for an application, including per-criterion scores, justifications, and follow-up questions. It distinguishes itself from sibling tools like hires_get_application or hires_get_evaluation by specifically addressing AI scoring.
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. It does not mention prerequisites, scenarios where a different tool might be more appropriate, or any conditions (e.g., 'use only after AI scoring has been initiated').
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 already declare readOnlyHint and destructiveHint, so the description adds value by specifying returned fields (stage, status, rejection context). 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 well-structured sentences, no redundancy, front-loads 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?
Comprehensive for a simple two-parameter tool with no output schema; clarifies return fields and provides usage recommendation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description does not add parameter details, 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 states it gets full application details including stage, status, and rejection context. It clearly distinguishes from sibling get tools for other entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly recommends using before mutating stage transitions, providing clear usage context. No explicit guidance on when not to use, but is appropriate for a simple read tool.
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 indicate readOnlyHint and destructiveHint false. Description adds meaningful behavioral context: it's a pre-check for paid APIs, which is 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 concise sentences with no wasted words. Front-loads purpose and usage effectively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the tool's simple purpose (returning flags) is fully explained. No missing details 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?
No parameters exist, so schema coverage is 100%. Description adds no parameter info, which is acceptable. Baseline is 4 for zero-param tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'billing/pricing capability flags' for the current company, distinguishing it from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises to use this tool before invoking paid-only API behaviors, providing clear context for when to use it. It does not mention when not to use it, but the guidance is strong.
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 provide readOnlyHint=true and destructiveHint=false. The description adds that it returns 'full candidate data including application summaries', which is useful context. No additional behavioral traits (e.g., rate limits, auth) 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 a single 11-word sentence with no wasted words. It is front-loaded with the action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get operation with one parameter and no output schema, the description completely covers the tool's purpose and input. No additional details are necessary.
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 'by candidate ID or alias', which clarifies the parameter flexibility. However, it mostly restates 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 verb 'Get', the resource 'full candidate data including application summaries', and the method 'by candidate ID or alias'. It distinguishes from sibling read tools like hires_get_application and hires_get_candidate_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 implies usage when needing full candidate data by ID/alias, but does not explicitly state when to use or avoid this tool, nor does it name alternatives. Among many sibling 'get' tools, clearer guidance would help.
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?
Annotations already indicate readOnlyHint=true and destructiveHint=false, establishing safety. The description adds value by specifying returned fields (uuid, download URL with Bearer auth note, relative_time, file metadata, type) and explaining how to obtain parsed text content. 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 wasted words. The purpose is front-loaded, and every sentence provides essential 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?
No output schema exists, but the description lists returned fields and the optional text_content addition. For a simple retrieval tool, this is sufficient. Could mention pagination or error cases, but not required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description's contribution is limited. However, it explains the include parameter in practical terms ('use include=''text_content'' to also get the parsed plain-text content'), adding meaning beyond the schema's generic 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 states 'Get the primary resume for a candidate,' which is a specific verb+resource. It clearly distinguishes from sibling tools such as hires_list_candidate_files (list files) or hires_download_attachment (download 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?
The description mentions the include parameter for optional text content, but does not explicitly state when to use this tool versus alternatives or provide exclusions. However, the context is clear enough for typical usage.
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 already declare readOnlyHint=true and destructiveHint=false. The description adds behavioral context: it returns salary, education, experience fields, and returns 404 for non-public jobs. This supplements the annotation well without 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; first sentence states primary function, second adds details and error condition. No wasted 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?
No output schema exists, but the description lists key returned fields (salary, education, experience) and mentions the 404 error case. For a simple get-by-ID tool, this 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 description coverage is 100% (both param descriptions present). The description does not add further meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', the resource 'public job', and scope 'by ID'. It distinguishes from siblings like hires_get_job (internal) and hires_list_career_jobs (list) by specifying 'full details of a single public job' and noting the 404 for non-public 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 retrieving full details of a public job. It explicitly states when the tool returns 404 (for draft, archived, or internal jobs), providing a when-not condition. However, it does not explicitly name alternative tools for those cases, though siblings suggest hires_get_job for internal jobs.
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. Description adds that it returns 'profile and owner metadata', which provides some behavioral context beyond annotations but not significantly more.
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-sentence description, front-loaded with main action. No wasted 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, description hints at return content ('profile and owner metadata') but could be more specific about fields. Still adequate for a simple get operation with a single parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter 'id', which is described as 'Company ID'. Description does not add additional meaning beyond the schema, so 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 'Get company profile and owner metadata' with a specific verb and resource. It distinguishes from sibling tools like hires_create_company, hires_update_company, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use before updates or ownership-sensitive actions', providing clear guidance on when to use this tool. Does not contrast with alternatives like list_companies, 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_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 indicate readOnlyHint=true and destructiveHint=false, so the description adds context about return content (subject and body) but does not disclose authentication needs, rate limits, or error scenarios. With annotations covering safety, a score of 3 is appropriate.
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 front-loads the purpose and key elements. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get operation with one parameter and no output schema, the description sufficiently informs the agent of what the tool does and what it returns. It could mention the object structure, but the current level 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?
The only parameter 'id' is fully described in the schema ('Email template ID') with 100% coverage. The tool description adds no extra semantics, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get'), identifies the resource ('email template'), specifies the identifier ('by ID'), and lists key return fields ('subject and body content'). It clearly distinguishes from sibling tools like 'hires_list_email_templates' (list) and CRUD 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?
While no explicit 'when to use' or alternatives are stated, the context from the name, description, and sibling list makes usage clear: use this to retrieve full details of a specific template by ID. A brief note about not using it for listing would improve the score.
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 readOnly and non-destructive. Description adds return content details but no additional behavioral traits like permissions or limitations. Adequate but 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?
Two sentences, front-loaded with main action. Efficient, though first two sentences could be merged slightly. Nearly 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?
Given single parameter, no output schema, and clear annotations, the description fully covers what the tool does, what it returns, and its use case.
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 'Evaluation form ID'. Description does not add further meaning beyond 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?
Clearly states it gets a filled evaluation form with all answers, listing return fields. Distinguishes from siblings like 'hires_list_application_evaluations' and 'hires_submit_feedback'.
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 detailed review of evaluator feedback on a candidate application,' providing clear context. Does not explicitly mention when not to use or alternatives, but sibling names offer implicit guidance.
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 indicate readOnlyHint=true and destructiveHint=false, making safety clear. The description adds that it returns questions with statuses, but does not elaborate on response size, pagination, or any other 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 a single, efficient sentence that conveys the core functionality without 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 tool's simplicity (one parameter, no output schema), the description adequately covers what the tool does. It could be improved by explicitly stating that the returned form includes nested questions, but it is generally 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?
The only parameter (id) is described as 'Form ID' in the schema, and the description does not add further meaning. With 100% schema coverage, the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves form details including all questions with their statuses, which is specific and distinguishes it from sibling tools like list_forms that only list form summaries.
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 a single form's details, but it does not explicitly state when to use this tool versus alternatives like get_question or list_forms, or mention any prerequisites.
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 'get full details' aligns. It adds context about the include parameter behavior but does not disclose 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?
Two concise sentences: first states purpose, second provides usage guidance on include. No wasted words, 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 simple read tool with two parameters and no output schema, the description is sufficient. It explains what the tool returns ('full details') and how to embed related data. Could mention that it returns all interview fields, but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for both id and include. The description adds value by explaining that include can embed candidate, application, or job data, which clarifies the purpose beyond the schema's 'comma-separated related resources to embed'.
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 full details of a specific interview by ID', specifying exactly what the tool does (get) and the resource (interview). It distinguishes from sibling tools like hires_list_interviews (listing) and other get_* tools for different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance on using the include parameter to embed related data. However, it does not explicitly specify when to use this tool versus alternatives (e.g., hires_list_candidate_interviews or hires_get_application). The implied use is when you have a specific interview ID.
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 declare readOnlyHint=true and destructiveHint=false. Description adds that it gets 'full details' and can include related data, but doesn't add significant 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 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?
Complete for a read tool with good annotations and full schema coverage. Could mention that return includes all job fields, but not necessary given 'full details'.
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 and includes descriptions. Description adds value by explaining what the 'include' parameter does with specific examples (workflow, hiring_team, pipeline_stages).
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 retrieves full job details by ID or alias, with specific verb 'Get' and resource 'job'. It distinguishes from siblings like hires_list_jobs (list) and hires_update_job (update).
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 guidance on using the 'include' parameter to embed related resources. Does not explicitly state when to use this tool vs 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_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 declare readOnlyHint=true, so the description's behavioral disclosure is minimal. It adds context about return fields (sender, timestamps, cancelability) but doesn't go beyond what annotations already convey about 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?
Two sentences with no wasted words. The first sentence immediately states the core purpose, and the second adds key return details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so description should ideally clarify return structure. It lists some fields (sender, timestamps, cancelability) but not a complete picture. Adequate for a simple read tool but could be more detailed.
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 schema already describes the 'id' parameter as 'Message ID.' The description does not add additional meaning or constraints 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 gets a scheduled message by ID, using specific verbs and resources. It distinguishes from sibling tools like hires_list_messages (list) and hires_get_notification_message (different message type).
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 a specific message ID is known and full details are needed, but lacks explicit guidance on when not to use or alternatives (e.g., list_messages, get_notification_message).
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?
Description aligns with readOnlyHint and destructiveHint, adding specifics about returned metadata. 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 core action, efficient and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description mentions return contents (author and visibility metadata). Adequate for a simple get 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 baseline is 3. Description adds minor value by emphasizing include=user, but doesn't go beyond schema details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'Get', resource 'a single note', and what it returns ('author and visibility metadata'). Distinguishes from sibling tools like hires_list_notes and hires_get_*.
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 using include=user to load author details. Could improve by specifying when to prefer this over listing notes, 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_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, so the description does not need to reiterate safety. It adds value by listing the specific return fields (subject, body, sender, recipient, schedule metadata), which is helpful. No contradictory or missing behavioral information is present.
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 with two sentences. The first sentence states the primary function and returned fields, the second provides a usage hint. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get operation with one parameter and no output schema, the description covers purpose, parameter identification, and a hint for obtaining the ID. It does not discuss error cases or authentication, but these are minor omissions for such a straightforward tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage for the single required parameter 'id' with description 'Notification email message ID.' The description repeats this information without adding further detail, 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 gets a notification email message by ID, specifies it is for emails like rejection emails, and lists the returned fields (subject, body, sender, recipient, schedule metadata). This distinguishes it from sibling tools like hires_get_message, which likely retrieves different message 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 provides a hint to use the candidate messages list to discover notification message IDs, but does not explicitly state when to use this tool versus alternatives like hires_get_message or hires_list_messages. The guidance is 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_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 indicate readOnlyHint=true and destructiveHint=false, so the description adds value by specifying the return includes 'all steps and configuration details'. However, no further behavioral traits are disclosed (e.g., error conditions, performance).
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 the action and scope, no unnecessary words. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given low complexity (one parameter, no output schema) and annotations covering safety, the description provides sufficient context for using the tool. Mentioning return content adds 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 one 'id' parameter described. The description does not add meaning beyond the schema, 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 the tool retrieves a single nurture campaign by ID, including all steps and configuration details. This distinguishes it from sibling tools like hires_list_nurture_campaigns (list) and hires_update_nurture_campaign (modify).
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 needing a specific campaign's details, but does not explicitly state when to use this over alternatives or any exclusions. With many related tools, 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_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 provide readOnlyHint=true and destructiveHint=false. The description adds that it returns 'type and options', which is useful but does not go beyond what annotations implicitly suggest. No additional behavioral traits (e.g., auth, error handling) 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 a single clear sentence with no superfluous words. It is front-loaded with the essential 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 simplicity of the tool (one required param, no output schema), the description adequately covers what it returns. However, it could mention potential error conditions (e.g., invalid ID) or the fact that it returns a single question definition.
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 sole parameter 'id' is described in the schema as 'Question ID'. The tool description does not add extra meaning or context. Since schema coverage is 100%, the 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 clearly states 'Get a question definition including type and options by ID.' It specifies the verb (get), the resource (question definition), and the scope (type and options). This distinguishes it from siblings like create, update, delete, and list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For instance, it does not differentiate from hires_list_questions, which likely returns a list of questions. There is no mention of prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 set readOnlyHint and destructiveHint, so the description adds value by specifying tenant scope and the default_mail_account_id field usage. 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?
Three sentences, each serving a purpose: purpose, usage, and field hint. No redundant information, 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 single-user retrieval tool with no output schema, the description covers purpose, scope, and a practical field hint. Could be slightly more explicit about return value, 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?
Schema coverage is 100% for the single 'id' parameter, meeting the baseline. The description does not add semantic nuance beyond the schema for the parameter itself.
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 'Get a single user by ID within current tenant scope', providing a specific verb and resource. Distinguishes from sibling list tools by emphasizing single user retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Indicates use for 'identity resolution in automation flows' and provides a field usage hint. Does not explicitly mention alternatives or when not to use, 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_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 description's 'Get stages' is consistent. The description adds no behavioral details beyond the annotations and the equivalence note. With annotations covering safety, the description meets the baseline but adds little 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?
The description is a single sentence followed by a brief equivalence note. No unnecessary words, highly 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?
Given the tool's simplicity and the presence of annotations and full schema coverage, the description provides sufficient context for a read operation. However, the absence of output schema or any mention of the return format (e.g., list of stage objects) is a minor gap, preventing 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 input schema covers 100% of parameters, each with clear descriptions. The description merely restates that the workflow ID is used, adding no semantic value beyond the schema. A score of 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves stages for a specific workflow by ID, using a specific verb and resource. It also distinguishes itself from the sibling tool by noting equivalence with a filter, 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 indicates this tool is equivalent to `hires_list_workflow_stages` with a workflow_id filter, which provides usage context. However, it does not explicitly state when to prefer this over the list tool or mention any prerequisites or exclusions, leaving some guidance implicit.
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 indicate readOnlyHint=false and destructiveHint=true, so the tool is known to be a destructive write operation. The description adds that the status changes to 'hired' and hired_at is set, but does not elaborate on irreversibility, side effects, or prerequisites like specific permissions. It adds some context but is not deeply 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?
The description is three short sentences that front-load the action ('Mark an application as hired') and immediately convey the purpose and effect. Every sentence adds value 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?
Given the tool's simplicity (a status change mutation) and the presence of annotations indicating destructiveness, the description adequately explains what happens. However, it could mention if the operation triggers automated workflows or if it is reversible, but for a finalization step, the completeness 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%, so the parameters (id and include) are fully described in the schema. The description does not add any additional meaning or usage nuances beyond what the schema already provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Mark an application as hired' and the resource (application). It positions the tool as the finalization step in a hiring workflow, distinguishing it from sibling tools like hires_advance_application and hires_reject_application. The title 'Hire candidate' further reinforces the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states 'This is the finalization step in a hiring workflow,' implying it should be used after other progression steps. However, it does not explicitly state when not to use it or mention alternatives such as reject or advance. 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_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 provide readOnlyHint=true and destructiveHint=false, so safety is clear. The description adds context about the return content (file metadata and download URLs) and the scope ('all attachments'), which adds 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 a single, front-loaded sentence that efficiently conveys the tool's purpose and return 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?
Given the tool's simplicity (one parameter, no output schema), the description is complete: it specifies the action, the resource, and what is returned (metadata and download URLs). No output schema is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the 'id' parameter described as 'Application ID'. The description does not add 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 verb 'List' and the resource 'all file attachments linked to an application', with examples like resumes, cover letters, and documents, distinguishing it from sibling tools like 'hires_download_attachment' 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 for listing attachments but does not provide explicit guidance on when to use this tool versus siblings like 'hires_get_application' or 'hires_download_attachment'. No 'when-not-to-use' 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_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 (readOnlyHint=true) already indicate safe read-only operation. Description adds value by detailing what each evaluation includes (evaluator, summary score range from strong-yes to strong-no, and summary text), providing 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 purpose, no unnecessary words. Highly 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?
No output schema, but description adequately explains what each evaluation contains. For a list tool, this is sufficient; however, could mention if pagination or ordering is supported.
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 both parameters described. The description does not add any parameter semantics beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'List' and the resource 'filled evaluation forms for an application'. Specifies the output fields: evaluator, summary score, and summary text. Differentiates from sibling 'hires_get_evaluation' via the input schema's view parameter hint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Does not explicitly state when to use this tool vs alternatives. However, the input schema's view parameter description guides when to use 'full' versus calling 'hires_get_evaluation', providing indirect usage guidance.
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 indicate readOnlyHint true and destructiveHint false; the description adds behavioral context beyond annotations: embedding stage directly, response too large error handling, and truncation of fractional seconds. 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 well-structured: it starts with the core function, lists filters, provides critical performance warnings, and ends with specific pipeline rendering advice. Every sentence earns its place 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 no required parameters, the description covers behavior, error cases, and usage patterns comprehensively. It explains the embedding of stage data and provides actionable guidance for common use cases, making it 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?
Schema coverage is 100%, but the description adds meaningful context beyond schema descriptions, such as recommended usage for 'include' parameter, warning about large payloads, and accepted formats for timestamp parameters. This extra guidance elevates the score above 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 lists applications across all accessible jobs, specifies filtering capabilities (candidate, job, stage, status, AI score, date ranges), and distinguishes it for pipeline analytics, sync jobs, and ATS dashboards. It directly addresses sibling differentiation by noting when not to call hires_get_job.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (pipeline analytics, sync jobs, ATS dashboards) and when to avoid (large pages with include=candidate or cv.text). Provides error handling guidance (isError:true with retry hints) and suggests not calling hires_get_job for pipeline views.
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 declare readOnlyHint=true and destructiveHint=false. The description adds rich behavioral context: lists all fields returned including moved_at (Unix seconds), moved_by_type, source, and mentions inclusion of initial assignment. 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 concise and well-structured: front-loaded purpose, then field details, then use cases. 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 no output schema, the description thoroughly describes the returned fields and their semantics. It clearly states when to use this tool versus alternatives, 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?
Schema coverage is 100% with parameter 'id' described as 'Application ID.' The description does not add new meaning about the parameter itself; it only contextualizes the output, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it gets 'the full chronological stage transition history for an application' with specific fields, and distinguishes from sibling tools like 'hires_list_candidate_activities' by noting it's an alternative when only stage data is needed.
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: 'funnel analysis, attribution reports, and time-in-stage reports' and provides an alternative: 'instead of paginating through /candidates/{id}/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 declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is clear. The description adds that it lists 'boards with metadata', which is consistent and adds minimal context. No contradictory information, but no disclosure of potential limits or pagination behavior either.
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, directly stating the main action and usage context. No unnecessary words, and the key information is front-loaded. It is well-structured for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no parameters, the description is sufficient to convey purpose and usage. However, it lacks detail about the output (e.g., fields in metadata) and does not address the relationship to similar sibling tools. With no output schema, more context would be beneficial, 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?
There are no parameters in the input schema, and schema description coverage is 100%. The description does not need to explain parameters. It could clarify what 'metadata' includes, but for a parameterless tool, the baseline of 4 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 'List available publishing boards with metadata', which clearly identifies the verb and resource. However, there is a sibling tool 'hires_list_job_boards' with a very similar name and likely similar purpose, and the description does not differentiate between them, which lowers the score from 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description suggests 'Use for distribution setup and board selection', providing some context. However, it does not explicitly state when to use this tool versus alternatives like 'hires_list_job_boards', nor does it mention when not to use it. This is adequate but not fully clarified.
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?
Annotations declare readOnlyHint=true and destructiveHint=false, which align with a read-only listing. The description additionally discloses the 'response_too_large' error condition with retry hints, and explains the 'view' parameter's effect on payload size. 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 is a single paragraph that efficiently covers purpose, filtering, size recommendation, and error handling. It is front-loaded with the main action. Minor improvement could be achieved with bullet points, but no wasted sentences.
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 7 parameters, no output schema, and moderate complexity, the description covers key behaviors: pagination, error conditions, view modes, and timestamp formats. Missing explicit details about the return structure (e.g., list of activities with fields), but the view parameter description hints at the shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (all 7 parameters have descriptions), but the tool description adds significant value: explains the 'view' parameter's summary vs full behavior, the size limit (rejected above 100), timestamp formats, and lists supported event_types. This goes well beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and the resource 'timeline activities for a candidate', with examples of activity types. It distinguishes itself from sibling list tools like hires_list_candidate_tags or hires_list_candidate_messages by specifying the timeline nature.
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 practical guidance: recommends page size <=10 to avoid large payload errors and explains error behavior. It does not explicitly compare to alternative candidates list tools, but the specificity of 'timeline activities' implicitly differentiates.
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?
Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds valuable behavioral details such as Bearer auth for download URLs and the risk of exceeding budget with text_content, which 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 a single focused paragraph with no superfluous sentences. It is front-loaded with the main action and provides key details efficiently.
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 describes the response structure (uuid, download URL, metadata, type) and warns about a potential issue. Missing details like pagination are acceptable 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?
Schema covers the single parameter 'id' with description; the description does not add further parameter-specific meaning beyond the schema. Baseline 3 is appropriate as schema coverage is 100%.
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 all files attached to a candidate, including resume and other documents. It distinguishes from sibling tools like 'hires_list_application_attachments' and 'hires_upload_candidate_file' by specifying the scope (candidate files) and listing returned 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?
Provides guidance to avoid using 'include=text_content' on candidates with many files to prevent exceeding response budget. While it doesn't explicitly state when to prefer this over alternatives, the context is clear from the description and 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_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 indicate readOnlyHint=true and destructiveHint=false, so the core behavioral traits are covered. The description adds that it lists across all applications, providing additional context beyond annotations, but does not go into deep 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?
The description consists of two sentences, front-loading the purpose and use case without any fluff. Every part 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 tool's simplicity, annotations, and schema richness, the description covers the essential purpose and usage context. It does not explain pagination or return format, but that is implied by the page/size parameters and the listing 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?
Schema coverage is 100% with good descriptions for all three parameters (id, page, size). The tool description does not add new meaning beyond what the schema already provides, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list', the resource 'interviews for a candidate', and the scope 'across all applications'. It distinguishes from sibling tools like 'hires_list_interviews' by specifying candidate-specific filtering.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage context: 'Useful for timeline views and scheduling conflict detection.' While it doesn't explicitly state when not to use it or mention alternatives, 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_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?
Beyond the readOnlyHint annotations, the description warns about response size limits (recommended size <= 10) and the specific error when exceeding budget, which is 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?
Two concise sentences front-load purpose and provide a critical behavioral hint, 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 full schema coverage for parameters and annotations indicating safety, the description covers the main purpose, a key parameter, and a crucial size/error behavior. It 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%, so baseline is 3. The description adds minimal extra meaning by reiterating the is_scheduled parameter and adding a size recommendation, but does not significantly enhance 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 lists email and messaging history for a candidate, with a specific verb and resource. It distinguishes from the sibling 'hires_list_messages' by specifying candidate scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a parameter usage hint ('Use is_scheduled=1') but does not explicitly differentiate from alternatives like 'hires_list_messages' or 'hires_get_message', nor does it mention prerequisites.
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 indicate readOnly and non-destructive. The description adds behavioral context: large payload issue, response size limit, error codes, retry hints, and impact of 'view' parameter on 'profile' array. 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 one well-structured paragraph: first sentence states purpose, second mentions pagination, third provides performance and error handling guidance. 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 list tool with 13 parameters, no output schema, this description covers pagination, filters, performance, error handling, and alternatives. It is sufficiently complete for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all 13 parameters with descriptions. The description adds value by noting recommended size <=10, use cases for 'view' and 'include', and guidelines for date parameters. These go beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and resource 'candidates' with optional filters, distinguishing from siblings like hires_get_candidate. It mentions pagination and specific filter capabilities.
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 when to use this tool vs alternatives: recommends size <=10 to avoid large payloads, suggests hire_get_candidate for single full records, and advises on 'view' parameter to control response shape. Could be more explicit about distinguishing from other list tools but still 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_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?
Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds minimal behavioral context beyond the verb 'list', lacking details on pagination or response 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?
Two concise sentences, front-loaded with the action and purpose, with 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?
For a simple read-only tool with one parameter and no output schema, the description is nearly complete, though it could hint at the return format for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the description adds no additional parameter meaning beyond the schema's definition. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and the resource 'tags assigned to a candidate', distinguishing it from sibling tools like hires_add_candidate_tags and 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?
The description mentions usefulness for 'segmentation and audience-based automations', but does not explicitly contrast with alternatives like hires_list_tags for system-wide tags 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_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 already declare readOnlyHint=true and destructiveHint=false. Description adds context about public visibility and filtering, which is useful 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 with no wasted words, front-loaded with purpose and key features.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequately describes purpose, filters, and use case. Lacks explicit mention of pagination, but page and size parameters are described in 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 parameter descriptions. Description summarizes filter options but does not add new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states listing publicly visible jobs for a company career site, distinguishing from internal job listings and single job retrieval 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 recommends use for powering a custom careers page, implying public-facing contexts, but does not mention when not to use or alternatives.
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 does not add behavioral details beyond listing categories, so it provides minimal additional transparency 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 at two sentences and 12 words, front-loading the action first. Every sentence earns its place 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 list tool with no parameters and no output schema, the description is adequate. It explains what is listed and why, but could improve by hinting at the return format (e.g., that it returns objects with id and name).
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 no parameters (100% coverage), so the baseline is 4. The description adds value by explaining the purpose and context of the categories (global, for classification), though it does not detail the structure of returned categories.
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 global job categories' with a specific verb and resource. It distinguishes itself from sibling tools as the only category-listing tool, and adds context for usage in job classification and taxonomy mapping.
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 usage context: 'Use for job classification and consistent taxonomy mapping.' However, it does not explicitly state when not to use this tool or compare it to alternative list tools, though the uniqueness of the resource reduces ambiguity.
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 already declare readOnlyHint=true and destructiveHint=false. The description adds the behavioral detail that it is paginated and only returns partner-accessible companies, which is 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?
Two concise, front-loaded sentences with no filler. 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 read-only list tool with complete annotations and schema, the description covers purpose, usage context, and pagination. No output schema is needed as the return type is standard for list 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 coverage is 100% with descriptions for both page and size parameters. The description mentions pagination but adds no new meaning beyond what the schema already provides, so baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('partner-accessible companies'), clearly distinguishing it from other list-type tools among siblings. It also highlights pagination, 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 states the tool is for 'tenant discovery and management panels,' providing clear usage context. While it doesn't list alternatives or exclusions, it is the only list_companies tool among siblings, so the guidance is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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, so the description adds little beyond stating the scope. No mention of pagination or other 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?
Two sentences, no wasted words, front-loaded with the primary 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?
Given no output schema, the description should explain the return format. It omits what the list contains (e.g., mail account objects), leaving the agent to infer.
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 does not add meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all mail accounts for all users in a specific company. However, it does not differentiate from the similar sibling 'hires_list_company_mail_accounts', which could cause 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 a prerequisite condition (company must be accessible) but no guidance on when to use this tool versus alternatives like 'hires_list_user_mail_accounts'.
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 set readOnlyHint=true and destructiveHint=false, indicating safe read operation. The description adds minimal extra behavioral context beyond usage hint. It does not disclose pagination behavior or any side effects, but given annotations, a score of 3 is appropriate.
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: first states the purpose, second gives a usage tip. No unnecessary words, front-loaded, and 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 list tool with no output schema and only pagination parameters, the description sufficiently covers what the agent needs to know. It could mention return fields, 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% with descriptions for page and size parameters. The description does not add any additional meaning or constraints beyond what the schema provides, so baseline of 3 is justified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all mail accounts for all users in the current company, using specific verb 'list' and resource 'mail accounts'. It distinguishes from sibling tools like hires_list_user_mail_accounts (user-specific) and hires_list_company_id_mail_accounts (by company ID) by specifying scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent to use this tool to resolve `from_account_id` before creating scheduled emails, providing a concrete use case. It does not mention when not to use it or compare with alternatives, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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, indicating a safe read operation. The description adds minimal behavioral context beyond these annotations, only restating the listing action and use 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 two short sentences, front-loaded with the primary action and purpose. 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 tool's simplicity (list departments, one optional parameter, no output schema) and good annotations, the description is complete. It explains the purpose and practical use 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?
The input schema has 100% coverage with a description for the only parameter ('company_id'). The tool description does not add any additional 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 departments') and the resource ('for the company'). It also specifies use cases ('job organization filters and reporting dimensions'), distinguishing it from other list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description suggests usage contexts ('Use for job organization filters and reporting dimensions') but does not explicitly mention when not to use or cite alternatives. However, given the sibling tools, 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_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, so the description adds minimal behavioral context. However, it confirms the tool is for listing and mentions 'taxonomy values', implying a controlled vocabulary.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the action and resource, followed by a usage hint. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, parameterless, read-only list tool with good annotations, the description provides all necessary context: what it does and why it's useful.
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 zero parameters and 100% schema coverage, the description does not need to add parameter info. It provides no extra detail, but that is acceptable given the schema already covers everything.
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 ('education level taxonomy values'), and distinguishes this tool from sibling list tools by specifying the exact taxonomy type.
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 hint ('Useful for job requirements and structured matching'), which helps agents understand when to use this tool, but does not explicitly state when not to use it or provide direct alternatives.
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?
Describes behavioral traits beyond annotations: mentions that the tool may return isError:true with error_code=response_too_large and provides retry hints. No contradiction with readOnlyHint=true and 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?
Single paragraph that is concise yet comprehensive. Every sentence adds value: purpose, pagination details, error behavior, alternative tool. 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?
Given the tool's complexity (4 parameters, no output schema), the description fully covers key aspects: pagination, response size limits, error handling, parameter usage, and alternative tool. An agent can 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?
Adds significant meaning beyond the 100% schema coverage: explains recommended size (<=10), clarifies that 'full' view includes the HTML body and should be avoided in favor of the single-fetch tool. The schema already describes parameters, but the description adds 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 explicitly states 'List email templates for the target company' with a specific verb and resource. It differentiates from the sibling tool 'hires_get_email_template' by mentioning fetching a single template as an alternative.
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 guidance on when to use the tool: recommends page size <= 10 to avoid response too large errors, explains the 'view' parameter (summary vs full) and advises using 'hires_get_email_template' for full body content. Explicitly states when to reduce size or fetch single 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 indicate readOnlyHint=true and destructiveHint=false. The description adds no behavioral details beyond the use case, 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?
Extremely concise: two sentences that are front-loaded and free of 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, parameterless tool with no output schema, the description sufficiently covers what it does and when to use it. Could optionally mention return format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters; schema coverage is 100%. The description adds value by enumerating typical employment types, aiding understanding of the output.
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 supported employment types with examples, and distinguishes itself from sibling list tools by specifying 'employment 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 provides a clear use case ('for validation and normalization'), but does not explicitly mention when not to use or direct to 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_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 declare read-only and non-destructive behavior. Description adds context about taxonomy and seniority modeling beyond annotations, clarifying the purpose of the values.
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 concise sentence with clear verb and object, 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 is a simple list with no parameters or output schema. Description fully conveys its purpose and the domain context (seniority modeling).
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 (schema coverage 100%). Description adds meaning about what is returned (taxonomy values) without needing to explain 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 specifies the verb 'list' and the resource 'experience level taxonomy values' for role seniority modeling, clearly distinguishing it from other list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives; context is implicit as a simple lookup tool.
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 discloses the error behavior when the response exceeds budget, including isError:true with error_code=response_too_large and retry hints. This adds significant behavioral context beyond the annotations (readOnlyHint: true, destructiveHint: false), which only indicate a 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: the first states the purpose, the second provides a crucial behavioral note and guideline. Every sentence earns its place; no wasted words. It is front-loaded and efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 optional parameters, no output schema, and annotations present, the description covers the key aspects: pagination, embedded questions, size limit, error behavior, and view parameter guidance. It could be more complete by describing the response structure (e.g., fields of forms), but it is adequate for selecting and invoking the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining the view parameter options and their recommended usage, and by relating the size parameter to potential response size issues. This provides additional meaning beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists application forms, paginated, with questions for a company. It distinguishes from sibling list tools by specifying it targets forms and mentions the view parameter as an alternative to using hires_get_form for a single form. The verb 'list' and resource 'application forms' are specific.
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 a size <= 10 to avoid response too large errors, and explains when to use the 'summary' vs 'full' view, directing users to hires_get_form for a single form. It provides clear context and suggestions for alternatives but does not explicitly state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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, so the description only needs to add contextual behavioral details. It mentions 'currently assigned', implying dynamic data, and 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-loading the purpose and adding a use case. Every word is necessary, 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?
Given no output schema, the description doesn't explain return format, but for a list tool this is acceptable. It provides enough context for the agent to select and 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 coverage is 100% with one required 'id' parameter described as 'Job ID (numeric) or alias'. The description adds no further semantics beyond 'job', which is already clear from the context. 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 the tool lists users assigned to a job's hiring team, using specific verb 'List' and resource 'users on hiring team'. It is distinct from sibling tools like hires_list_users 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?
The description explicitly says 'Useful for notification routing and collaboration tooling', indicating appropriate use cases. However, it lacks explicit guidance on when not to use or comparison to alternatives like hires_list_users.
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 indicate readOnlyHint=true, making safety clear. Description adds value by describing pagination behavior and detailed error conditions, which are 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?
Two efficient paragraphs: first covers core purpose and filters, second provides critical usage guidance with emphasis. No wasted 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 11 optional parameters, no output schema, and annotations, the description covers purpose, filters, pagination, a specific use case, an anti-pattern, and error conditions – comprehensive without needing return value details.
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 parameter descriptions. Description enriches semantics for include parameter (critical for widget) and timestamps (incremental sync), going beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'list', resource 'interviews', and scope with optional filters and pagination. Differentiates from sibling list tools by focusing on 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?
Provides explicit when-to-use guidance for the agenda widget ('Always pass include=candidate'), anti-pattern advice ('Avoid include=job on large pages'), and error handling details (response_too_large 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_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 declare readOnlyHint=true; description adds return content but no additional behavioral detail 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 short, front-loaded sentences with 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?
Simple tool with one parameter and clear read-only purpose; description adequately covers the result. Output schema is absent but not critical here.
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 parameter with a description; the tool description adds no further parameter context beyond schema. 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?
Clearly states it retrieves the board publication state for a specific job, with a distinct purpose from sibling batch or publish/remove 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?
Provides use cases ('distribution dashboards and posting audits') but does not explicitly contrast with sibling batch tools or state 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_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 behavior, and the description adds critical context: pagination, response shape variations (summary vs full), heavy fields like description HTML, and error scenarios with retry hints. 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 is concise and front-loaded with the core purpose. The second paragraph about size and errors is necessary and well-structured, though slightly lengthy for the conciseness ideal.
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 params, no output schema), the description adds crucial context about response size limits and error handling. It also explains when to use different views, but could optionally note that pagination details (e.g., default page/size) are in 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 detailed descriptions for each parameter. The description only summarizes filter categories without adding new semantic meaning beyond what the schema already 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?
The description clearly states the tool lists jobs with optional filters and returns paginated results. It specifies use cases like career-site sync, reporting, and external system indexing, distinguishing it from sibling tools such as hires_get_job.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance is provided on when to use the tool and when to avoid large payloads. It recommends size <= 10, describes error handling for response_too_large, and suggests alternative hires_get_job for single records.
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 indicate read-only and non-destructive behavior. The description adds context about job-level events but does not disclose other behaviors like error handling or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with two short sentences that front-load the core purpose and a use case. Every sentence contributes meaning 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 list tool with one parameter and no output schema, the description gives the purpose and use case but lacks details about response format (e.g., fields in each webhook). 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 the description adds no extra semantics for the 'id' parameter beyond what the schema already provides (Job ID or alias). 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 ('List webhooks') and scope ('job-level events'), distinguishing it from sibling tools like 'hires_list_webhooks' which likely lists all 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 provides a use case ('audit subscriptions and deployment state') but does not explicitly differentiate when to use this tool versus alternatives like 'hires_list_webhooks' or create/delete webhook tools.
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?
Annotations already indicate read-only and non-destructive. Description adds that it only returns outbound messages and explains error behavior when response exceeds budget (isError:true with retry hints). This is valuable 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?
Very concise: two sentences for core purpose plus one for recommendation. No redundant information, front-loaded with 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 no output schema and good annotations, the description provides essential behavioral details (outbound only, error handling). Could mention that from_account_id is retrievable from other endpoints, but that is in the schema. Overall complete enough.
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 (100% coverage). Description adds no new parameter semantics beyond the schema, except a size recommendation which is more for usage. 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 it lists outbound messages (sent/scheduled) from a specific mail account. Distinguishes from received messages and implies differentiation from candidate messages by specifying mail account. Use case for cold outreach monitoring is given.
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 for when to use (monitoring cold outreach campaigns) and a recommendation on size <=10 to avoid budget errors. Does not explicitly exclude alternatives, but the purpose is clear enough to guide selection.
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?
Adds key behavioral details beyond annotations: notes can be long, response may trigger `response_too_large` error with retry hints. Annotations already declare readOnlyHint=true.
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 usage context, then error behavior. No superfluous 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 purpose, usage, and an error case. However, no output schema exists, and description does not explain the paginated response structure (e.g., fields, pagination metadata).
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?
100% schema coverage means description need not add param details. Description does not add extra param semantics beyond schema, which is acceptable.
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 notes by candidate' with paginated discussion notes. Distinguishes from siblings like hires_get_note via schema guidance.
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 ('shared recruiter context and timeline synchronization') and when-not-to-use (schema for `view` parameter recommends `hires_get_note` for single record).
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 declare readOnlyHint=true and destructiveHint=false, so the description adds some value by mentioning pagination and return content (summaries with steps), but does not disclose additional behaviors like authentication requirements or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the main action, no filler. Each sentence adds value: first states what it does, second states what it returns.
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 full schema coverage and annotations, the description is reasonably complete. It states pagination and return content, but since no output schema exists, slightly more detail on the summary fields could 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 description coverage is 100%, with each parameter already well-documented in the schema. The description adds only the concept of pagination and return content, not parameter-specific details, so it doesn't go beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'List nurture campaigns' with pagination, distinguishing it from sibling tools like hires_get_nurture_campaign (single campaign) and hires_create_nurture_campaign. The resource and operation are 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 on when to use this tool vs alternatives (e.g., when to use get vs list). No context about prerequisites or typical use cases provided.
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 safety profile is covered. The description adds the domain of taxonomy values but no further behavioral traits like pagination or ordering. It adds minor 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 extremely concise with two sentences and 13 words, front-loading the purpose and use cases without any extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, no output schema, and annotations covering safety, the description is adequate. It states what is listed and suggests use cases. Minor missing details like order or exhaustiveness are acceptable for a simple taxonomy list.
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?
There are no parameters, and schema description coverage is 100%. The description doesn't add parameter-specific info but mentions use cases that imply the nature of returned values, which is acceptable for a zero-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists 'candidate origin taxonomy values' with the verb 'List', specifying the exact resource. This distinguishes it from sibling tools like hires_list_sources and hires_list_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 explicit use cases 'attribution analytics and source normalization', giving clear context for when to use, though it doesn't explicitly state when not to use or compare 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_questionsARead-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 declare `readOnlyHint: true` and `destructiveHint: false`, so the agent knows it's a safe read. The description adds only the pagination aspect and company scope, which are not behavioral traits beyond what annotations convey. 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 a single sentence containing all essential information: verb, object, and modifiers. No redundancy or wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list operation with optional parameters and no output schema, the description adequately explains what the tool does. The paginated nature and company scoping are sufficient 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%, with all three parameters (`page`, `size`, `company_id`) already described in the input schema. The description adds minimal ('paginated', 'for the company') but does not provide additional 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 states 'List paginated question catalog for the company,' which clearly identifies the action (list), resource (question catalog), and scope (paginated, per company). It distinguishes from sibling tools like `hires_get_question`, `hires_create_question`, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: to list paginated questions for a company. It does not explicitly state when not to use it (e.g., for a single question, use `get_question`), but the purpose is clear enough for an agent to infer appropriate contexts.
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 declare readOnlyHint=true and destructiveHint=false, so the description adds minimal behavioral context beyond confirming it is a list operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words, and information is front-loaded with the primary purpose first.
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 annotations already present, the description is sufficient and includes a use case.
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, so the schema fully covers them; description adds no parameter info but baseline for 0 params 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?
Clearly states 'List available question types supported by the platform' with a specific verb and resource, and distinguishes from siblings like hires_list_questions or hires_list_forms by focusing on types rather than instances.
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 ('Use to drive dynamic form builders') but does not explicitly state when not to use or compare 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_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, covering safety. The description adds minimal behavioral context ('configured' reasons) but does not elaborate on behavior 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 with no wasted words. The description is front-loaded with the core purpose, followed by a usage hint.
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 covers purpose and usage. It omits return format, but that is implied for a list 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?
Schema coverage for the single parameter (company_id) is 100%, so the description does not need to add parameter details. It does not provide additional meaning beyond the schema, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List configured rejection reasons', specifying the verb (list) and resource (rejection reasons). It distinguishes from sibling list tools by focusing on rejection reasons specifically.
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 to validate rejection actions and analytics', providing clear usage context. It does not mention when not to use or alternative tools, but the use case is well-defined.
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?
Annotations already provide readOnlyHint=true and destructiveHint=false. Description adds purpose but no additional behavioral details like pagination or response format.
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 action and 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?
Given the tool's simplicity (1 optional parameter, no output schema), the description is complete and sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with company_id described. 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?
Description clearly states it lists candidate sources and specifies the use case for attribution sync and reporting consistency. Distinguishes 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 indicates when to use ('attribution sync and reporting consistency') but does not mention when not to use or provide 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_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 the caching suggestion, which is useful but not deeply behavioral. 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 sentences, no redundant words. Front-loaded with action and resource, secondary sentence adds tactical advice. 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?
With no output schema and simple semantics, the description covers the core purpose and caching intent. It could specify output format (e.g., array of strings), but the examples imply the 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?
There are zero parameters, and schema description coverage is 100%. The description adds no parameter info (none needed), but the baseline for 0 params is 4. It adequately covers what the tool returns.
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 specifies the verb 'list' and resource 'job status labels' with concrete examples (draft, published, on_hold, closed, archived). This clearly distinguishes it 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 states a clear use case: 'Cache to validate job status updates.' While it does not explicitly mention when not to use or compare to alternatives, the cache hint provides practical guidance for integration.
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. Description adds that results are paginated, 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 with no filler; front-loaded with purpose, efficiently conveys behavior and recommendation.
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 adequately covers pagination and caching recommendation, meeting completeness needs.
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 optional parameter. Description adds no additional parameter meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'List all tags for the company' with a specific verb and resource, and distinguishes from sibling 'hires_list_candidate_tags' by specifying company-level 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?
Description recommends caching for fast tagging UX, providing usage context. It does not explicitly contrast with alternatives but implies use for UI display.
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 provide readOnlyHint=true and destructiveHint=false. The description adds context about pagination and workflow (discover then prepare), 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?
Three succinct sentences: purpose, filter usage, and workflow. Front-loaded, zero 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?
No output schema, but description covers inputs and workflow. Could mention output format but adequate for a list tool with good 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%, baseline 3. Description adds high-level guidance on q (search by label) and type (filter by category) and mentions pagination, providing extra context 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 it lists available placeholders for email templates with pagination, and distinguishes from the sibling tool hires_prepare_template_placeholders which gets an HTML tag for insertion.
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 when to use: 'Discover placeholders here, then use hires_prepare_template_placeholders to get an HTML tag for insertion.' Also explains how to filter with type and q.
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 show readOnlyHint=true and destructiveHint=false, indicating safe read. The description adds workflow context (preparation for a mutating endpoint). 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 purpose, no unnecessary words. Efficiently communicates primary function and usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequately covers purpose and usage context for a list tool with annotations present. No output schema, but the description's workflow hint compensates. Could mention output fields but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions (User ID, page number, page size). Description does not add extra parameter details but explains the tool's purpose in workflow, which provides some semantic 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 'List mail accounts connected to a user' and specifies its use case: 'resolve from_account_id before creating scheduled emails'. This differentiates it from sibling tools 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?
Explicitly says when to use it (to resolve from_account_id before creating scheduled emails) and implies it's for user-specific accounts, distinguishing from company mail account tools. Does not explicitly state when not to use, 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_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, making the safe read behavior clear. The description adds 'Returns paginated results' but fails to disclose other behavioral traits like pagination defaults, response structure, or any prerequisites. With annotations doing most of the work, the description adds minimal additional 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: first sentence states the core purpose, second adds pagination detail and user context. Every word contributes, no redundancy, and front-loaded with the most important 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 tool has 3 optional parameters and no output schema. The description explains the purpose, role context, and use cases adequately. However, it omits details like whether company_id is required for meaningful results, default pagination behavior, or expected response format. Slight gap but good overall given schema coverage.
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 page, size, and company_id clearly. The description adds the phrase 'with role context' but does not elaborate on how company_id or other parameters influence results. Baseline 3 is appropriate as the description provides no extra 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 (List), resource (users), and scope (for target company with role context). It differentiates from siblings like hires_list_hiring_team by mentioning 'role context' and 'access reviews and hiring-team management', making the purpose distinct.
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 access reviews and hiring-team management, but does not explicitly state when to use this tool versus alternatives like hires_list_hiring_team or hires_get_user. No when-not-to-use or alternative names are provided, leaving usage context somewhat implied.
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 declare readOnlyHint=true and destructiveHint=false, so safety profile is clear. Description adds scope context but no further behavioral traits (e.g., pagination, 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?
Single sentence, no redundant words, directly states tool's purpose. Front-loaded with verb 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?
Adequate for a simple list operation with one parameter, but lacks description of return format (list of webhook objects) and does not leverage output schema (absent). Minimal but not insufficient.
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 'id' fully described in schema as Company ID. Description adds no new meaning beyond schema (100% coverage), achieving 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 action (List) and resource (webhook subscriptions) with scope (company). Distinguishes from sibling hires_list_job_webhooks which lists job-scoped 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?
No explicit when-to-use or when-not-to-use guidance. Agent must infer from scope difference with siblings; description lacks directive to choose between company vs job webhook lists.
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?
The description adds the behavioral detail that workflows come 'with embedded stages', which goes beyond the readOnlyHint annotation. 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 short sentences, front-loaded with the purpose, no unnecessary words. Highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one optional parameter and no output schema, the description adequately explains what is returned (workflows with embedded stages) and why it should be used (stage-aware integrations). Missing details like pagination, but acceptable given 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?
The input schema has 100% coverage for the single parameter 'company_id'. The description does not add any parameter-specific meaning, but the schema already sufficiently describes it, 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 explicitly states 'List workflows with embedded stages for the company', clearly identifying the verb and resource. It also distinguishes from similar 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 provides a clear use case: 'Use to build stage-aware integrations and routing rules.' It implies the context of integration building, though it does not explicitly state when not to use this tool or suggest alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description does not need to add safety behavior. The description adds no further behavioral traits beyond listing stages.
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 action, and every word adds value. 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?
The description covers purpose, filtering options, and use cases. However, it lacks details about return format or pagination, but for a list tool with no output schema, this is acceptable.
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 (job_id, company_id, workflow_id). The tool description does not add additional 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 verb 'List' and the resource 'pipeline stages', and explicitly mentions filtering options ('filtered by workflow or job'). This distinguishes it from siblings like 'hires_get_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 mentions it is 'Useful for transition UIs and workflow validation', which gives context, but does not explicitly state when to use versus 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_move_applicationADestructiveInspect
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?
Annotations indicate 'destructiveHint: true,' meaning the operation is destructive. However, the description uses the neutral term 'Moves' without clarifying destructive consequences, such as whether the previous stage is removed or history is overwritten. The behavioral impact is underspecified given the destructive 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?
The description consists of two concise sentences that directly convey the purpose and a key requirement. No extraneous information is included, and the most critical detail (stage_id sourcing) is front-loaded in the second sentence.
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 mutation tool with no output schema, the description covers the core action and parameter sourcing adequately. However, it lacks differentiation from similar sibling tools (e.g., 'hires_advance_application') and fails to explain the destructive behavior or post-move state, leaving gaps for an agent selecting 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% coverage with clear descriptions for all three parameters. The description adds value beyond the schema by explaining how to obtain the stage_id, which is not evident from the schema alone. This extra guidance compensates for the high schema coverage 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 action 'Moves an application to a specific pipeline stage' and specifies the context 'for explicit stage transitions in workflow orchestration.' It effectively distinguishes from similar sibling tools like 'hires_advance_application' by emphasizing explicit stage selection.
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 obtaining the required stage_id: 'Requires the target stage_id (available via the job's pipeline_stages).' However, it does not explicitly state when to use this tool versus alternatives like 'hires_advance_application' or 'hires_transfer_application,' nor does it outline prerequisites or conditions for use.
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?
The description adds context beyond annotations: the 'before send time' constraint and the 'only provided fields are changed' behavior, which is consistent with the destructiveHint and readOnlyHint 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 with front-loaded information, no filler, and 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?
Given the rich input schema and no output schema, the description adequately covers the tool's purpose, constraints, and partial nature, though it could mention prerequisites like the message being scheduled.
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 no additional meaning to parameters beyond stating 'only provided fields are changed', which is already implied by '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 tool performs a partial update on scheduled messages before send time, using the verb 'update' and specifying the resource and timing, which distinguishes it from full updates or other message 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?
The description implies when to use (partial updates, before send time) but does not explicitly exclude alternatives or name sibling tools like hires_update_message, 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_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?
Annotations already mark it as read-only and non-destructive. The description adds that it produces an HTML tag, but doesn't detail behavior on invalid inputs or edge 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?
Single sentence, no wasted words, front-loaded with verb 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?
No output schema, so the description should explain what the tool returns. It only mentions 'HTML tag' but not the structure or potential errors, leaving 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 the schema already documents parameters. The description does not add new 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 action: converting a placeholder reference into an HTML tag for email templates. It distinguishes itself from sibling tools like hires_list_template_placeholders.
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 or when not to use this tool, nor alternatives. The usage is implied for placeholder conversion, but lacks context.
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?
Adds behavioral insight that it sets boards to 'activation queue state' rather than publishing instantly. No contradiction with annotations, which correctly indicate mutation but not destruction.
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 key information without any 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?
Adequately covers purpose and behavior for a simple tool with two parameters and no output schema; lacks mention of prerequisites but that 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 covers both parameters with descriptions. The description adds context about 'selected job boards' but does not provide additional semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'activate' and the resource 'selected job boards for a job', and it differentiates from siblings like 'hires_batch_publish_to_boards' by mentioning 'controlled multi-board publishing 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?
Provides context for usage in controlled multi-board publishing, but does not explicitly state when not to use or mention alternatives like batch operations.
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 indicate readOnlyHint=false and destructiveHint=true, so the description's mention of 'Reject' is consistent. It adds value by explaining the optional rejection reason and notification suppression, which are 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?
Two sentences, no wasted words. The core action is front-loaded, and additional details are presented efficiently.
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 4-param tool with no output schema, the description adequately covers the main action, optional parameters, and side effects. It lacks details on return value 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%, so baseline is 3. The description adds meaning by linking rejection_reason_id to an external endpoint and clarifying suppress_notification's effect (skip email), which goes beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Reject an application' and specifies the resource (application). It distinguishes from sibling tools like hires_hire_application or hires_delete_application by focusing on the rejection workflow.
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 practical guidance: how to get rejection reasons via GET /taxonomy/rejection-reasons and when to use suppress_notification. However, it does not explicitly contrast with alternatives like hires_batch_reject_applications or hires_unreject_application.
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?
The description aligns with the destructiveHint annotation but does not add behavioral context beyond what annotations already provide, such as what happens if the tag does not exist 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 is a single sentence with no wasted words, effectively conveying 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 two-parameter tool with no output schema, the description is adequate but could mention the existence of batch alternatives or idempotency 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 description coverage is 100% for both parameters, and the description adds minimal value ('specific tag'). With high coverage, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Remove a specific tag from a candidate' clearly states the verb (remove), resource (tag), and target (candidate), distinguishing it from sibling tools like hires_add_candidate_tags and hires_batch_remove_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?
No guidance is provided on when to use this tool versus alternatives like hires_batch_remove_tags, or on prerequisites such as the candidate existing or the tag being present.
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_boardADestructiveInspect
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?
The description adds context beyond annotations by specifying that only selected boards are deactivated ('selected board publications'), which aligns with the destructiveHint annotation. It does not contradict annotations, but does not reveal additional behavioral traits like return value or irreversible 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?
The description is two sentences, fully front-loaded, with no extraneous words. Every sentence serves a purpose: first defines the action, second clarifies the effect.
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 absence of an output schema, the description does not mention what the tool returns (e.g., success status). It adequately covers the action but could be more complete by indicating side effects or confirmation of deactivation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters already have descriptions. The description merely restates the schema's purpose ('Job ID' and 'board identifiers') without adding new meaning or usage constraints. 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 the verb 'deactivate' and the resource 'board publications for a job', and distinguishes from related tools like 'publish_to_job_board' by focusing on removal. It does not explicitly differentiate from the sibling 'batch_remove_from_boards', but the context of job-specific vs batch is implied.
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 to stop a job from being listed on specific boards, but it does not provide explicit guidance on when not to use it or mention alternatives like batch operations for multiple jobs. An agent would need to infer from context.
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?
Annotations include destructiveHint=true, but the description does not explain what makes it destructive. It adds context about the career site coming back online but lacks details on permissions, side effects, or reversibility.
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 with zero waste. 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 tool with one parameter and no output schema, the description covers the core purpose and use case. Could mention that the company must have been previously deleted.
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 100% of parameters with a minimal description ('Company ID'), and the tool description adds no extra meaning beyond the parameter name.
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 ('restore a previously deleted company') and the effect ('re-enable it for active use — its public career site comes back online'), which distinguishes it from siblings like hires_delete_company or hires_create_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 says 'Use for recovery and rollback scenarios,' providing clear context for when to use this tool. It does not, however, list exclusions or 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_messageAInspect
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 behavioral context beyond annotations by stating it schedules an email (not immediate send) and the default timing. Annotations already indicate no readOnly/destructive biases, so the description complements them well with scheduling details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (two sentences) and front-loaded with the core purpose. 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 complexity (11 parameters, scheduling, various optional fields like CC/BCC), the description is too brief. It omits return behavior, error handling, and the fact that CC/BCC are supported. The schema covers parameters but not behavioral outcomes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. The description only reiterates the default behavior of `scheduled_at` already in the schema, adding no extra meaning or clarification for other 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 schedules an email message to a candidate, which is specific and distinct from sibling tools like batch creation or notes. However, it does not explicitly differentiate from similar tools like `hires_batch_create_messages` or update 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 a useful detail about the default scheduling behavior (15 min after creation if `scheduled_at` omitted). But it lacks guidance on when to use this tool vs. alternatives like batch sending or updating messages, and no when-not-to-use or prerequisites.
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, so the destructive nature is covered. The description adds 'via dedicated endpoint' but does not elaborate on side effects, reversibility, or other behavioral traits beyond what annotations provide. 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, front-loaded with the core purpose, and each sentence adds value. No wasted words or redundancy. Ideal conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with no output schema, and the description covers the main intent and recommended use cases. It could mention potential side effects or validation constraints, but overall it is adequate for an agent to understand when and how to use 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% with clear descriptions for all three parameters (id, status, include). The description does not add additional parameter semantics beyond the schema, 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 states 'Change job status via dedicated endpoint' which is a specific verb+resource. It further clarifies recommended transitions (publish/unpublish/archive) and automation workflows. However, it does not explicitly distinguish from sibling tool hires_update_job, which could also modify status among other fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description recommends usage for publish/unpublish/archive transitions and status automation workflows, providing clear context. But it does not mention when not to use this tool or suggest alternatives like hires_update_job for more comprehensive updates. No exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_submit_career_applicationBInspect
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?
Annotations indicate it's a write operation (readOnlyHint=false) and not destructive. Description adds that it creates a candidate record and triggers career-site pipeline automation, which are useful behavioral side effects beyond the basic 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 concise sentences front-load the main action. Efficient but could include more detail without being 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?
Explains core action and side effects, but missing output schema details, constraints (e.g., multiple submissions), and explicit sibling differentiation. Adequate but not thorough.
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 full parameter descriptions. The tool description adds no additional parameter semantics, so it meets the baseline for this dimension.
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 submits a job application on behalf of a candidate and creates a candidate record with automation trigger. However, it does not differentiate from sibling tools like hires_create_application or hires_create_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 guidance on when to use this tool versus alternatives (e.g., hires_create_application, hires_create_candidate). Missing prerequisites, context about career-site pipeline vs internal applications.
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 behavior. The description adds the rate limit constraint, which is helpful. It does not detail what happens after submission (e.g., acknowledgment), but the core behavioral trait is clear.
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 with no fluff. It front-loads the purpose and adds the rate limit as a secondary detail. Every word 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 feedback submission tool with moderate parameter count and no output schema, the description covers purpose and a key constraint (rate limit). It could briefly mention the expected return value, but overall completeness 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 description coverage is 100%, so the description adds no new parameter-level meaning beyond what the schema provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'submit' and specific resource 'structured API feedback', distinguishing it from CRUD siblings. It specifies types of feedback (missing features, issues, workflow improvements), 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 indicates when to use the tool (to submit feedback) and mentions a rate limit (5 per hour), providing usage context. However, it does not explicitly state when not to use it or suggest alternative tools for other actions.
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 already indicate that this is not read-only (readOnlyHint=false) and not destructive (destructiveHint=false), so mutation is expected. The description adds that a new application is created, which is useful, but it does not clarify what happens to the original application (e.g., is it closed or left as is?), which is a behavioral gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the key action, and contains no redundant information. 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 tool has 4 parameters, no output schema, and minimal annotations, the description covers the main functionality but lacks details about the side effects (e.g., status of original application), the return value, and does not explain the 'include' parameter. It is adequate but not 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?
With 100% schema description coverage, the schema already documents all parameters. The description restates the optional stage parameter but does not add new meaning beyond what the schema provides, such as explaining the 'include' parameter or providing context for parameter values.
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 'transfer' and the resource 'application' to another job, with the specific action of creating a new application on the target job. It distinguishes from siblings like 'hires_move_application' (likely within same job) and 'hires_create_application' (new from scratch).
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 the tool (to move an application to a different job) and mentions optional stage specification. It does not explicitly state when not to use it or name alternatives, but the context is clear given the sibling names.
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?
Annotations already indicate destructiveHint=true. The description adds specific context about clearing rejected_at and returning status to active, but does not discuss side effects, permissions, or limitations 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 sentences, front-loaded with purpose, no redundant or superfluous wording. 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?
The description adequately explains the effect (status and rejected_at) for a simple mutation tool with no output schema. Could optionally mention that it only works on previously rejected applications, but not necessary for clarity.
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 both parameters described in the schema. The description adds no additional meaning or constraints beyond what is already in the input 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 ('Undo a rejection and reopen') and the specific resource ('a previously rejected application'), with precise behavioral details ('status returns to active and rejected_at is cleared'). This distinguishes it from siblings 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 use for reverting rejections but does not explicitly state when to use this tool versus alternatives, nor does it mention prerequisites or conditions under which it should not be used.
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 mark destructiveHint=true, and the description adds context on specific fields that can be updated. No contradiction. Some behavioral details (e.g., relationship updates, validation) are missing but not critical.
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, front-loaded main action and immediate usage guidance. 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?
Covers main purpose, alternatives, and key fields. Missing mention of 'include' parameter and return values, but with sibling differentiation and no output schema, it's sufficiently complete for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are well-documented. The description only gives high-level examples (stage, disqualification flag, CV) without adding significant meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates application fields (stage, disqualification flag, CV) and distinguishes itself from siblings for 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 to prefer hires_move_application or hires_advance_application for explicit stage transitions, providing clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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?
The description aligns with annotations (destructiveHint=true) by stating it updates candidates. It adds valuable context about handling resume text (not to inline binary data), which goes beyond what annotations 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?
The description is two sentences: first states the core purpose, second provides usage context and a specific instruction. No unnecessary words, front-loaded with 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?
While the description covers the main purpose and one critical usage instruction, the tool has 13 parameters and no output schema. Additional details about error handling, permission requirements, or expected response would improve completeness. The current description is adequate but minimal for a complex 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 the baseline is 3. The description adds meaning by explaining the tool's sync context and providing critical usage guidance for the 'resume_text' parameter, which clarifies how the model should handle attached resumes.
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', the resource 'candidate', and the scope 'fields, profile answers, and optional resume text'. It also provides context for its intended use in bi-directional sync scenarios, which helps distinguish it from other tools like hires_create_candidate 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?
The description specifies when to use the tool (bi-directional sync from ATS, CRM, sourcing, or enrichment tools) and gives a specific instruction about parsing resume text from chat context. However, it does not explicitly mention when not to use it or provide alternatives among 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_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 indicate destructiveHint=true, and the description confirms the tool changes tenant's public career-site URL, name, and logo. It adds context about partner-operated account management, which is 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 two sentences with no wasted words. The first sentence effectively conveys the main purpose and scope, and the second adds useful context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main effects and impact (changes public branding), but does not mention return values or outcome on success/failure. Given the absence of an output schema and the complexity of 9 parameters, the description 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 each parameter has a description. The tool's description does not add extra 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?
The description clearly states the tool updates company profile, owner contact data, and optional logo, specifying the resources and actions. It distinguishes from create/delete tools but does not explicitly differentiate from other update 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?
The description implies usage for updating company details, and mentions 'Supports partner-operated account management' as context. However, no explicit when-to-use or when-not-to-use guidance, and no alternatives provided.
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. The description adds that only provided fields are overwritten, and notes placeholders reference, giving extra context without 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: first states the action and key behavior, second adds placeholder guidance. 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?
For a simple update tool with good annotations and schema, the description is sufficiently complete. It explains partial update and placeholders, though it omits return value or permissions, but these are not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds meaning by explaining the partial update behavior ('Only provided fields are overwritten') which directly relates to how parameters are applied.
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 email template,' which is a specific verb-resource pair. It distinguishes from sibling tools like 'create' and 'delete' templates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides guidance on partial updates: 'Only provided fields are overwritten; omitted fields keep their current values.' It also references creation for placeholders, though it doesn't explicitly exclude alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hires_update_formBDestructiveInspect
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?
Annotations indicate destructiveHint=true and readOnlyHint=false, confirming the tool mutates data. However, the description adds no additional behavioral details such as whether changes are reversible, what happens to existing questions, or authorization requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no wasted words. It is front-loaded and straightforward, though it could be slightly more informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is destructive (destructiveHint=true) with no output schema, the description lacks details on return values, error states, or side effects. It should provide more context for safe usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description mentions 'name and question composition', which aligns with the 'name' and 'questions' parameters 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 'Update form name and question composition' clearly uses a specific verb (update) and resource (form), and specifies the aspects being updated (name and question composition). It distinguishes from sibling tools like 'hires_create_form' and 'hires_delete_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 no guidance on when to use this tool versus alternatives such as 'hires_update_form_question' or 'hires_create_form'. There is no mention of prerequisites, contexts, 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_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 indicate destructiveHint=true (mutation) and readOnlyHint=false . The description adds no further behavioral context, such as what happens if the question or form does not exist, whether the change is reversible, or any side effects. It relies entirely on the annotation for safety cues.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the action and purpose. Every word is necessary; no fluff 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?
For a simple update tool with fully documented parameters and destructive annotation, the description is minimally adequate. However, it omits details like whether the form must be in a draft state or if the update is live. No output schema exists, so return values are not addressed.
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 add additional meaning beyond referencing the status values, which are already enumerated in 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 is to update the status of a question within a form, using a specific verb ('Update') and resource ('status of a question inside a form'). It distinguishes from sibling tools like hires_update_question (question content) and hires_update_form (form settings).
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?
Usage is implied by the description, but there is no explicit guidance on when to use this tool versus alternatives like hires_update_question or hires_create_question . No when-not-to-use or prerequisite conditions are stated.
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?
Annotations already indicate destructiveHint=true and readOnlyHint=false, aligning with update behavior. The description adds value by stating partial update semantics and preservation of validation rules, which goes beyond annotation data.
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. The key behavior (update mutable attributes, partial update) is front-loaded. Perfectly concise and structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high parameter count and presence of annotations, the description covers the essential behavioral aspects. It could mention the return value (e.g., updated job object) for completeness, but it's not critical since output schema is absent.
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 3. The description does not add additional parameter-level meaning beyond what the schema already provides. The schema itself describes each parameter sufficiently.
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), resource (job), and scope (mutable attributes). It distinguishes from create_job and set_job_status by emphasizing partial update and mutation. Sibling tools include create, delete, and status-specific operations, making this unique.
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 to send only fields to change, guiding efficient usage. It mentions domain-level validation rules but does not specify when not to use or provide alternatives. The context is clear for a general update 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 already indicate destructiveHint=true and readOnlyHint=false, so the description adds minimal extra behavioral context. It states 'before send time' which is a useful constraint, but does not elaborate on side effects, required permissions, or what happens if the message has already been sent. This is a moderate addition 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 two sentences, no filler, and front-loaded with the core purpose. Every word adds value, and it avoids redundancy with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 10 parameters, no output schema, and good annotations, the description covers the essential constraint (before send time) and the update nature. It lacks some context about return values or success/failure behavior, but given the completeness of the schema and annotations, it is mostly 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?
The schema has 100% description coverage, so the baseline is 3. The description does not add any additional meaning to the parameters beyond what the schema provides; it merely reiterates that all required fields must be provided. No new semantics are introduced.
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 fully updates (replaces) a scheduled message before send time, distinguishing it from a partial update. It uses a specific verb and resource, and differentiates from the sibling tool 'hires_patch_message' for partial updates.
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 that it must be used before send time and that all required fields must be provided. It implies a full replacement, and the presence of 'hires_patch_message' as a sibling gives context for when to use each. However, it does not explicitly state when not to use this tool or what the consequences of missing the send time are.
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 readOnlyHint=false. The description adds context by specifying what is updated (body, visibility) and that it does not create a new timeline item, which provides behavioral nuance 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 (19 words), front-loaded with the core action and purpose, and contains zero redundant information. 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 no output schema and simple update semantics, the description covers the essential behavioral differentiator (no new timeline item) and usage workflows. It does not explain return values, but for a mutation tool this is acceptable. The parameter descriptions in the schema handle details.
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 full parameter descriptions. The tool description reinforces that body and visibility are the key updateable fields, directly aligning with the schema. This adds value by confirming the purpose of the 'body' and 'visibility' parameters in context of the update action.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Update note body and/or visibility' on the 'note' resource, and explicitly distinguishes itself by noting 'without creating a new timeline item'. This effectively differentiates it from sibling tools like 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 explicit usage context: 'Use for corrections and moderation workflows' and contrasts with creating a new timeline item. It does not enumerate alternatives or when-not-to-use explicitly, but the guidance is clear enough for an agent to infer appropriate scenarios.
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?
Annotations already declare readOnlyHint=false and destructiveHint=true, covering the basic behavioral profile. The description adds the scheduling precondition but does not elaborate on side effects or idempotency. With annotations present, the description adds modest context beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences. First sentence states purpose and actions. Second sentence adds critical constraint. No wasted words, front-loaded with 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?
For a simple update tool with no output schema, the description covers its primary action, modifiable fields, and a key precondition (scheduled, unsent). It lacks details on error conditions or return values, but given the tool's simplicity and annotations, 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 parameters are well-documented in the schema. The description mentions 'subject, body, and optionally reschedule the send time', which maps to the schema parameters but adds no new semantic meaning beyond what 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?
Description uses specific verb 'Update' and specifies the resource as 'scheduled notification email'. It lists modifiable fields (subject, body) and optional rescheduling. The constraint 'Only scheduled (not yet sent) messages can be updated' distinguishes it from sibling 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?
Explicitly states that only scheduled (not yet sent) messages can be updated, providing a clear when-to-use condition. While it doesn't name alternatives, the constraint implicitly guides against using for sent messages, referencing sibling deletion/cancellation tools.
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 indicate destructiveHint=true, and the description confirms it's an update operation. It adds behavioral details beyond annotations: the full-replacement approach for steps and the requirement to set is_deleted for removal. 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: first states purpose, second gives critical instructions. No redundant information, front-loaded. Highly concise 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 complexity (11 parameters, step types with constraints), the description covers the most critical aspect (steps) but omits guidance on omitted optional fields, return behavior, or error scenarios. Schema descriptions compensate, yet the tool could benefit from a fuller description.
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 context for the steps parameter (pass all, mark deleted, include id) but doesn't add meaning for other parameters, which are already well-described 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 'Update an existing nurture campaign', specifying the verb 'update' and resource 'nurture campaign'. It distinguishes from sibling tools like create and delete by emphasizing the need to pass all steps and mark removed ones with is_deleted=true.
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 instructions: pass all steps, mark removed with is_deleted=true, existing steps must include their id. While it doesn't compare to alternatives, the guidance is clear and actionable for when 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_update_questionBDestructiveInspect
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 set destructiveHint=true, so the description's 'Update' adds no additional safety context. The description does not disclose any behavioral traits such as whether partial updates are allowed, what happens if options are omitted, or any side effects on linked data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence that front-loads the verb and resource. Every word is informative; there is 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?
With no output schema and a mutation tool that has 4 parameters (3 required), the description does not explain the return value, whether the update is partial or full replacement, or any important usage nuances. It lacks sufficient context for an agent to use it correctly without external knowledge.
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 parameters. The description lists 'text, type, or options' which mirrors the schema but adds no extra meaning or constraints beyond what the schema already states.
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 'existing question definition', and specifies the updatable attributes (text, type, options). This distinguishes it clearly from sibling tools like hires_create_question or hires_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 implies that this tool is for existing questions only ('Update ... an existing question definition'), but does not explicitly state when to use it versus alternatives, nor does it mention any prerequisites or conditions. No alternative tools are referenced.
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 it's not read-only and not destructive. The description adds that input must be base64-encoded, which is a behavioral requirement. No side effects, permissions, or size limits are disclosed, but for a simple upload the provided info is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no wasted words. The action and key requirement (base64) are 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 straightforward upload tool with complete schema, the description covers purpose, encoding, and typical use cases. No output schema exists and none is needed; the description is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema fully documents parameters. The description mentions base64 encoding and common file types, slightly reinforcing the schema but not adding significant 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?
The description clearly states the action ('Upload'), resource ('file attachment to an application'), and provides common use cases ('signed documents and interviewer artifacts'). The name and description effectively distinguish it from sibling tools like hires_upload_attachment and hires_upload_candidate_file.
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 context for typical usage ('commonly used for signed documents and interviewer artifacts'), implying when this tool is appropriate. However, it does not explicitly contrast with other upload tools or 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_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 include openWorldHint=true and destructiveHint=false. The description adds behavioral context: object ownership is strictly verified against the API key's company, and the returned uuid for 'voicemail' can be used in nurture steps. It also specifies the return format, which is 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?
The description is well-structured: it begins with a clear purpose, lists categories with key constraints, adds ownership context, and ends with return format. It is front-loaded but slightly verbose with inline parentheticals; still effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (4 parameters, nested file object, 8 enum categories, no output schema), the description covers parameter usage, category-specific details, ownership verification, and return fields. It does not address error handling or rate limits, but 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 description coverage is 100%, so baseline is 3. The description adds meaning beyond the schema by explaining category-specific semantics, such as when object_id is nullable or required, and that company_id defaults for single-company API keys.
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 verb and resource: 'Upload a file and create an attachment.' It enumerates supported categories with specific details (e.g., 'voicemail' versus 'candidate'), distinguishing it from sibling tools like 'hires_download_attachment' or '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?
The description provides explicit guidance on when to use each category, such as omitting object_id for 'voicemail' and requiring it for others. It also mentions strict ownership verification. However, it does not explicitly state when not to use this tool compared to specialized upload alternatives like 'hires_upload_application_attachment' or 'hires_upload_candidate_file'.
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 critical behavioral trait: serializers truncate arguments above ~20KB, causing corruption for larger files. No annotations contradict this. Description adds essential context beyond readOnlyHint=false and 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?
Two sentences plus a critical warning, all essential. Front-loaded with purpose, then usage guidelines and behavioral transparency. 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 purpose, usage, and critical limitation. Lacks output description but for an upload tool, the main value is the action and caveat. No output schema exists to compensate, but the description is sufficiently informative 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 baseline is 3. Description does not add additional parameter details beyond what schema provides; the size warning is relevant but not per-parameter. No improvement over 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 verb 'Upload' and resource 'file for a candidate' with specific use cases (portfolio uploads, document attachment). Distinguishes from sibling tools like hires_create_candidate and hires_upload_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?
Explicitly warns about the ~20KB truncation limit due to serializers, advises against use for large files, and recommends alternative tools (hires_create_candidate/hires_update_candidate with resume_text) for resumes. Provides clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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!