Skip to main content
Glama
Ownership verified

Server Details

Ask Greenhouse the messy recruiting-ops questions dashboards miss by connecting candidates, applications, jobs, openings, stages, scorecards, interviews, notes, sources, referrers, offers, users, departments, and rejection details. Find referral SLA misses, feedback debt by interviewer and hiring team, stage-age outliers by owner, funnel leakage by recruiter/source/function, opening fill-risk from headcount vs active pipeline, offer-draft hygiene gaps, rejection-reason drift, and the bottleneck

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

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.

100% free. Your data is private.
Tool DescriptionsB

Average 3.3/5 across 87 of 87 tools scored. Lowest: 2.7/5.

Server CoherenceB
Disambiguation4/5

With 87 tools, there is potential for confusion among similar list tools (e.g., list_candidates vs list_applied_candidate_tags), but each tool targets a distinct entity or action, and descriptions provide enough clarity to differentiate them.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern using lowercase with underscores (e.g., list_jobs, get_application, patch_candidate_profile). No mixing of styles or irregular conventions.

Tool Count1/5

At 87 tools, the count is extremely high for a single server, exceeding the 50+ threshold for extreme mismatch. While the domain is broad, the number of tools is likely to overwhelm agents and dilute focus.

Completeness3/5

The tool set covers a wide range of operations (list, get, patch, add, remove, upsert) across many entities, but lacks basic CRUD for core objects like jobs and candidates (no create_job or create_candidate), leaving notable gaps.

Available Tools

88 tools
add_job_coordinator_ownerBInspect

Add a single coordinator owner to a job hiring team, with preview support and candidate reassignment controls.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesThe Greenhouse job ID
reasonYesHuman-readable audit reason for this change. Must be at least 12 characters.
dry_runNoWhen true, validate and preview the change without sending a write request.
user_idYesGreenhouse user ID to add as a coordinator owner
on_behalf_of_user_idYesGreenhouse user ID to send with this write.
confirm_hiring_team_changeYesMust be true to execute a hiring-team write.
allow_candidate_reassignmentNoMust be true if any responsibility flag is set to true.
responsible_for_active_candidatesNoWhether this coordinator should become responsible for active candidates.
responsible_for_future_candidatesNoWhether this coordinator should become responsible for future candidates.
responsible_for_inactive_candidatesNoWhether this coordinator should become responsible for inactive candidates.
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It mentions 'preview support' and 'candidate reassignment controls' but does not state that this is a write operation, whether permissions are required, or potential side effects on existing assignments. Major gaps for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence (17 words) that is front-loaded with the primary action and immediately followed by key features. Every phrase adds value without fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having 10 parameters (5 required) and no output schema or annotations, the description does not cover return values, error conditions, permissions, or behavioral details. For a complex mutation tool, this is insufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (all 10 parameters described in schema). The description adds high-level context about preview and reassignment but does not elaborate on individual parameter meanings 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.

Purpose5/5

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

The description clearly states the action ('Add a single coordinator owner'), the resource ('job hiring team'), and includes distinguishing features like preview support and candidate reassignment controls. This differentiates it from sibling tools like add_job_recruiter_owner.

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

Usage Guidelines3/5

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

The description implies usage for adding a coordinator owner but provides no explicit guidance on when to use this tool versus alternatives like add_job_recruiter_owner or remove_job_coordinator_owner. No 'when to use' or 'when not to use' context is given.

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

add_job_recruiter_ownerBInspect

Add a single recruiter owner to a job hiring team, with preview support and candidate reassignment controls.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesThe Greenhouse job ID
reasonYesHuman-readable audit reason for this change. Must be at least 12 characters.
dry_runNoWhen true, validate and preview the change without sending a write request.
user_idYesGreenhouse user ID to add as a recruiter owner
on_behalf_of_user_idYesGreenhouse user ID to send with this write.
confirm_hiring_team_changeYesMust be true to execute a hiring-team write.
allow_candidate_reassignmentNoMust be true if any responsibility flag is set to true.
responsible_for_active_candidatesNoWhether this recruiter should become responsible for active candidates.
responsible_for_future_candidatesNoWhether this recruiter should become responsible for future candidates.
responsible_for_inactive_candidatesNoWhether this recruiter should become responsible for inactive candidates.
Behavior2/5

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

With no annotations provided, the description carries the full burden of revealing behavioral traits. It hints at preview (dry_run) and reassignment (responsibility flags) but omits critical details: that confirm_hiring_team_change must be true to execute a write, that dry_run only validates, and that this is a write operation that adds a recruiter owner. No contradiction with annotations since none exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the action and key features. No unnecessary words, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (10 parameters, 5 required, no output schema), the description is too brief. It does not explain the required confirmation parameter, the preview mode's effect, or the reassignment logic. For a tool with many interacting parameters and no annotations, the description leaves significant gaps in understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds 'preview support' (dry_run) and 'candidate reassignment controls' (responsible_for_* flags), but does not explain the relation between confirm_hiring_team_change and execution, or that allow_candidate_reassignment must be true if any responsibility flag is set. Minimal added value beyond schema.

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

Purpose5/5

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

The description clearly states the verb 'Add', the resource 'recruiter owner to a job hiring team', and highlights key features like preview support and candidate reassignment controls. It effectively distinguishes from sibling tools such as add_job_coordinator_owner and remove_job_recruiter_owner.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives like add_job_coordinator_owner or other related tools. It mentions preview support and reassignment controls but does not clarify the context or prerequisites for using this tool.

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

create_offer_draftAInspect

Create a draft offer for an application in Greenhouse. Refuses duplicate created offers unless explicitly allowed and never submits for approval.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonYesHuman-readable audit reason for this change. Must be at least 12 characters.
dry_runNoWhen true, validate and preview the change without sending a write request.
starts_onNoOffer start date in YYYY-MM-DD format.
opening_idNo
custom_fieldsNo
application_idYesThe application ID the offer belongs to.
confirm_offer_draftYesMust be true to create a draft offer.
on_behalf_of_user_idYesGreenhouse user ID to send with this write.
allow_duplicate_offer_draftNoMust be true to create another created-status draft when one already exists for the application.
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It usefully states that the tool refuses duplicate offers unless explicitly allowed and never submits for approval. However, it does not mention return values, side effects (e.g., notifications), idempotency, or error handling, leaving significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two well-structured sentences. The first sentence clearly states the primary action, and the second adds two critical constraints. Every word serves a purpose, with no filler or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (9 parameters, no output schema, no annotations), the description is incomplete. It does not mention what is returned after creation, any prerequisites (e.g., user permissions), or error conditions. For a creation tool, this leaves the agent without essential operational details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 78%, so the schema already documents most parameters. The description adds context around allow_duplicate_offer_draft by referencing the duplicate refusal behavior, but does not elaborate on other parameters beyond what the schema provides. Baseline 3 is appropriate since schema does most of the work.

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

Purpose4/5

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

The description clearly states it creates a draft offer for an application in Greenhouse, using a specific verb and resource. It distinguishes from siblings like deprecate_offer_draft and patch_offer_* by focusing on creation, but could be more precise about what a 'draft offer' entails compared to other offer states.

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

Usage Guidelines4/5

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

The description provides context on when to use (creating a draft offer) and when not to (refuses duplicates unless explicitly allowed, never submits for approval). However, it does not explicitly name alternative tools for submission or approval workflows, leaving the agent to infer from sibling names.

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

create_standing_queryAInspect

Save a buyer-defined standing query (custom recipe): a named recruiting question plus the prompt and read-tool list the model should use to answer it. Validates the definition against this connector's registered read tools and rejects any write tool. Hosted deployments persist it per license and surface it in get_control_plane_capabilities under custom_recipes; the connector itself never executes recipes.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesShort human-readable title (3-120 chars).
reasonYesHuman-readable audit reason for this change. Must be at least 12 characters.
dry_runNoWhen true, validate and preview the change without sending a write request.
enabledNoDisabled queries stay saved but are not surfaced.
summaryYesWhat the query computes and what the output looks like (20-2000 chars).
actor_idYesGreenhouse user ID to send with this write.
recipe_idYesLowercase kebab-case slug identifying this standing query (3-64 chars). Re-using an existing slug replaces that saved query.
required_toolsYesRead tools (list_*/get_*) this query uses. Write tools are rejected.
prompt_markdownYesThe full recipe spec the model executes: tool choreography, computation, output format, traps (40-32000 chars). Stored and returned verbatim.
example_questionYesThe natural-language question a buyer would ask to run this (10-500 chars).
Behavior3/5

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

With no annotations, the description carries full burden. It discloses validation, persistence, and non-execution by the connector, and mentions that re-using a recipe_id replaces existing queries. However, it lacks details on authentication, idempotency, or side effects of overwriting.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (2-3 sentences) and front-loaded with the primary action. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (10 params, 8 required, no output schema), the description covers purpose, validation, persistence, and non-execution. It is mostly complete, though it does not mention the return value or error handling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are already well-described. The description adds context about validation of required_tools and replacement behavior for recipe_id, but does not significantly extend semantic understanding beyond the schema.

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

Purpose5/5

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

The description clearly states what the tool does: save a buyer-defined standing query (custom recipe). It specifies the components (name, prompt, read-tool list) and distinguishes it from sibling tools, which are mostly CRUD and list operations.

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

Usage Guidelines4/5

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

The description explains validation against read tools and rejection of write tools, as well as persistence and surface behavior. However, it does not explicitly state when to use this tool versus alternatives or when to use the dry_run parameter.

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

deprecate_offer_draftAInspect

Deprecate a created-status draft offer in Greenhouse. Refuses accepted or rejected offers and supports preview.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe offer ID to deprecate
reasonYesHuman-readable audit reason for this change. Must be at least 12 characters.
dry_runNoWhen true, validate and preview the change without sending a write request.
confirm_offer_patchYesMust be true to deprecate a draft offer.
on_behalf_of_user_idYesGreenhouse user ID to send with this write.
Behavior3/5

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

With no annotations, the description carries the transparency burden. It discloses refusal of non-created-status offers and preview support via dry_run, but does not explain what deprecation entails (e.g., status change, reversibility) 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words. The first sentence front-loads the purpose, and the second adds key behavioral notes. Ideal conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers basic purpose and two behaviors, but lacks details on outcome of deprecation, permissions, or the role of on_behalf_of_user_id. Given no output schema, more context on return values could help.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with parameter descriptions. The description adds marginal value beyond the schema, mainly reiterating preview capability. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action (deprecate), the resource (draft offer in Greenhouse), and qualifies the status (created-status). It distinguishes from siblings like create_offer_draft and patch_offer_* by specifying a distinct operation.

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

Usage Guidelines4/5

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

The description explicitly mentions that it refuses accepted or rejected offers, guiding the agent away from misuse. While it does not name alternatives, the tool's narrow scope makes usage clear.

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

get_applicationAInspect

Get a single application by ID. Returns full application details including status, candidate, job, stage, and answers.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe application ID
Behavior2/5

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

No annotations are provided, so the description must bear the full burden. It does not disclose behavioral traits such as permissions required, rate limits, or side effects. The read-only nature is implied but not stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two short, clear sentences with no redundant information. Every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has only one parameter and no output schema, the description adequately covers what the tool returns. It is complete enough for a simple retrieval operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already fully describes the single parameter with 100% coverage. The description adds minimal value beyond 'by ID', 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.

Purpose5/5

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

The description clearly identifies the action ('Get'), the resource ('application'), and specifies the scope ('by ID'). It also lists the returned fields, making it distinct from sibling list tools.

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

Usage Guidelines3/5

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

The description implies usage for retrieving a specific application by ID, but it does not provide explicit guidance on when to use this tool versus alternatives like list_applications or other detail tools.

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

get_candidateAInspect

Get a single candidate by ID. Returns full candidate profile including name, contact info, tags, and custom fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe candidate ID
Behavior3/5

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

No annotations provided, so description must convey behavior. It mentions returning a full profile but omits details on idempotency, rate limits, or error handling. Adequate for a simple 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no wasted words, all information presented efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description sufficiently outlines what it returns. Could mention error cases but not critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter 'id' is described in the schema as 'The candidate ID'. The description adds no additional meaning beyond the schema, leading to a baseline 3.

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

Purpose5/5

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

Clearly states the verb 'Get', resource 'single candidate', and lists key fields returned, distinguishing it from list_* tools.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives like list_candidates or patch_candidate_profile. Only implied by the mention of returning a full profile.

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

get_control_plane_capabilitiesAInspect

Show which Greenhouse recruiting-ops question and action tool families are currently available.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior2/5

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

No annotations are provided, so the description carries full burden. It only states the tool shows availability but discloses no behavioral traits like idempotency, side effects, or authentication requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence of 14 words that front-loads the purpose. No redundant information; every word is necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description is minimally sufficient for a simple discovery tool. It lacks information on output format or what 'currently available' entails.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, and the schema coverage is 100% by default. Per guidelines, baseline is 4. The description adds no extra parameter meaning, but none is needed.

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

Purpose5/5

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

The description clearly states the tool shows available Greenhouse recruiting-ops question and action tool families. It uses a specific verb ('Show') and resource ('tool families'), distinguishing it from sibling tools that perform individual operations.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives. It is implied that the tool is for discovering capabilities, but no direct comparison or when-not scenarios are provided.

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

get_jobAInspect

Get a single job by ID. Returns full job details including name, status, department, offices, and custom fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe job ID
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the basic action and return details, omitting information about error handling (e.g., if ID is invalid), permissions required, rate limits, or whether the operation is read-only. For a simple retrieval, more could be said to reassure the agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no extraneous text. It fronts the purpose and efficiently lists key return fields. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one required parameter, no output schema, no annotations), the description sufficiently explains what the tool does and what it returns. It mentions specific fields, which helps the agent understand the result shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (the 'id' parameter is described as 'The job ID'). The description adds that the ID is used to fetch the job, which is consistent but not enriching. Baseline at 3 is appropriate as the description provides marginal additional meaning.

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

Purpose5/5

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

The description clearly states the verb 'Get' and the resource 'a single job by ID', distinguishing it from siblings like list_jobs (which returns multiple jobs) and other get_ tools. It also specifies the returned fields (name, status, department, offices, custom fields), providing a complete purpose.

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

Usage Guidelines4/5

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

The description implies usage for retrieving a single job by its ID, which separates it from list_jobs that fetches multiple jobs. However, it does not explicitly state when not to use it or provide alternative tools, but the context is clear enough with the verb and resource.

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

get_offer_letter_contextAInspect

Build offer-letter drafting context for a single application or offer. Returns candidate contact fields, attachment metadata, application answers, offer custom fields, note bodies, and scorecard text when expanded access is available. Signed attachment URLs are opt-in via include_attachment_urls.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonYesHuman-readable audit reason for this change. Must be at least 12 characters.
offer_idNoOffer ID to build context for. Provide either offer_id or application_id.
notes_limitNoMaximum number of notes to include when include_notes=true.
include_notesNoWhen true, include note subjects and bodies for the application.
application_idNoApplication ID to build context for. Provide either application_id or offer_id.
include_scorecardsNoWhen true, include raw scorecard questions, answers, and attribute notes.
on_behalf_of_user_idYesGreenhouse user ID of the human approving this expanded data request.
include_attachment_urlsNoWhen true, include signed attachment URLs from the candidate profile.
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses two behavioral aspects: the need for 'expanded access' and the opt-in nature of signed attachment URLs via include_attachment_urls. However, it does not state whether the tool is read-only, idempotent, or has side effects. The on_behalf_of_user_id parameter being an approver ID adds context but is a parameter semantic, not a behavioral trait 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: three sentences that efficiently convey purpose, contents, and an optional parameter behavior. No wasted words or redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema, so the description should explain the response structure. It lists the data categories (candidate contact fields, attachment metadata, etc.) but does not specify the response format (e.g., JSON fields) or how the data is organized. For a composite tool, more detail on the return value would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds meaningful context beyond schema: it clarifies that offer_id and application_id are mutually exclusive ('Provide either...'), and that on_behalf_of_user_id is the approver's ID. It also explains that include_attachment_urls controls signed URLs. This adds value over the existing schema descriptions.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Build offer-letter drafting context for a single application or offer.' It specifies the resource (context for offer letter drafting) and the verb (build), and distinguishes itself from sibling tools that retrieve individual pieces of data (e.g., get_application, list_notes) by aggregating multiple data types.

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

Usage Guidelines3/5

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

The description implies usage context (for drafting offer letters) but does not explicitly state when to use this tool versus alternatives like get_application or list_scorecards individually. It mentions 'when expanded access is available,' which hints at permission requirements, but lacks clear guidance on when not to use it or comparison to siblings.

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

get_userBInspect

Get a single user by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe user ID
Behavior2/5

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

No annotations are provided, so the description must convey all behavioral context. It only states 'Get' implying a read operation, but fails to disclose any permission requirements, rate limits, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is front-loaded with the key action and resource. It is appropriately concise, though slightly more detail could be given without harming conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple get-by-ID tool, the description provides the essential information. However, there is no output schema, and the description does not hint at the return structure, which would be helpful. It is adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers 100% of parameters with a single 'id' parameter described as 'The user ID'. The description adds no additional semantic 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.

Purpose5/5

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

The description 'Get a single user by ID' clearly specifies the action (Get), the resource (user), and the unique identifier (by ID). This distinguishes it from sibling tools like list_users that retrieve multiple users.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as list_users or other get_* tools. No explicit when-to-use or when-not-to conditions are given.

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

list_applicationsBInspect

List applications in Greenhouse. Returns operational application fields for pipeline work: id, candidate_id, job_id, stage_id, stage_name, status, current_stage_at, and last_activity_at. Status can be active, rejected, hired, or converted.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated application IDs to filter by
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
statusNoFilter by application status
job_idsNoComma-separated job IDs to filter by
per_pageNoResults per page (1-500, default 100)
prospectNoFilter by prospect status (true for prospects, false for applicants)
stage_idsNoComma-separated interview stage IDs to filter by
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
source_idsNoComma-separated source IDs to filter by
stage_nameNoFilter applications by current stage name (exact match)
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
job_post_idsNoComma-separated job post IDs to filter by
referrer_idsNoComma-separated referrer IDs to filter by
candidate_idsNoComma-separated candidate IDs to filter by
last_activity_atNoFilter by last activity date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
prospective_job_idsNoComma-separated prospective job IDs to filter by
custom_field_option_idNoFilter by custom field option ID
Behavior2/5

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

With no annotations, the description should disclose behavioral traits. It only lists returned fields and status values, omitting pagination behavior, rate limits, auth requirements, or the fact that it's a read-only operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, consisting of two sentences. It front-loads the purpose and then adds specific details about returned fields, with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (17 optional parameters, no output schema, no annotations), the description is incomplete. It does not cover pagination, filtering behavior, or error handling, leaving the agent underinformed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all parameters are described in the schema. The description adds no new meaning beyond what the schema already provides (e.g., status enum values are exactly as in the schema).

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

Purpose5/5

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

The description clearly states 'List applications in Greenhouse', specifying the resource and action. It also details the returned fields, distinguishing it from get_application which returns a single application.

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

Usage Guidelines2/5

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 get_application or other list_* tools. It does not mention any preconditions or context for use.

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

list_application_stagesBInspect

List application stages from Greenhouse. Shows which interview stage each application is in, when they entered/exited, and whether it's their current stage.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated application stage IDs to filter by
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
currentNoFilter to only current (true) or non-current (false) stages
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
application_idsNoComma-separated application IDs to filter by
job_interview_stage_idsNoComma-separated job interview stage IDs to filter by
Behavior2/5

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

No annotations provided, so description should fully disclose behavior. It does not mention pagination, ordering, rate limits, or that the tool lists all stages by default unless filtered. Only describes output fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with main action. No redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but description adequately explains return fields (stage info, entry/exit times, current stage). Lacks mention of pagination behavior but overall sufficient for a list operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, baseline is 3. Description adds minimal parameter semantics; it implies filters like creation/update dates but does not elaborate beyond schema.

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

Purpose5/5

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

Description clearly states verb 'List', resource 'application stages', source 'Greenhouse', and details what info is provided ('which interview stage... current stage'). Distinguishes from sibling tools like get_application or list_applications.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool vs alternatives (e.g., list_applications, get_application). Does not mention when to avoid it or any prerequisites.

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

list_applied_candidate_tagsBInspect

List applied candidate tags in Greenhouse. Shows which tags have been applied to which candidates.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated applied candidate tag IDs to filter by
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
candidate_idsNoComma-separated candidate IDs to filter by
candidate_tag_idsNoComma-separated candidate tag IDs to filter by
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It does not disclose behavioral traits such as read-only nature, pagination behavior, or any side effects. The description merely restates the tool's basic function.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences, no redundant information, and front-loads the key purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters and no output schema, the description provides only the basic purpose. It does not explain the structure of results or how the mapping between candidates and tags is represented, leaving the agent to infer from the endpoint name.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds no extra meaning to the parameters beyond what the schema already provides. It does not explain parameter interactions or usage context.

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

Purpose5/5

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

The description clearly states the tool lists applied candidate tags and shows which tags are applied to which candidates. It distinguishes itself from sibling list_candidate_tags by specifying the scope (applied tags vs. all tags).

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like list_candidate_tags. The description does not mention filtering strategies or when not to use it.

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

list_approval_flowsCInspect

List approval flows in Greenhouse. Shows job/offer approval workflows, their status (pending/rejected/approved), and whether they are sequential.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated approval flow IDs
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
job_idsNoComma-separated job IDs
per_pageNoResults per page (1-500, default 100)
offer_idsNoComma-separated offer IDs
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
approval_typeNoFilter by approval type
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions the displayed fields (status, sequential) but fails to disclose the read-only nature, pagination behavior, any rate limits, or required permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is concise, front-loaded, and contains no redundant or extraneous information. Every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite the tool having 8 parameters and no output schema, the description is brief and lacks details about pagination (implied by cursor/per_page), filtering options, and the return structure. It only mentions a subset of what is shown.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage, with all 8 parameters described. The description does not add extra meaning to the parameters beyond what the schema already provides, so it meets the baseline of 3.

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

Purpose4/5

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

The description clearly states the verb 'list' and the resource 'approval flows' within Greenhouse. It specifies what is shown (status, sequential). However, it does not explicitly distinguish itself from sibling list tools, such as list_approvers or list_approver_groups.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives (e.g., other list_* tools for related resources) or any prerequisites or context for its use.

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

list_approver_groupsBInspect

List approver groups in Greenhouse. Shows groups of approvers within approval flows.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated approver group IDs
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states it's a list operation but does not disclose if it's read-only, pagination behavior, ordering, or rate limits. The schema includes cursor and per_page, but the description omits how pagination works.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose. No wasted words, but could include brief mention of pagination or filtering to improve utility while remaining concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 5 parameters, no output schema, and no annotations, the description is too brief. It lacks explanation of pagination mechanics, filtering behavior (e.g., cursor as exclusive filter), and default results. The schema details are not reflected in the description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description does not add any additional meaning beyond what the schema already provides for parameters (ids, cursor, per_page, created_at, updated_at).

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

Purpose5/5

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

The description clearly states 'List approver groups in Greenhouse' with the resource 'approver groups' and verb 'list'. It distinguishes from sibling tools like list_approval_flows and list_approvers by specifying that it shows groups of approvers within approval flows.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives (e.g., list_approvers, list_approval_flows). No mention of prerequisites, use cases, or when not to use it.

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

list_approversCInspect

List individual approvers in Greenhouse.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated approver IDs
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
Behavior2/5

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

No annotations are provided, and the description does not disclose behaviors like pagination, required permissions, or rate limits. The input schema includes cursor and filters, but the description doesn't explain how they affect results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise and front-loaded. However, it borders on under-specification given the tool's complexity (5 parameters with pagination).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema and no annotations leave the description to cover all behavioral and return-value aspects. It fails to explain pagination, filtering behavior, or the structure of the response, making it incomplete for a tool with 5 parameters and cursor-based pagination.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond what the schema already provides for the five parameters.

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

Purpose4/5

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

The description clearly states the verb 'List' and the resource 'individual approvers in Greenhouse', making the tool's purpose distinct from siblings like list_approver_groups. However, it lacks specificity on scope (e.g., all approvers or filtered).

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as list_approver_groups or list_approval_flows. The description does not provide context 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.

list_blocked_spam_sourcesBInspect

List blocked spam sources in Greenhouse.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated blocked spam source IDs
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only says 'List blocked spam sources' without disclosing any behavioral traits such as pagination, filtering behavior, or that it is a read-only operation. The input schema implies filters, but the description adds no behavioral context beyond the name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no wasted words. It is appropriately sized and front-loaded with the key action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having five optional parameters with filters and pagination, the description provides no explanation of how to use these features or what the return format looks like. With no output schema, the description should at least hint at the structure of the response, but it does not. The tool is not fully documented for an agent to use correctly without external knowledge.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all five parameters thoroughly (ids, cursor, per_page, created_at, updated_at). The description adds no additional meaning beyond what is 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.

Purpose5/5

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

The description clearly states 'List blocked spam sources in Greenhouse,' which is a specific verb-resource combination. Among many sibling tools starting with 'list_', none are for blocked spam sources, so it clearly distinguishes itself.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention any prerequisites, when not to use it, or how it differs from other list tools. Without any context, the agent must infer usage.

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

list_bulk_requestsAInspect

List bulk operation requests in Greenhouse. Shows status, record counts, and completion details for bulk operations.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated bulk request IDs
activeNoFilter by active status
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
bulk_action_uuidNoFilter by bulk action UUID
Behavior3/5

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

No annotations provided, so description carries burden. Mentions output details (status, counts, completion) but does not disclose side effects, authentication needs, or default behavior. For a list tool, moderate transparency but lacks pagination and sorting behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with the main purpose. No unnecessary words or duplication.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters and cursor-based pagination, the description is incomplete. It does not explain pagination behavior, the constraint that 'cursor' must be the only filter, or default sorting. Output details are partially covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with clear parameter descriptions. The description adds no additional meaning beyond what the schema provides, so baseline 3 is appropriate.

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

Purpose5/5

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

Description clearly states the tool lists bulk operation requests in Greenhouse, with specific details on output (status, record counts, completion details). The verb 'list' and resource 'bulk operation requests' are specific and distinct from sibling tools.

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

Usage Guidelines2/5

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. Does not specify context such as prerequisites or when not to use it. Among siblings, only this tool handles bulk requests, but still no usage direction provided.

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

list_candidate_attribute_typesCInspect

List candidate attribute type definitions in Greenhouse.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated attribute type IDs
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits like pagination behavior, data freshness, authentication requirements, or side effects. The description is merely a one-line summary.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short (one sentence), but it is under-specified, lacking necessary context about pagination, filtering, and response format. It sacrifices completeness for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 5 parameters including pagination and complex filters, the description should mention response structure or pagination behavior. No output schema exists, so the description must cover these aspects, but it does not. It is incomplete 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 5 parameters are fully described in the input schema (100% coverage), so the description adds no additional 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.

Purpose4/5

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

The description clearly states the tool lists candidate attribute type definitions, identifying the resource and action. However, among many sibling list_* tools (e.g., list_candidates, list_candidate_tags), it does not differentiate, so it is clear but not distinctive.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, such as other list tools or search tools. There is no mention of when not to use it or prerequisites.

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

list_candidate_educationsBInspect

List candidate education records in Greenhouse.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated education record IDs
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
Behavior2/5

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

With no annotations, the description carries the full burden but only states 'List candidate education records', omitting critical behavioral details such as pagination behavior (despite a cursor parameter), rate limits, or the structure of returned data. It is not misleading, but severely lacking.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the tool's purpose. It is not verbose, though it could be slightly expanded to include usage hints without sacrificing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the 5 parameters, no output schema, and no annotations, the description is woefully incomplete. It fails to explain the record format, pagination details beyond parameter hints, or filter behavior, leaving much to be inferred from the schema alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds no additional parameter meaning beyond what the schema already provides, thus no bonus.

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

Purpose5/5

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

The description 'List candidate education records in Greenhouse' clearly states the verb (list), resource (candidate education records), and platform (Greenhouse), distinguishing it from sibling tools that list other resources like applications or candidates.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool vs alternatives, nor are there any prerequisites or exclusions mentioned. The description simply states what it does without contextual advice.

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

list_candidate_employmentsCInspect

List candidate employment history records in Greenhouse.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated employment record IDs
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure but fails to mention pagination (though hinted in the schema), rate limits, or any side effects. The description is too sparse to inform the agent of important operational traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at one sentence, which is efficient and front-loaded. However, it may be too minimal, sacrificing completeness for brevity. Still, it earns a 4 for avoiding unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (5 parameters, no output schema, no annotations), the description is insufficient. It does not explain the output format, default behavior, or how results relate to candidates. The agent lacks critical context for reliable invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds no additional context beyond what the schema provides, such as parameter relationships or usage patterns. It does not compensate for any gaps.

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

Purpose4/5

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 'candidate employment history records in Greenhouse', which differentiates it from sibling tools like list_candidate_educations. However, it does not specify that the list is scoped to a candidate, which could be inferred from the tool name but is not explicit.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (e.g., list_candidates, list_applications). There is no mention of prerequisites or context, leaving the agent to infer usage without support.

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

list_candidatesAInspect

List candidates in Greenhouse. By default returns a projected minimal view: per-candidate metadata only (id, last_activity_at, stage_snapshot, tag_ids, private). detail_profile=contact broadens the projection to include candidate name, primary contact fields, LinkedIn URL, location, and attachment metadata; signed attachment URLs remain opt-in via include_attachment_urls and require a reason.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated candidate IDs to filter by
tagNoFilter by candidate tag name
emailNoFilter by email address
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
reasonNoRequired when detail_profile requests a broadened response shape.
privateNoFilter by private/confidential status
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
detail_profileNoProjection profile. Default is minimal; contact broadens the candidate contact surface and requires a reason.
last_activity_atNoFilter by last activity date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
custom_field_option_idNoFilter by custom field option ID
include_attachment_urlsNoOnly valid with detail_profile=contact. When true, includes signed attachment URLs.
Behavior4/5

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

With no annotations, the description carries the full burden. It explains the default minimal view, the broadened contact view, and that signed attachment URLs require opt-in. It also mentions pagination via cursor, though it doesn't elaborate on pagination behavior. Overall, it provides sufficient behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences. It front-loads the main purpose and follows with detail on projection modes. Every sentence contributes meaning with no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 13 parameters, no output schema, and no annotations, the description covers key behavioral aspects: projection modes, data returned, and parameter interactions. It does not explicitly mention response pagination, but the schema covers cursor behavior. Overall, it is fairly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining the interaction between detail_profile, include_attachment_urls, and reason, and by clarifying date filter format (operator|ISO8601) beyond schema descriptions.

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

Purpose5/5

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

The description clearly states the tool lists candidates in Greenhouse and distinguishes between two projection profiles (minimal and contact), specifying the returned fields for each. This differentiates it from sibling tools like get_candidate.

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

Usage Guidelines3/5

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

While the description mentions that detail_profile=contact broadens the projection and requires a reason, it does not explicitly state when to use this tool versus alternatives like get_candidate or list_applications. The context implies listing multiple candidates, but lacks explicit when-not or alternative guidance.

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

list_candidate_tagsBInspect

List all candidate tags defined in Greenhouse. Tags are labels that can be applied to candidates for categorization.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated candidate tag IDs to filter by
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states 'list all' but the schema includes filter parameters, creating ambiguity. No mention of pagination, authorization, or return format. This under-disclosure for a tool with no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences efficiently convey purpose and context. No redundant or irrelevant information. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and a moderate-complexity tool with 5 parameters, the description is too minimal. It lacks information on return structure, pagination, filtering behavior, and differentiation from similar list tools like list_applied_candidate_tags.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents each parameter. The description adds no additional parameter meaning beyond the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description uses the verb 'list' with the resource 'candidate tags' and specifies scope 'all defined in Greenhouse', clearly distinguishing it from sibling 'list_applied_candidate_tags' which lists tags applied to a candidate.

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

Usage Guidelines3/5

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

The description implies usage for browsing available tags but does not explicitly state when to use this vs alternatives (e.g., list_applied_candidate_tags). No when-not-to-use guidance or exclusions provided.

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

list_close_reasonsBInspect

List all close reasons in Greenhouse. Close reasons are used when closing a job to indicate why it was closed.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated close reason IDs to filter by
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
Behavior2/5

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

No annotations exist, and the description offers no behavioral details such as pagination behavior, idempotency, rate limits, or effect on system state. It only states the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two sentences, no fluff. However, it could be slightly more informative without bloating, such as mentioning typical use or return structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool without output schema, the description adequately identifies the resource but does not mention what the response contains (e.g., list of close reason objects) or any caveats about pagination.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed descriptions for each parameter. The description adds no extra meaning beyond the schema, but is not required to due to high coverage. Baseline 3.

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

Purpose5/5

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

The description clearly states the verb 'List' and the resource 'close reasons in Greenhouse', and explains their use in closing a job. It distinguishes this tool from other list_ tools by specifying the exact resource type.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like list_rejection_reasons or other list_ tools. The agent is left to infer context from the name alone.

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

list_custom_field_departmentsCInspect

List custom field to department mappings in Greenhouse.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated mapping IDs
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
Behavior2/5

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

No annotations are present, so the description must disclose behavioral traits. It only states the action without explaining pagination behavior (cursor requirement, iteration), idempotency, rate limits, or required permissions. Key schema constraints like 'cursor must be the only filter' are omitted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise (7 words) but lacks structure and essential details. While brevity is positive, it sacrifices coverage of usage context and behavioral notes, making it borderline adequate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 5 parameters with pagination and date filters, and no output schema, the description should explain what the tool returns (e.g., list of mappings with details) and proper usage patterns. It fails to provide a complete picture, especially for new users.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% parameter descriptions covering format and constraints, so the description adds no additional value beyond the schema. Baseline of 3 is appropriate as the schema already provides sufficient semantic detail.

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

Purpose4/5

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

The description clearly states the verb 'List' and the resource 'custom field to department mappings', which distinguishes it from sibling tools like list_custom_fields or list_departments. However, it does not elaborate on what constitutes a mapping or any scope, leaving minor ambiguity.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as list_custom_field_offices or list_custom_fields. No prerequisites, use cases, or exclusions are mentioned, forcing the agent to rely solely on the tool name.

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

list_custom_field_officesBInspect

List custom field to office mappings in Greenhouse.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated mapping IDs
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only states that it lists mappings, but does not mention pagination, authentication requirements, rate limits, or the fact that it is a read-only operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no wasted words. It could benefit from slightly more context, but it is not overly verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the 5 parameters, no output schema, and no annotations, the description is incomplete. It does not explain the response format, pagination, or filtering capabilities, which are essential for a list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the input schema already describes all parameters. The description adds no additional meaning beyond that. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states 'List custom field to office mappings in Greenhouse,' which uses a specific verb (List) and a specific resource (custom field to office mappings). It effectively distinguishes from sibling tools like list_custom_field_departments and list_custom_fields.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus the many sibling list tools. It does not mention that it is specifically for mappings, nor does it provide any context about when to prefer it over alternatives.

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

list_custom_field_optionsBInspect

List custom field option values in Greenhouse. Shows the available choices for single_select and multi_select custom fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated custom field option IDs
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
Behavior2/5

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

No annotations provided; description carries full burden but only says 'list' with no behavioral details (e.g., read-only, authentication, pagination behavior, or effect of filters). Lacks disclosure of important traits beyond the minimal listing functionality.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two-sentence description is concise, front-loaded with purpose, and contains no extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter tool with no output schema and no annotations, the description omits key context: return format, pagination behavior, cursor interaction, and filtering semantics. Does not fully compensate for missing structured information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with each parameter described. Description adds marginal value by scoping to single_select/multi_select but does not elaborate on how parameters filter or combine beyond the schema.

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

Purpose5/5

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

Description clearly states it lists custom field option values for single_select and multi_select custom fields in Greenhouse, distinguishing from sibling tools like list_custom_fields that list the fields themselves.

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

Usage Guidelines3/5

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

Description implies usage for retrieving options of specific custom field types but provides no explicit guidance on when to use this vs alternatives like list_custom_fields, nor any prerequisites or exclusions.

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

list_custom_fieldsAInspect

List custom field definitions in Greenhouse. Shows field names, types, and which object they apply to (job, candidate, application, offer, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated custom field IDs
nameNoFilter by field name
activeNoFilter by active status
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
name_keyNoFilter by field name key
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
field_typeNoFilter by field type (job, opening, candidate, application, offer, etc.)
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It mentions the output fields but does not disclose pagination behavior, filtering defaults, or any side effects. For a read-only list tool, the description is minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, with the main action and output clearly stated in the first sentence. No redundant or irrelevant information; every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the 9 parameters with full schema descriptions and no output schema, the description is adequate but incomplete. It does not mention pagination (cursor parameter) or how filtering interacts, nor does it explain the return format. However, it covers the core return fields well enough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, so the schema already explains all 9 parameters. The description does not add any extra meaning or usage examples beyond what is in the schema, meeting the baseline expectation.

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

Purpose5/5

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

The description clearly states the verb 'List', the resource 'custom field definitions', and specifies what information is shown (field names, types, applicable objects). It effectively differentiates from sibling list_* tools that list other entities.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool vs alternatives. While the resource is clear, the description does not mention prerequisites, exclusions, or trade-offs compared to other list tools. Usage is implied but not elaborated.

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

list_default_interviewersBInspect

List default interviewers configured for interview stages in Greenhouse.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated default interviewer IDs
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
Behavior2/5

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

No annotations provided; description is too brief to disclose behavioral traits like pagination, caching, or auth requirements. The schema shows pagination parameters but the description adds no extra context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no fluff, directly states purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema and no annotations. Description fails to explain return structure, default values, or any usage notes beyond the bare listing purpose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all 5 parameters with descriptions, so baseline 3. Description adds no additional meaning beyond the schema.

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

Purpose5/5

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

Clearly states the verb 'List', resource 'default interviewers', and context 'for interview stages in Greenhouse'. Differentiates from sibling 'list_interviewers' which lists all interviewers.

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

Usage Guidelines3/5

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

Implies usage for fetching default interviewers but no explicit guidance on when to use this vs. alternatives like list_interviewers or list_interview_stages.

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

list_departmentsCInspect

List departments in Greenhouse.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated department IDs to filter by
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
Behavior2/5

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

No annotations are provided, so the description bears the full burden. It only states 'list' which implies a read operation but does not disclose pagination behavior, rate limits, authentication needs, or that results are paginated (though parameters hint at it). The description is too minimal to inform the agent about behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no fluff, making it efficient. However, it is arguably too minimal, missing context that would be expected for a tool with 5 parameters and many siblings. Still, it is front-loaded with the verb and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of annotations and output schema, the description should provide more contextual completeness (e.g., what a department record contains, pagination behavior, filtering combinations). The 5-parameter schema is well-documented, but the description does not tie together the tool's overall behavior or differentiate it from siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and each parameter is well-documented in the schema itself. The description adds no additional 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.

Purpose4/5

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 'departments', making its purpose understandable. However, it does not differentiate from numerous sibling 'list_*' tools (e.g., list_offices, list_jobs), which all share the same pattern, so no sibling distinction is provided.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives like list_offices or list_custom_field_options. There is no mention of prerequisites, context, or exclusions, leaving the agent without direction for selecting this tool.

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

list_email_templatesAInspect

List email templates in Greenhouse. Returns template details including name, subject, body, and email type when expanded access is available.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated email template IDs to filter by
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
email_typeNoFilter by email template type (e.g. candidate_rejection, candidate_email, take_home_test_email, scorecard_reminder, etc.)
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
on_behalf_of_user_idYesGreenhouse user ID of the human approving this expanded data request.
Behavior3/5

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

Without annotations, the description carries the full burden. It mentions that details are returned 'when expanded access is available,' hinting at permission requirements. However, it does not disclose error handling, rate limits, or the read-only nature of the operation, leaving gaps in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise at two sentences, with the first sentence stating the core purpose and the second adding return details. It is front-loaded and wastes no words, though it could be slightly more structured for machine parsing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the return fields and conditional access, but lacks details on pagination (despite cursor/per_page parameters), error conditions, and common use cases. Given the complexity of 7 parameters and no output schema, it is moderately complete but leaves several aspects unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the input schema already documents all 7 parameters with descriptions. The tool description adds no parameter-specific information beyond naming return fields (name, subject, etc.), which are not parameters. Thus, the description does not enhance parameter semantics beyond the baseline.

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

Purpose5/5

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

The description clearly states the verb 'list' and the resource 'email templates in Greenhouse', making the tool's purpose unambiguous. It also mentions that it returns details like name, subject, body, and email type, which distinguishes it from sibling list tools that focus on different resources.

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

Usage Guidelines3/5

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

The description implies usage for listing email templates but provides no explicit guidance on when to use this tool versus alternatives. There are no direct sibling tools for email templates, so the context is clear, but the lack of any when-to-use or when-not-to-use instructions results in a baseline score.

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

list_focus_candidate_attributesCInspect

List focus candidate attributes in Greenhouse.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated focus attribute IDs
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as pagination, rate limits, or mutation effects. The input schema implies pagination via 'cursor' and 'per_page' parameters, but the description fails to explain this behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence at 6 words, with no wasted text. While efficient, it lacks the depth needed for a tool with multiple filtering parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and limited context, the description is incomplete for a list tool. It does not explain return values, sorting, or the meaning of 'focus candidate attributes'. The agent may struggle to interpret results or paginate correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers all 5 parameters with descriptions, achieving 100% coverage. The description adds no additional semantic meaning beyond the schema, so a baseline of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the tool lists 'focus candidate attributes' in Greenhouse, specifying the resource type and platform. However, it does not differentiate this from similar sibling tools like list_candidate_attribute_types, leaving ambiguity about what 'focus candidate attributes' specifically are.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With many sibling list tools, the agent lacks context on the appropriate use case, prerequisites, or exclusions.

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

list_future_job_permissionsBInspect

List future job permission grants in Greenhouse. Shows advance permission scheduling for users.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated future permission IDs
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states it lists and shows advance permissions but does not mention pagination, authentication requirements, or that results are read-only. Minimal behavioral context beyond the name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words. Essential information is front-loaded and the description is appropriately sized for its purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite 5 optional parameters and no output schema, the description omits important context such as default ordering, pagination behavior, or return format. It does not explain what 'future' means in terms of date thresholds or how the list is scoped.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with each parameter having a description in the schema. The tool description adds no additional meaning beyond what the schema already 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.

Purpose5/5

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

Description clearly states 'List future job permission grants' with a specific verb and resource. It adds 'Shows advance permission scheduling for users' to clarify the concept, distinguishing it from sibling tools like list_user_job_permissions which likely list current permissions.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives. The purpose is implied (when needing to see scheduled future permissions), but no 'when-not' or mention of related tools like list_user_job_permissions.

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

list_interviewersCInspect

List interviewers assigned to interviews in Greenhouse.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated interviewer IDs
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
Behavior2/5

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

With no annotations, the description carries full burden. It only states the basic listing function, omitting behavioral details like pagination (cursor/per_page), read-only nature, or any side effects. The schema provides parameter details, but the description adds no 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence. It is front-loaded but lacks important information for effective tool use, making it adequate but not excellent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (5 parameters, no output schema, many sibling list tools), the description is insufficient. It fails to mention return format, pagination behavior, or how it differs from similar tools, leaving gaps for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds no extra meaning beyond the schema, which already describes parameters well (e.g., comma-separated IDs, pagination cursor format).

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

Purpose4/5

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

The description clearly states the verb 'List' and the resource 'interviewers assigned to interviews in Greenhouse', providing a specific purpose. However, it does not differentiate from sibling list tools like list_default_interviewers or list_users, which could cause ambiguity.

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

Usage Guidelines2/5

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., list_default_interviewers) or when not to use it. The description lacks context for selection.

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

list_interviewer_tagsBInspect

List interviewer tags in Greenhouse. Tags categorize interviewers by skill or role.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated interviewer tag IDs
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
Behavior2/5

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

With no annotations, the description carries full burden but only states the basic purpose, omitting details like idempotency, pagination behavior, authorization needs, or return format. The schema provides pagination parameters, but the description does not connect them to behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences with no extraneous information. The primary action is stated first, and the secondary sentence adds relevant context about tag purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the high-level purpose but lacks details about return values (no output schema), pagination, or filtering behavior beyond what the schema implies. It is adequate but not comprehensive for a tool with five optional parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all five parameters. The tool description adds no additional parameter-level meaning beyond what the schema already provides, meeting the baseline for this dimension.

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

Purpose5/5

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

The description clearly states the action ('List interviewer tags') and the resource ('in Greenhouse'), and adds context about what tags represent ('categorize interviewers by skill or role'), distinguishing it from sibling tools like list_interviewers.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (e.g., list_candidate_tags), and there are no explicit when-to-use or when-not-to-use conditions, leaving the agent to infer from the name alone.

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

list_interview_kitsAInspect

List interview kits in Greenhouse. Shows exercises, anonymization settings, and which job/interview stage they belong to when expanded access is available.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated interview kit IDs
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
job_idsNoComma-separated job IDs
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
job_interview_idsNoComma-separated job interview IDs
on_behalf_of_user_idYesGreenhouse user ID of the human approving this expanded data request.
Behavior3/5

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

Without annotations, the description carries full burden. It discloses that certain fields require 'expanded access', which is a behavioral trait. However, it omits mention of pagination, required on_behalf_of_user_id, or how filters affect output.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence, front-loaded with the action and resource. 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.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 8 parameters and no output schema, the description is minimal. It explains the output content but lacks explanation of filtering, pagination, or how to use cursor. Schema covers some, but more context would help.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed parameter descriptions. The description adds no additional meaning or context for any parameter, matching the baseline score for high coverage.

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

Purpose5/5

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

The description clearly states the tool lists interview kits in Greenhouse, and specifies the output fields (exercises, anonymization settings, job/interview stage). This distinguishes it from siblings like list_interviews which list individual interviews.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool vs alternatives. The description does not mention any prerequisites, common scenarios, or exclusions for using this list tool.

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

list_interviewsBInspect

List interviews in Greenhouse. Returns actual interview events with status, times, organizer, application, and job. Status values: to_be_scheduled, scheduled, awaiting_feedback, complete, skipped, collect_feedback, to_be_sent, sent, received.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated interview IDs
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
statusNoFilter by status
ends_atNoFilter by end time. Format: operator|ISO8601
job_idsNoComma-separated job IDs
per_pageNoResults per page (1-500, default 100)
starts_atNoFilter by start time. Format: operator|ISO8601
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
organizer_idsNoComma-separated organizer user IDs
application_idsNoComma-separated application IDs
job_interview_idsNoComma-separated job interview IDs
Behavior3/5

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

No annotations provided; description indicates read-only listing with returned fields. It does not disclose pagination, rate limits, or error behavior, but it is not misleading.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, first containing the purpose, second listing status values. Concise and front-loaded, though the status list could be formatted for readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Twelve parameters, no output schema, no annotations. Description explains return fields but does not cover pagination, date filter formats, or common usage patterns. Schema fills many gaps, but description could add more context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with parameter descriptions. The description adds no param details beyond the schema (e.g., mentioning status values repeats the enum). Baseline score of 3 applies.

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

Purpose4/5

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

The description clearly states the tool lists interviews in Greenhouse and specifies returned fields (status, times, organizer, application, job). It distinguishes from siblings like list_scheduled_interviews by mentioning 'actual interview events' and a broad list of statuses, but does not explicitly differentiate.

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

Usage Guidelines3/5

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

The description lists status values, hinting at filtering, but provides no explicit guidance on when to use this tool vs. alternatives (e.g., list_scheduled_interviews). Usage context is implied but not clearly stated.

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

list_job_board_custom_locationsCInspect

List custom locations defined on job boards in Greenhouse.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated location IDs to filter by
activeNoFilter by active status
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
greenhouse_job_board_idsNoComma-separated job board IDs to filter by
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only states 'List' which implies read-only, but lacks details on side effects, authorization needs, rate limits, or whether it returns paginated results. The description is insufficient for safe invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence, front-loaded with the verb and resource. No extra words or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 7 parameters and no output schema or annotations, the description is too brief. It does not explain return format, pagination behavior, or common usage patterns, making it incomplete for an agent to understand the tool fully.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds no additional meaning to parameters beyond the schema, which already has clear descriptions for each parameter.

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

Purpose4/5

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

The description clearly states the action (List) and resource (custom locations on job boards in Greenhouse). It avoids tautology and distinguishes from other list tools by specifying 'custom locations' and 'job boards', but it is brief and could be more precise about the context.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, when not to use, or differentiation from the many sibling list tools.

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

list_job_candidate_attributesBInspect

List candidate attributes configured on jobs in Greenhouse. These define the evaluation criteria for candidates on a specific job.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated attribute IDs to filter by
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
job_idsNoComma-separated job IDs to filter by
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
candidate_attribute_type_idsNoComma-separated candidate attribute type IDs to filter by
Behavior2/5

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

No annotations provided, so description must carry full burden. It only states basic purpose without disclosing pagination behavior, read-only nature, or any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with action and resource, no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, yet description does not indicate return format or fields. For a tool with 7 optional parameters, it lacks completeness about filtering and pagination.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds no additional meaning to parameters beyond what schema already provides.

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

Purpose5/5

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

The description clearly states it lists candidate attributes configured on jobs and defines evaluation criteria. It distinguishes purpose from sibling list tools by specifying the resource.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. Does not mention prerequisites or context for invocation.

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

list_job_hiring_managersCInspect

List hiring managers assigned to jobs in Greenhouse.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated hiring manager assignment IDs to filter by
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
job_idsNoComma-separated job IDs to filter by
per_pageNoResults per page (1-500, default 100)
user_idsNoComma-separated user IDs to filter by
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
Behavior2/5

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

No annotations provided, so description must convey behavioral traits. It does not mention read-only, pagination, or data scoping beyond the schema parameters. Minimal behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single short sentence, front-loaded with purpose. Efficient but could include more context without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 parameters and no output schema, the description lacks high-level context about return format, pagination, or practical use. It is too minimal for full completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The one-line description adds no extra meaning to parameters; schema already describes them.

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

Purpose4/5

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

Description clearly states it lists hiring managers assigned to jobs in Greenhouse, providing a specific verb and resource. It distinguishes from siblings like list_job_owners, but could be more explicit about the scope.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like list_job_owners or other list tools. The description provides no context for selection.

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

list_job_interviewsAInspect

List interviews configured on jobs in Greenhouse. Shows interview details including scheduling type, duration, and instructions.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated interview IDs to filter by
activeNoFilter by active status
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
job_idsNoComma-separated job IDs to filter by
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
scheduling_typeNoFilter by scheduling type
job_interview_stage_idsNoComma-separated interview stage IDs to filter by
Behavior3/5

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

With no annotations provided, the description must convey behavioral traits. It states the tool 'List interviews' and 'Shows interview details', implying a read-only operation. However, it does not explicitly mention that the operation is non-destructive, nor does it disclose any authentication requirements, rate limits, or response characteristics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of 16 words, very concise and front-loaded. It conveys the core purpose efficiently, though a second sentence could add context without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 9 optional parameters and no output schema, the description provides the basic purpose and details returned. It does not explain return format, pagination, or how to effectively use the filters. Adequate but not thorough for a tool with many parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with each parameter having a description. The tool description itself adds no additional information beyond what is already in the input schema, 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.

Purpose5/5

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 configured on jobs', and specifies the details shown (scheduling type, duration, instructions). It distinguishes itself from sibling tools like 'list_interviews' and 'list_scheduled_interviews' by focusing on configuration-level interviews.

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

Usage Guidelines3/5

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

The description implies that this tool is for configured interviews on jobs, which helps differentiate from other interview-related tools, but it does not explicitly state when to use this tool versus alternatives like 'list_interviews' or 'list_scheduled_interviews'. No 'when not to use' guidance is provided.

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

list_job_interview_stagesBInspect

List interview stages (pipeline stages) configured on jobs in Greenhouse. Shows the interview pipeline structure.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated stage IDs to filter by
activeNoFilter by active status
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
job_idsNoComma-separated job IDs to filter by
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
Behavior2/5

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

With no annotations provided, the description bears the full burden. It only states what the tool does but does not disclose behavioral traits such as read-only nature, authentication requirements, rate limits, or pagination behavior beyond what is implied by the schema parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences, front-loaded with the main action and resource. Every word adds value; no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although the schema documents parameters well, the description lacks information about the response format or structure. Since there is no output schema, the tool is incomplete for an agent to understand what it returns beyond 'pipeline structure'. Pagination support is hinted by the cursor parameter but not described.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (all 7 parameters have descriptions). The description adds no additional meaning beyond what the schema already provides, so a baseline score of 3 is appropriate.

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

Purpose5/5

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 'interview stages (pipeline stages)' and specifies they are 'configured on jobs in Greenhouse', distinguishing it from sibling tools like list_application_stages and list_job_interviews.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives, nor does it state prerequisites or exclusions. While the context 'configured on jobs' implies usage for job pipeline stages, it lacks explicit differentiation among many list_* siblings.

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

list_job_notesCInspect

List notes on jobs in Greenhouse. Notes contain comments/observations about jobs made by team members.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated note IDs to filter by
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
job_idsNoComma-separated job IDs to filter by
per_pageNoResults per page (1-500, default 100)
user_idsNoComma-separated user IDs to filter by (note authors)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
visibilityNoFilter by visibility level
Behavior2/5

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

No annotations provided, so the description must carry the burden. It only states the tool lists notes, without disclosing behavioral traits like pagination, read-only nature, or response format. Schema hints at pagination via cursor/per_page, but description adds no transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no fluff, but could benefit from a brief note on results or pagination. Efficient for a simple list tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 parameters and no output schema, the description lacks context on return structure, pagination behavior, or how filters interact. Schema helps but needed more context for completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with each parameter described clearly. The description adds no additional meaning beyond what the schema provides, so baseline 3 is appropriate.

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

Purpose4/5

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

The description clearly states it lists notes on jobs, specifying the resource as 'notes on jobs in Greenhouse'. However, it does not explicitly differentiate from the sibling tool 'list_notes' (likely for candidate notes), leaving ambiguity.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like 'list_notes' or how to combine with other tools. The description only states the function without context for appropriate use.

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

list_job_ownersBInspect

List owners (recruiters, sourcers, coordinators) assigned to jobs in Greenhouse.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated owner assignment IDs to filter by
typeNoFilter by owner type
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
job_idsNoComma-separated job IDs to filter by
per_pageNoResults per page (1-500, default 100)
user_idsNoComma-separated user IDs to filter by
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
Behavior2/5

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

No annotations; description does not mention pagination, read-only nature, or any behavioral traits beyond the schema. Schema covers parameters but description adds no 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no waste. Could be expanded slightly for clarity without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 parameters, no output schema, and no behavioral context, description is too minimal. Does not explain pagination, response shape, or usage nuances.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. Description does not add any parameter meaning beyond what schema provides.

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

Purpose5/5

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

Clearly states verb 'list', resource 'owners', and context 'assigned to jobs'. Distinguishes from sibling mutation tools (add/remove) by being a read operation.

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

Usage Guidelines3/5

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

No explicit when-to-use or alternatives, but implied by being a list tool among mutation siblings. Lacks explicit guidance for filtering scenarios.

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

list_job_post_locationsCInspect

List locations associated with job posts in Greenhouse.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated location IDs to filter by
typeNoFilter by location type
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
office_idsNoComma-separated office IDs to filter by
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
job_post_idsNoComma-separated job post IDs to filter by
custom_location_idsNoComma-separated custom location IDs to filter by
plain_text_locationNoFilter by plain text location value
Behavior2/5

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

No annotations provided; description only states 'list locations' without disclosing behavior like pagination, cursor usage, or side effects. Relies entirely on schema for behavioral cues.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no extraneous words. Very concise, though could benefit from additional context without harming conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 10 parameters and no output schema, description is too minimal. Does not explain return format, pagination, or any constraints beyond schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed parameter descriptions. Description adds no additional meaning beyond the schema, so baseline score of 3 applies.

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

Purpose4/5

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

Clearly states it lists locations associated with job posts. 'List' is a specific verb and 'locations associated with job posts' identifies the resource. Distinguished from sibling list tools like 'list_job_posts' and 'list_job_board_custom_locations' though not explicitly.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives. Siblings include 'list_job_board_custom_locations' which may overlap. No when-not or alternative recommendations.

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

list_job_postsBInspect

List job posts in Greenhouse. Job posts are the public or internal postings of a job, including title, content, and questions.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated job post IDs to filter by
liveNoFilter by live status (live post on a live job board)
activeNoFilter by active status
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
job_idsNoComma-separated job IDs to filter by
featuredNoFilter by featured status
internalNoFilter by internal posting status
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
job_board_idsNoComma-separated job board IDs to filter by
Behavior2/5

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

No annotations are present, so the description must disclose behavioral traits. It fails to mention important constraints like cursor exclusivity or pagination behavior, which are only in 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two front-loaded sentences, but lacks deeper behavioral details. It is not overly verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 11 optional parameters with special constraints (e.g., cursor exclusivity, date format), the description is too sparse. It does not cover pagination, response format, or operational nuances.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond the parameter names and schema descriptions.

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

Purpose5/5

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

The description clearly states the action ('List') and resource ('job posts'), and defines what job posts are, distinguishing it from sibling tools like list_job_post_locations.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, or any conditions for use. The description only states the basic function.

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

list_jobsBInspect

List jobs in Greenhouse. Returns job details including name, status, department, offices, and custom fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated job IDs to filter by
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
statusNoFilter by job status
per_pageNoResults per page (1-500, default 100)
closed_atNoFilter by job close date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
office_idNoFilter by office ID
opened_atNoFilter by job open date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
confidentialNoFilter by confidential status
department_idNoFilter by department ID
requisition_idNoFilter by requisition ID
custom_field_option_idNoFilter by custom field option ID
Behavior2/5

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

No annotations are provided, so the description bears full responsibility. It only states that job details are returned, without mentioning pagination, rate limits, authentication, or other behavioral traits. The schema hints at pagination via cursor/per_page, but the description does not clarify this.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of 18 words, achieving maximum conciseness. It is front-loaded with the primary action and resource, making it quick to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 13 optional parameters, no output schema, and no annotations, the description is too sparse. It lacks guidance on pagination, filtering combinations, default behaviors, or response structure, which would aid an agent in correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema descriptions cover all 13 parameters (100% coverage), so the baseline is 3. The description adds value by listing example output fields (name, status, department, offices, custom fields), but this is not parameter-specific. The description does not provide additional meaning beyond the schema.

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

Purpose5/5

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

The description clearly states the tool lists jobs and returns specific details. It distinguishes from sibling list tools that target different resources (candidates, applications, etc.) or job-specific lists (job posts, interviews).

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives. There are many sibling list tools, but the description does not explain selection criteria or exclude scenarios where more specific tools are appropriate.

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

list_notesBInspect

List notes in Greenhouse. By default returns operational note metadata. detail_profile=body includes subject and body when expanded access is available. Types: NOTE, ACTIVITY, INTERVIEW, EMAIL, FOLLOW_UP, TAKE_HOME_TEST, LINKEDIN_NOTE, LINKEDIN_INMAIL, AVAILABILITY_REQUEST, TOUCHPOINT, FORM, FEEDBACK.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated note IDs
typeNoFilter by note type (NOTE, ACTIVITY, INTERVIEW, EMAIL, etc.)
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
reasonNoRequired when detail_profile requests a broadened response shape.
per_pageNoResults per page (1-500, default 100)
user_idsNoComma-separated user IDs (note authors)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
visibilityNoFilter by visibility
candidate_idsNoComma-separated candidate IDs
detail_profileNoProjection profile. Default is minimal; body includes subject and body text when expanded access is available.
application_idsNoComma-separated application IDs
on_behalf_of_user_idNoRequired when detail_profile=body.
Behavior3/5

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

No annotations provided. The description mentions default behavior (returns metadata) and that detail_profile=body includes subject/body with expanded access. However, key behaviors like cursor exclusivity, on_behalf_of_user_id requirement, and pagination are not disclosed, leaving gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences that front-load purpose and then detail type profiling. No fluff, but could be slightly more structured with bullet points for types.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 13 parameters and no output schema, the description is incomplete. It doesn't cover pagination, parameter interactions (e.g., cursor with other filters), or the on_behalf_of_user_id requirement for detail_profile=body, which is documented in schema but not described.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explicitly listing all note types from the type parameter's enum, and clarifying the detail_profile behavior beyond the schema.

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

Purpose4/5

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

The description clearly states it lists notes in Greenhouse, with a specific verb and resource. It differentiates from siblings like list_job_notes by being a general notes listing tool, though not explicitly.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., list_job_notes), no prerequisites or when-not-to-use cases. The description is purely functional.

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

list_offersAInspect

List offers in Greenhouse. By default returns operational offer fields. detail_profile=compensation includes compensation fields and custom offer fields when expanded access is available.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated offer IDs to filter by
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
reasonNoRequired when detail_profile requests a broadened response shape.
statusNoFilter by offer status
job_idsNoComma-separated job IDs to filter by
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
detail_profileNoProjection profile. Default is operational; compensation includes salary/equity/custom-field detail when expanded access is available.
application_idsNoComma-separated application IDs to filter by
on_behalf_of_user_idNoRequired when detail_profile=compensation.
Behavior3/5

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

No annotations provided, so description carries the burden. It reveals read-only nature and data scoping (default vs compensation), but lacks detail on pagination, authentication, 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no wasted words, front-loaded with purpose. Efficient and to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 11 parameters and no output schema, the description only highlights one feature. Schema descriptions fill gaps, but the description could be more complete regarding pagination and filters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (baseline 3). The description adds useful context for the detail_profile parameter but ignores other parameters, which are adequately described in the schema.

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

Purpose5/5

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

The description clearly states the action 'List offers' and the resource 'in Greenhouse', and specifies the default behavior and key parameter detail_profile, distinguishing it from sibling list tools.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool versus alternatives, but the purpose is clear enough given the tool name. No when-not-to-use or alternative tool mentions.

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

list_officesBInspect

List offices in Greenhouse.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated office IDs to filter by
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
Behavior2/5

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

No annotations are provided, and the description lacks any behavioral details such as pagination behavior, default per_page, sorting, or any side effects. Minimal disclosure for a listing tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is very short and direct, no wasted words. However, it could be expanded slightly with useful context without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the schema coverage is high, the description lacks completeness in usage context, pagination behavior, and how it relates to other office-related tools. The absence of an output schema means more description burden.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are well-documented in the schema. The description adds no additional meaning beyond the schema, meriting the baseline score.

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

Purpose5/5

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

The description clearly states the action ('List') and resource ('offices') with context ('in Greenhouse'), making it unambiguous and distinguishing it from other list tools in the sibling set.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool, no exclusions, and no alternatives. It does not explain how it differs from other list tools.

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

list_openingsBInspect

List openings (requisitions) in Greenhouse. Shows headcount, target start dates, close reasons, and which application filled each opening.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated opening IDs
openNoFilter by open/closed status
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
job_idsNoComma-separated job IDs
per_pageNoResults per page (1-500, default 100)
closed_atNoFilter by closed date. Format: operator|ISO8601
opened_atNoFilter by opened date. Format: operator|ISO8601
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
opening_idNoFilter by opening ID string
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
application_idsNoComma-separated application IDs
close_reason_idsNoComma-separated close reason IDs
custom_field_option_idNoFilter by custom field option ID
Behavior2/5

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

No annotations provided, so description carries full burden. It only lists output fields but fails to disclose pagination behavior, rate limits, authentication needs, or side effects. The input schema includes pagination parameters (cursor, per_page) that are not mentioned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences convey the core purpose and output efficiently, with no redundant information. Front-loaded with key action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 13 parameters, no output schema, and no annotations, the description is too brief. It does not explain pagination, filter operators, or the full response structure, leaving significant gaps for a functionally rich tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. Description adds no parameter-specific details beyond what's in the schema, such as format or usage examples.

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

Purpose5/5

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

Description clearly identifies the resource as 'openings (requisitions)' and specifies the fields returned (headcount, target start dates, close reasons, application filler). This distinguishes it from sibling tools listing other entities like jobs or applications.

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

Usage Guidelines3/5

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

Description implies usage for listing openings but offers no explicit guidance on when to use this tool versus alternatives. No mention of exclusions or comparative context with sibling tools.

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

list_prospect_detailsCInspect

List prospect detail records in Greenhouse.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated prospect detail IDs
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
Behavior2/5

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

With no annotations, the description must fully disclose behavior. It only says 'List prospect detail records,' omitting pagination, filtering, return format, or any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence, but it is overly brief and lacks substance. It earns its place but could include more context without being verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 parameters, no output schema, and no annotations, the description fails to explain filtering, pagination, or result structure. It is incomplete for effective agent use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds no extra parameter meaning beyond what the schema provides.

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

Purpose4/5

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

The description clearly states 'List prospect detail records in Greenhouse,' providing a specific verb and resource. However, it does not distinguish this tool from sibling list tools like list_prospect_pools or list_applications.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. Implicit usage is assumed, but there are no when-not or exclusion statements.

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

list_prospect_poolsAInspect

List prospect pools in Greenhouse. Shows pool names, descriptions, associated departments/offices/jobs.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated prospect pool IDs
activeNoFilter by active status
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
job_idsNoComma-separated job IDs
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
office_idsNoComma-separated office IDs
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
department_idsNoComma-separated department IDs
Behavior3/5

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

Description indicates a read operation (lists, shows) with no contradictions. However, it does not mention pagination, rate limits, or other behavioral traits in the absence of annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no excess wording. Could be considered too brief, but effectively communicates the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is adequate for a list operation but could mention pagination or filtering hints given the presence of cursor and per_page parameters. No output schema is provided.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover 100% of parameters, so the description adds only marginal value by noting associations with departments/offices/jobs, which corresponds to existing parameters.

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

Purpose5/5

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

The description clearly states the tool lists prospect pools and specifies what information is shown (names, descriptions, associated departments/offices/jobs), distinguishing it from sibling list tools.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives like list_prospect_pool_stages or list_prospect_details. Usage is implied but not differentiated.

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

list_prospect_pool_stagesCInspect

List stages within prospect pools in Greenhouse.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated prospect pool stage IDs
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, authentication needs, or pagination behavior. For a read operation, it should mention it is non-destructive, but it fails to do so.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence; it is concise but lacks structure or additional context. Every sentence should earn its place, but here it is minimal without being wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given five parameters and no output schema, the description is too sparse. It does not explain how the parameters affect results, what the response contains, or how to use the tool effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds no additional meaning beyond what the input schema already provides for the five parameters.

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

Purpose4/5

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

The description clearly states the tool lists stages within prospect pools, distinguishing it from siblings like list_prospect_pools (lists pools) and list_application_stages (lists application stages). However, it could be more specific about the scope (e.g., for a given pool or all pools).

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. The description only implies it's for prospect pool stages, but doesn't explain context or provide exclusions.

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

list_referrersBInspect

List referrers in Greenhouse. Shows who referred candidates and their associated user ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated referrer IDs
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
per_pageNoResults per page (1-500, default 100)
user_idsNoComma-separated user IDs
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
Behavior2/5

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

With no annotations, the description bears full responsibility for behavioral disclosure. It only states a basic list operation without addressing read-only nature, pagination, authorization, or error behavior. This is insufficient for safe invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences with no extraneous information. Every word serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the schema covers parameters, the description omits output format, pagination behavior, and response structure. For a medium-complexity tool with 6 parameters and no output schema, more context is warranted.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed parameter descriptions. The tool description adds no additional meaning beyond the schema, so baseline score of 3 applies.

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

Purpose5/5

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

The description clearly states the tool lists referrers in Greenhouse and shows who referred candidates along with their user ID. This verb+resource pairing is specific and distinguishes it from sibling list tools like list_applications or list_candidates.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, context, or exclusions, leaving the agent without decision support.

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

list_rejection_detailsBInspect

List rejection details for applications in Greenhouse. Returns operational rejection fields for disposition hygiene: application_id, reason_id, rejected_at, and rejected_by.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated rejection detail IDs to filter by
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
application_idsNoComma-separated application IDs to filter by
rejection_reason_idsNoComma-separated rejection reason IDs to filter by
custom_field_option_idNoFilter by custom field option ID
Behavior2/5

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

No annotations provided, so description must disclose side effects. It does not explicitly state that the tool is read-only or safe. While 'list' implies read, it lacks explicit behavioral traits beyond what schema covers.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: first states purpose, second lists returned fields. No filler, front-loaded with key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequately defines purpose and output fields but lacks details on response format, pagination behavior, and contextual prerequisites (e.g., requires rejected applications). Sufficient given schema coverage but could be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with parameter descriptions. Description adds no extra meaning beyond the schema, meeting baseline.

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

Purpose5/5

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

Clearly states the action (list) and resource (rejection details for applications in Greenhouse). Includes specific returned fields, distinguishing it from other list tools like list_rejection_reasons.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives or prerequisites. Does not mention that it applies only to rejected applications or suggest any not-to-use scenarios.

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

list_rejection_reasonsBInspect

List all rejection reasons in Greenhouse. These are the predefined reasons available when rejecting candidates.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated rejection reason IDs to filter by
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
include_defaultsNoInclude default rejection reasons
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as pagination, authentication needs, or side effects beyond the basic listing action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with a single sentence that clearly states the purpose, but could be more informative without being verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool and the well-described parameters in the schema, the description is adequate but lacks explanation of return values or pagination behavior, which would be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3; the description adds no additional meaning beyond what the schema already provides for parameters.

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

Purpose5/5

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

The description clearly states the verb 'List' and the resource 'rejection reasons' with context about their use in rejecting candidates, distinguishing it from sibling list tools.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool vs alternatives like reject_application or other list tools; usage is implied but not stated.

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

list_scheduled_interviewsBInspect

List scheduled interviews in Greenhouse. Returns scheduled interview events with date/time, interviewers, organizer, and status when expanded access is available.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated scheduled interview IDs to filter by
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
statusNoFilter by interview status
ends_atNoFilter by interview end time. Format: operator|ISO8601
job_idsNoComma-separated job IDs to filter by
per_pageNoResults per page (1-500, default 100)
starts_atNoFilter by interview start time. Format: operator|ISO8601
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
application_idsNoComma-separated application IDs to filter by
on_behalf_of_user_idYesGreenhouse user ID of the human approving this expanded data request.
Behavior3/5

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

The description mentions 'when expanded access is available,' hinting at authorization constraints, but does not elaborate on what expanded access entails or other behavioral traits like pagination (cursor parameter) or idempotency. No annotations are provided, so description carries partial burden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the verb and resource, no redundancy. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (11 parameters, no output schema), the description is too sparse. It fails to explain pagination, filtering, the required on_behalf_of_user_id parameter, or the meaning of 'expanded access.' Users need more context for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 11 parameters with full descriptions (100% coverage). The tool description adds no additional parameter 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.

Purpose4/5

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

The description clearly states it lists scheduled interviews in Greenhouse and specifies the returned fields (date/time, interviewers, organizer, status). However, it does not differentiate from sibling tools like list_interviews or list_job_interviews.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (e.g., list_interviews for all interviews or list_job_interviews for job-specific ones). The description lacks any when-to-use or when-not-to-use context.

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

list_scorecard_candidate_attributesCInspect

List scorecard candidate attribute ratings in Greenhouse.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated attribute IDs
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. The description only states the action and resource, but does not mention pagination, authentication, or that it is a read-only operation. The schema contains parameters for filtering and pagination, but the description does not hint at these capabilities.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, making it concise, but it lacks the appropriate length to convey necessary context. It is not wasteful but is under-informed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is incomplete for a tool with 5 parameters and many siblings. It does not mention pagination, filtering by IDs or dates, or the output format. Without the output schema or additional context, the agent lacks key information to use the tool effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Since schema description coverage is 100%, the baseline is 3. The description adds no additional meaning beyond what is already in the schema; it does not explain what 'scorecard candidate attribute ratings' are or how parameters should be used.

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

Purpose4/5

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

The description clearly states the tool lists scorecard candidate attribute ratings in Greenhouse, but it does not differentiate from sibling tools like list_focus_candidate_attributes or list_job_candidate_attributes. The verb 'List' and resource are clear, but no sibling distinction is provided.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives. Among the many sibling list tools, there is no context about when to select this one over others, such as list_candidate_attribute_types or list_scorecard_question_candidate_attributes.

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

list_scorecard_question_answer_optionsCInspect

List scorecard question answer option definitions in Greenhouse.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated answer option IDs
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
Behavior2/5

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

With no annotations provided, the description should disclose behavioral traits such as read-only nature, pagination, or filtering behavior. It only says 'list definitions' without any behavioral context, leaving the agent to infer 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no wasted words. It is appropriately sized for a straightforward list tool, though slightly more detail could be added without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema and annotations, the description is incomplete. It does not explain return values, pagination behavior beyond what is in the schema, or how to combine parameters. The tool has five parameters and a cursor mechanism, but the description lacks essential context for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with descriptions for each parameter, so the schema already documents the parameters effectively. The description adds no additional meaning beyond the tool's purpose, which is acceptable since the schema is complete.

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

Purpose4/5

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

The description clearly states the action ('list') and the resource ('scorecard question answer option definitions'), making it easy to understand what the tool does. However, it does not explicitly differentiate from similar sibling tools like 'list_scorecard_question_options' or 'list_scorecard_question_answers', 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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or exclusions. The description is too brief to help an agent decide between this and similar list tools.

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

list_scorecard_question_answersBInspect

List scorecard question answer submissions in Greenhouse.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated answer IDs
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. The description does not disclose any behavioral traits beyond listing, such as pagination, sorting, or that it is a read-only operation. The agent cannot infer behavior from the description alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short sentence that conveys the essential purpose. No wasted words, but could be slightly more informative without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, so description should explain return values but does not. Parameters are well-documented in schema, but the description provides no additional context on parameter combinations or constraints (e.g., cursor mutual exclusivity is in schema but not highlighted). Incomplete for a tool with medium complexity and no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description does not add any meaning beyond what the schema already provides for parameters like ids, cursor, per_page, created_at, updated_at. The description is merely the tool's title.

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

Purpose5/5

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

Clearly states the verb 'List' and the resource 'scorecard question answer submissions' with context 'in Greenhouse'. Distinguishes from sibling tools like list_scorecard_questions (lists questions, not answers) and list_scorecard_question_answer_options (likely lists options).

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives. Among many list tools, there is no differentiation or criteria for selection. No when-not-to-use or context provided.

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

list_scorecard_question_candidate_attributesBInspect

List scorecard question to candidate attribute mappings in Greenhouse.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated mapping IDs
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
Behavior2/5

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

With no annotations, the description carries full burden but only says 'List ... mappings.' It fails to disclose pagination behavior, rate limits, or any side effects. The agent is left uninformed about basic operational aspects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no wasted words. It is front-loaded with the verb 'List' and clearly identifies the resource. Highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (5 parameters, no output schema), the description is incomplete. It does not describe the return structure or pagination behavior. With many sibling tools, missing usage context further reduces completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds no extra meaning beyond the schema's parameter descriptions. No examples or parameter interdependencies are provided.

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

Purpose5/5

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

The description clearly states the tool lists 'scorecard question to candidate attribute mappings,' which is specific and distinguishes it from sibling tools like 'list_scorecard_candidate_attributes' that list attributes directly. The verb 'List' and resource 'mappings' are precise.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs. alternatives (e.g., other list tools). It does not mention context for filtering or common use cases, leaving the agent without direction.

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

list_scorecard_question_optionsCInspect

List scorecard question option definitions in Greenhouse.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated option IDs
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
Behavior1/5

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

No annotations provided, and the description fails to disclose any behavioral traits such as pagination, ordering, or side effects. The description is too minimal to inform an agent about what happens when the tool is invoked.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise but lacks necessary details. While efficient, it does not earn its place due to missing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, and the description does not explain return values or pagination behavior. Contextually incomplete for a listing tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does not add any meaning beyond the schema's parameter descriptions.

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

Purpose5/5

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

Description clearly states the verb 'List' and resource 'scorecard question option definitions' in 'Greenhouse'. It distinguishes from similar siblings like 'list_scorecard_question_answer_options' by specifying 'definitions'.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like list_scorecard_question_answer_options. No prerequisites or exclusions mentioned.

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

list_scorecard_questionsCInspect

List scorecard question templates in Greenhouse.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated scorecard question IDs
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
Behavior2/5

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

No annotations are provided, so the description should disclose behavioral traits. It only says 'list', implying read-only, but does not mention pagination, cursor constraints, or that listed templates are templates (not actual scorecards). The lack of behavioral details beyond the basic operation is a gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no wasted words. It is front-loaded with the action and resource. However, it is so concise that it omits useful context, making it less helpful than it could be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description should provide more context about what the tool returns (e.g., paginated list of templates) and how to use filters effectively. The current description is insufficient for an agent to understand the tool's behavior in context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description does not need to add parameter details. However, it adds no value beyond the schema; the description is generic and does not clarify the meaning or use of parameters like cursor, per_page, or date filters.

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

Purpose4/5

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

The description clearly states the tool lists scorecard question templates, with a specific verb ('list') and resource ('scorecard question templates'). It distinguishes from siblings like list_scorecards or list_scorecard_question_answer_options by focusing on templates, but does not explicitly differentiate its scope.

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

Usage Guidelines2/5

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

No usage guidelines are provided. The description does not indicate when to use this tool versus alternatives like list_scorecards, nor does it mention that it's a read-only operation. No context on prerequisites or common use cases.

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

list_scorecardsAInspect

List scorecards in Greenhouse. By default returns operational scorecard metadata. detail_profile=answers includes per-question answers and attribute notes when expanded access is available.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated scorecard IDs to filter by
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
reasonNoRequired when detail_profile requests a broadened response shape.
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
interview_idsNoComma-separated interview IDs to filter by
detail_profileNoProjection profile. Default is operational; answers includes question and attribute text when expanded access is available.
application_idsNoComma-separated application IDs to filter by
on_behalf_of_user_idNoRequired when detail_profile=answers.
Behavior4/5

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

With no annotations, the description reveals conditions: answers profile requires expanded access, reason parameter is required for broadened responses, and on_behalf_of_user_id is required when detail_profile=answers. It lacks details on pagination or sorting behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise sentences, front-loaded with the main action, and each sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (10 parameters, no output schema), the description covers key behavioral aspects and parameter relationships. It does not discuss pagination details or error states, but schema descriptions fill many gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds context by linking the detail_profile parameter to specific response shapes and conditions for reason and on_behalf_of_user_id, beyond the schema descriptions.

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

Purpose4/5

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

The description states the tool lists scorecards and specifies two detail profiles (operational/answers). It clearly identifies the resource and action, though it does not explicitly differentiate 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.

Usage Guidelines3/5

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

The description implies different use cases for detail profiles but does not provide explicit guidance on when to use this tool versus 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.

list_sourcesCInspect

List candidate sources in Greenhouse.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated source IDs to filter by
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
Behavior2/5

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

No annotations exist, and the description does not disclose any behavioral traits such as pagination behavior, rate limits, or side effects. As a list operation, it is presumably read-only, but this is not stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise at one sentence, front-loading the purpose. It could be slightly more informative without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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 and the tool having 5 parameters, the description lacks details about return values, pagination behavior, and overall context for usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond the schema; it only repeats the resource name.

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

Purpose4/5

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

The description clearly states the tool lists candidate sources in Greenhouse, using a specific verb and resource. However, it does not differentiate from sibling tools like 'list_blocked_spam_sources', which also deals with sources.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. With many sibling list tools, the agent receives no context for selection.

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

list_user_emailsCInspect

List user email addresses in Greenhouse when expanded access is available.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated user email IDs
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
on_behalf_of_user_idYesGreenhouse user ID of the human approving this expanded data request.
Behavior2/5

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

With no annotations, the description carries full burden. It only mentions access requirement, but lacks details on pagination, rate limits, or what happens if access is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, efficient and to the point. However, it could be structured with more detail without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, so description should explain return format. It does not. The access condition is vague, and pagination parameters are not mentioned in context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds no extra meaning to parameters beyond what the schema already provides.

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

Purpose4/5

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

Description clearly states the verb 'List' and resource 'user email addresses' with a condition 'when expanded access is available'. It is specific and distinct from sibling list tools.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives like list_users. The condition 'when expanded access is available' is mentioned but not elaborated.

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

list_user_job_permissionsCInspect

List user job-level permissions in Greenhouse. Shows which users have access to which jobs.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated permission IDs
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states that the tool lists permissions (a read operation), but does not mention pagination behavior, rate limits, or any side effects. Minimal behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no fluff. The first sentence clearly states action and resource. However, it could be slightly more informative without sacrificing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description is incomplete. It does not explain pagination, cursor usage, or the nature of the returned data. A list tool with 5 parameters and pagination deserves more context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover 100% of the 5 parameters, so baseline is 3. The description adds no extra parameter meaning beyond what the schema already provides. It does not explain how filters interact or the cursor usage.

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

Purpose4/5

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

Description clearly states the verb 'list' and resource 'user job permissions' in Greenhouse. It explains what the tool does (shows which users have access to which jobs). However, it does not distinguish itself from siblings like 'list_future_job_permissions', which appears to cover a similar concept.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. There are many list tools among siblings, and the description does not indicate when to choose this over 'list_future_job_permissions' or other permission-related tools.

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

list_user_rolesBInspect

List user role definitions in Greenhouse. Role types: deprecated_interviewer, job_admin, site_admin.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated user role IDs
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
Behavior2/5

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

With no annotations, the description should disclose behavioral traits such as pagination, filtering constraints, or response format. It only mentions role types, ignoring key behaviors like the pagination cursor rule or that parameters are optional.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short (two sentences) and efficient, listing role types upfront. It could be improved by front-loading the purpose and adding a brief usage note, but it is still concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 5 parameters (including pagination) and no output schema or annotations. The description lacks information about pagination, filtering, or what the response contains, making it incomplete for an API tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds no additional meaning beyond what the schema already provides for the parameters.

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

Purpose5/5

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

The description clearly states 'List user role definitions in Greenhouse' and lists three specific role types, which distinguishes it from sibling tools that list other entities like users or jobs.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description only lists role types but does not explain prerequisites, exclusions, or comparison with siblings like list_users.

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

list_usersAInspect

List users in Greenhouse. Returns user profiles including name, email, job title, and role.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoComma-separated user IDs to filter by
emailNoFilter by email address
cursorNoPagination cursor from a previous response. When provided, must be the only filter parameter.
per_pageNoResults per page (1-500, default 100)
created_atNoFilter by creation date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
updated_atNoFilter by update date. Format: operator|ISO8601 (e.g. gte|2024-01-01T00:00:00Z). Operators: gte, lte, gt, lt
Behavior3/5

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

No annotations are provided, so the description must disclose behavioral traits. It states that user profiles are returned but does not mention pagination, filtering semantics, or the fact that cursor must be the sole filter. The schema covers parameters, but the description adds minimal behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no unnecessary words. Front-loaded with the tool's purpose. Every sentence is informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema, so the description appropriately lists the return fields. However, it does not mention that results are paginated or that filters and cursor are available. Given the parameter richness, a bit more context would be helpful, but the description is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds no parameter-level meaning beyond what the schema already provides. It mentions return fields but not parameters.

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

Purpose5/5

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

The description clearly states the action ('List users'), the resource ('users in Greenhouse'), and the scope. It distinguishes itself from sibling list tools by specifying users, and lists the return fields (name, email, job title, role).

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like get_user or other list tools. It lacks context on use cases, exclusions, or prerequisites.

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

move_application_to_stageAInspect

Move an active application to another interview stage in Greenhouse. Refuses terminal targets and supports preview.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe application ID to move
reasonYesHuman-readable audit reason for this change. Must be at least 12 characters.
dry_runNoWhen true, validate and preview the change without sending a write request.
confirm_stage_moveYesMust be true to execute a stage move.
on_behalf_of_user_idYesGreenhouse user ID to send with this write.
job_interview_stage_idYesTarget Greenhouse job interview stage ID.
Behavior3/5

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

With no annotations, the description carries full burden. It discloses that terminal targets are refused and that a preview mode exists (via dry_run). It also implies that 'confirm_stage_move' must be true to execute. However, it omits other behavioral traits like authorization requirements, side effects on other data, or error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero wasted words. The action is front-loaded, and constraints are summarized efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 6 parameters (5 required) and no output schema. The description explains the core operation, the refusal of terminal stages, and the preview option. It is sufficient for a straightforward mutation tool, though it could mention return behavior or common failure scenarios.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all parameters are documented. The description does not add significant meaning beyond what the schema provides; it only hints at the dry_run use case. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action (move), the resource (active application), and the system (Greenhouse). It also specifies constraints ('refuses terminal targets') and features ('supports preview'), distinguishing it from sibling tools like 'reject_application' or 'list_application_stages'.

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

Usage Guidelines3/5

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

The description mentions that it refuses terminal targets, providing a condition for when not to use it. However, it does not explicitly contrast with alternatives (e.g., 'reject_application' for termination, 'update_application_assignment' for other changes) or provide when-to-use guidance beyond the basic operation.

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

patch_application_metadataBInspect

Patch application metadata in Greenhouse. Supports assignment validation, preview, and no-op detection.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe application ID to update
reasonYesHuman-readable audit reason for this change. Must be at least 12 characters.
dry_runNoWhen true, validate and preview the change without sending a write request.
source_idNo
job_post_idNo
referrer_idNo
recruiter_idNo
custom_fieldsNo
coordinator_idNo
location_addressNo
prospective_job_idsNo
on_behalf_of_user_idYesGreenhouse user ID to send with this write.
confirm_application_patchYesMust be true to execute an application metadata write.
Behavior3/5

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

No annotations provided, so description carries the burden. It discloses 'assignment validation, preview, and no-op detection,' but does not state whether the tool is destructive, what permissions are needed, or what happens to unspecified fields. Partial disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence covering the core action and key features. Efficient and front-loaded. Could benefit from a brief usage context, but no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 13 parameters and no output schema, the description is insufficient. It does not explain return values, error handling, or success/failure behavior. Lacks detail needed for an agent to use reliably.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 38%. The description adds meaning to 'confirm_application_patch' (must be true for write) and 'dry_run' (preview), but most parameters (e.g., source_id, job_post_id) remain unexplained. Does not fully compensate for low coverage.

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

Purpose4/5

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

The description clearly states 'Patch application metadata in Greenhouse' with a specific verb and resource. It also mentions three features: assignment validation, preview, and no-op detection. However, it does not distinguish from sibling tools like update_application_assignment or other patch tools, limiting clarity.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. It does not specify prerequisites, when not to use, or how it differs from siblings like patch_candidate_profile or patch_opening_metadata.

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

patch_candidate_contactCInspect

Patch candidate contact fields in Greenhouse. Supports preview and no-op detection.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe candidate ID to update
reasonYesHuman-readable audit reason for this change. Must be at least 12 characters.
dry_runNoWhen true, validate and preview the change without sending a write request.
addressesNo
can_emailNo
last_nameNo
time_zoneNo
first_nameNo
phone_numbersNo
preferred_nameNo
email_addressesNo
website_addressesNo
on_behalf_of_user_idYesGreenhouse user ID to send with this write.
social_media_addressesNo
confirm_candidate_patchYesMust be true to execute a candidate contact write.
Behavior2/5

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

Without annotations, the description should disclose behavioral traits like mutation, idempotency, or auth needs. It only hints at dry_run and idempotency, but does not explain the behavior of the update or what happens on failure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two sentences, but could be more structured to include parameter guidance or usage scenarios.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 15 parameters, low schema coverage, and no output schema or annotations, the description is insufficient for the agent to understand the tool's behavior and parameters fully.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With only 33% schema description coverage, the description adds little beyond what the schema already provides. It does not explain the meaning or usage of fields like addresses, can_email, or time_zone.

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

Purpose5/5

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

The description clearly states the tool patches candidate contact fields in Greenhouse, which is specific and distinguishes it from sibling tools like patch_candidate_custom_fields and patch_candidate_profile.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus other patch tools or alternatives. Mentions preview and no-op but does not clarify when to use dry_run vs actual update.

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

patch_candidate_custom_fieldsCInspect

Patch candidate custom fields in Greenhouse. Supports preview and no-op detection.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe candidate ID to update
reasonYesHuman-readable audit reason for this change. Must be at least 12 characters.
dry_runNoWhen true, validate and preview the change without sending a write request.
custom_fieldsYesCandidate custom field payload keyed by field identifier.
on_behalf_of_user_idYesGreenhouse user ID to send with this write.
confirm_candidate_patchYesMust be true to execute a candidate custom-field write.
Behavior2/5

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

With no annotations provided, the description must fully disclose behavior. It only mentions 'preview and no-op detection,' but omits critical details about write effects, permissions needed, response format, and error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short and to the point, but it sacrifices necessary detail for brevity. It is not verbose, but it lacks structure or key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (6 parameters, nested objects, no output schema), the description is severely incomplete. It fails to explain the custom_fields payload structure, the mandatory confirm_candidate_patch, or what the tool returns after execution.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds no further meaning beyond what the schema already provides; the preview/no-op hint is already in the dry_run parameter description.

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

Purpose4/5

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

The description clearly states the action (Patch) and resource (candidate custom fields), and although it's brief, it is specific enough to distinguish from sibling patch tools like patch_candidate_contact or patch_candidate_profile.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, such as other candidate patch tools. It does not 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.

patch_candidate_profileBInspect

Patch candidate profile fields in Greenhouse. Supports preview and no-op detection.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe candidate ID to update
titleNo
reasonYesHuman-readable audit reason for this change. Must be at least 12 characters.
companyNo
dry_runNoWhen true, validate and preview the change without sending a write request.
on_behalf_of_user_idYesGreenhouse user ID to send with this write.
confirm_candidate_patchYesMust be true to execute a candidate profile write.
Behavior2/5

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

With no annotations, the description should disclose behavioral details. It mentions preview and no-op detection but fails to describe write behavior, side effects, or error conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two sentences, concise and front-loaded with key functionality, containing no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 7 parameters with constraints like const, minLength, and no output schema, the description is incomplete. It omits return values, error handling, and usage patterns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 71%, so the description adds minimal value. It hints at dry_run and confirm_candidate_patch but doesn't elaborate on parameter meanings beyond the schema.

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

Purpose5/5

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

The description clearly states the tool patches candidate profile fields in Greenhouse, with specific features like preview and no-op detection, 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.

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like patch_candidate_contact or patch_candidate_custom_fields, and lacks when-not-to-use context.

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

patch_offer_compensationCInspect

Patch draft-offer compensation fields in Greenhouse. Refuses non-created offers.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe offer ID to update
oteNo
bonusNo
equityNo
reasonYesHuman-readable audit reason for this change. Must be at least 12 characters.
salaryNo
dry_runNoWhen true, validate and preview the change without sending a write request.
commissionNo
base_salaryNo
cash_compensationNo
total_compensationNo
confirm_offer_patchYesMust be true to execute a draft-offer compensation write.
on_behalf_of_user_idYesGreenhouse user ID to send with this write.
Behavior2/5

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

No annotations provided; the description only mentions refusal for non-created offers but omits side effects, authorization requirements, rate limits, error behaviors, or response details for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise, front-loaded sentences with no wasted words, clearly stating purpose and a key constraint.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 13 parameters, low schema coverage, no output schema, and no annotations, the description lacks essential context on success behavior, error handling, and how the 'refuses non-created offers' mechanism works.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 38% (low); the description does not explain any parameters beyond the schema, failing to compensate for the low coverage.

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

Purpose5/5

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

The description clearly states the action (patch), the resource (draft-offer compensation fields), and a key constraint (refuses non-created offers), distinguishing it from sibling tools like patch_offer_core or create_offer_draft.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives; only a constraint on non-created offers but no comparison to siblings like patch_offer_core or patch_offer_custom_fields.

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

patch_offer_coreBInspect

Patch draft-offer core fields in Greenhouse. Refuses non-created offers.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe offer ID to update
reasonYesHuman-readable audit reason for this change. Must be at least 12 characters.
dry_runNoWhen true, validate and preview the change without sending a write request.
starts_onNoOffer start date in YYYY-MM-DD format.
opening_idNo
confirm_offer_patchYesMust be true to execute a draft-offer write.
on_behalf_of_user_idYesGreenhouse user ID to send with this write.
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only reveals that the tool refuses non-created offers. It does not mention that this is a mutation, what happens on success or error, side effects, or the role of the confirm_offer_patch parameter. The description is insufficient for safe agent decision-making.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two short, direct sentences with no redundant information. Every word serves a purpose, and the key behavioral constraint is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that the tool has 7 parameters, no output schema, and no annotations, the description is too sparse. It does not explain the offer lifecycle context, what 'core fields' are, error behavior, or how this tool fits with other offer-related tools. Agents lack sufficient context to use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is high (86%), so the schema already explains most parameters. The description adds no extra meaning beyond 'core fields' but does not clarify which parameters are considered core. It provides marginal value over the schema.

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

Purpose5/5

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

The description clearly states the verb 'Patch', the resource 'draft-offer core fields', and the system 'Greenhouse'. It also adds a specific constraint 'Refuses non-created offers', which distinguishes it from sibling tools like create_offer_draft and deprecate_offer_draft.

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

Usage Guidelines3/5

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

The description implies usage for editing core fields of draft offers and mentions it refuses non-created offers, but it does not explicitly differentiate from similar tools like patch_offer_compensation or patch_offer_custom_fields. No alternatives are named, leaving ambiguity about when to use this tool over siblings.

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

patch_offer_custom_fieldsAInspect

Patch draft-offer custom fields in Greenhouse using a custom_fields-only surface. Refuses non-created offers.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe offer ID to update
reasonYesHuman-readable audit reason for this change. Must be at least 12 characters.
dry_runNoWhen true, validate and preview the change without sending a write request.
custom_fieldsYesOffer custom fields keyed by field identifier.
confirm_offer_patchYesMust be true to execute a draft-offer custom-field write.
on_behalf_of_user_idYesGreenhouse user ID to send with this write.
Behavior2/5

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

No annotations provided, so description carries full burden. Only mentions refusal of non-created offers, but does not disclose other behaviors like merge vs. replace semantics, validation errors, idempotency, or the confirm_offer_patch requirement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no redundant information. 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.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, 6 parameters including nested objects and a guard field (confirm_offer_patch). Description does not explain return values or validation behavior. Lacks guidance on how to use custom_fields and the confirm_offer_patch constraint.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds minimal meaning beyond schema descriptions (e.g., 'custom_fields-only surface' hints at scope but doesn't explain field format or constraints).

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

Purpose5/5

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

Clearly states the action ('patch'), resource ('draft-offer custom fields'), and a distinguishing behavior ('refuses non-created offers'). Distinguishes from siblings like patch_offer_compensation or patch_offer_core.

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

Usage Guidelines4/5

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

Explicitly states that the tool only works on created draft offers, providing a clear condition. However, it does not mention when to use alternative patch tools for other offer fields.

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

patch_opening_metadataBInspect

Patch opening metadata in Greenhouse. Supports preview and no-op detection.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe opening ID to update
reasonYesHuman-readable audit reason for this change. Must be at least 12 characters.
dry_runNoWhen true, validate and preview the change without sending a write request.
sort_orderNo
custom_fieldsNo
target_start_onNoTarget start date in YYYY-MM-DD format.
on_behalf_of_user_idYesGreenhouse user ID to send with this write.
confirm_opening_patchYesMust be true to execute an opening metadata write.
Behavior2/5

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

No annotations are provided, so the description carries full burden. It mentions 'supports preview and no-op detection' but fails to disclose important behavioral aspects such as authorization requirements, idempotency, side effects, or what happens on success/failure. The description is too minimal for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no wasted words. It is appropriately sized but could benefit from additional structure or bullet points for clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 8 parameters, nested objects, no output schema, and no annotations, the description is insufficient. It does not explain what 'opening metadata' includes, what fields can be patched, error scenarios, or the response format. An agent would need more details to use this tool effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 75% (6 of 8 parameters have descriptions in the schema). The description adds no parameter-level details beyond what is in the schema, except the mention of 'preview' which relates to dry_run. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb ('Patch'), resource ('opening metadata'), and context ('in Greenhouse'). It distinguishes from sibling patch tools like patch_application_metadata or patch_candidate_profile by specifying 'opening metadata'.

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

Usage Guidelines3/5

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

The description mentions support for preview and no-op detection, which implies usage modes, but it does not provide explicit guidance on when to use this tool versus other patch tools or list tools. No when-not or alternative tools are indicated.

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

reject_applicationBInspect

Reject an application in Greenhouse.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe application ID to reject
notesNoAdditional notes about the rejection
reasonYesHuman-readable audit reason for this change. Must be at least 12 characters.
dry_runNoWhen true, validate and preview the change without sending a write request.
rejection_emailNoOptional rejection email configuration
confirm_rejectionYesMust be true to execute a rejection write.
rejection_reason_idYesThe ID of the rejection reason (use list_rejection_reasons to find valid IDs)
on_behalf_of_user_idYesGreenhouse user ID to send with this write.
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It fails to disclose destructive behavior, permission requirements, or side effects. The description is too minimal to adequately inform the agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no extraneous information. It is concise, but could potentially include a bit more context without hurting conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 8 parameters (5 required) and a nested object, but the description only states the basic action. It does not mention the required confirm_rejection field, the need to look up rejection_reason_id via list_rejection_reasons, or the return behavior. This leaves significant gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, so each parameter is already well-documented in the schema. The description adds no additional meaning beyond the schema, justifying the baseline score of 3.

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

Purpose5/5

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

The description clearly states the action ('Reject') and the resource ('an application in Greenhouse'). It is specific enough to distinguish from sibling tools like move_application_to_stage or list_rejection_reasons.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives (e.g., move_application_to_stage). It lacks any context about 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.

remove_job_coordinator_ownerAInspect

Remove a single coordinator owner from a job hiring team. Active or responsible owners require explicit override flags.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesThe Greenhouse job ID
reasonYesHuman-readable audit reason for this change. Must be at least 12 characters.
dry_runNoWhen true, validate and preview the change without sending a write request.
user_idYesGreenhouse user ID to remove from coordinator owners
on_behalf_of_user_idYesGreenhouse user ID to send with this write.
allow_responsible_removalNoMust be true to remove a coordinator owner marked responsible.
confirm_hiring_team_changeYesMust be true to execute a hiring-team write.
allow_active_member_removalNoMust be true to remove an active coordinator owner.
Behavior3/5

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

The description adds some behavioral context about requiring override flags for active/responsible owners, which is useful. However, it does not detail other traits like authentication needs, rate limits, or potential side effects of removing a coordinator owner. Since no annotations are provided, the description partially compensates but is not fully transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loaded with the core action, and contains no extraneous information. Every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 8 parameters, 5 required, no output schema, and no annotations, the description is brief. It covers the primary purpose and a key condition but lacks details on return values, error handling, or supported scenarios. The sibling context helps differentiate, but more completeness would be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds meaning by linking 'active or responsible owners' to the override flags, which clarifies the purpose of 'allow_active_member_removal' and 'allow_responsible_removal' beyond their schema descriptions.

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

Purpose5/5

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

The description clearly states the action 'Remove a single coordinator owner from a job hiring team', which is specific and distinct from sibling tools like 'remove_job_recruiter_owner' and 'add_job_coordinator_owner'. The verb and resource are well-defined.

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

Usage Guidelines4/5

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

The description mentions that 'Active or responsible owners require explicit override flags', which provides guidance on when to use additional parameters. However, it does not explicitly compare to alternatives or state when not to use this tool.

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

remove_job_recruiter_ownerAInspect

Remove a single recruiter owner from a job hiring team. Active or responsible owners require explicit override flags.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesThe Greenhouse job ID
reasonYesHuman-readable audit reason for this change. Must be at least 12 characters.
dry_runNoWhen true, validate and preview the change without sending a write request.
user_idYesGreenhouse user ID to remove from recruiter owners
on_behalf_of_user_idYesGreenhouse user ID to send with this write.
allow_responsible_removalNoMust be true to remove a recruiter owner marked responsible.
confirm_hiring_team_changeYesMust be true to execute a hiring-team write.
allow_active_member_removalNoMust be true to remove an active recruiter owner.
Behavior3/5

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

No annotations are provided, so the description carries full burden. It discloses the need for override flags but lacks details on destructive behavior, authentication 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, highly concise, and front-loaded with the core purpose. Every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (8 parameters, 5 required, writing to hiring team), the description is brief and could elaborate on prerequisites, effects, or return values. It covers the key nuance but not fully.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds value by explaining the requirement for override flags, which directly relates to parameters allow_responsible_removal and allow_active_member_removal.

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

Purpose5/5

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

The description clearly states the action ('Remove a single recruiter owner') and the resource ('job hiring team'), distinguishing it from related tools like add_job_recruiter_owner and remove_job_coordinator_owner.

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

Usage Guidelines3/5

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

The description mentions the need for override flags for active/responsible owners, providing some context on when to use, but does not explicitly state when not to use or offer alternatives.

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

update_application_assignmentAInspect

Safely update application recruiter and/or coordinator assignment in Greenhouse. This tool refuses assignments to users who are not active hiring-team members on the current job.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe application ID to update
reasonYesHuman-readable audit reason for this change. Must be at least 12 characters.
dry_runNoWhen true, validate and preview the change without sending a write request.
recruiter_idNoNew recruiter Greenhouse user ID. Must already be an active recruiter owner on the job.
coordinator_idNoNew coordinator Greenhouse user ID. Must already be an active coordinator owner on the job.
on_behalf_of_user_idYesGreenhouse user ID to send with this write.
confirm_assignment_changeYesMust be true to execute an assignment write.
Behavior3/5

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

With no annotations provided, the description carries the burden. It discloses the safety check (refuses non-active members) but does not mention dry_run behavior, success/failure responses, or side effects beyond the refusal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no wasted words: the first states the core function, the second adds an important behavioral constraint. Perfectly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a write tool with 7 parameters and no output schema, the description covers the main safety behavior but omits details like dry_run validation or return value expectations, leaving some gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are already well-documented. The description adds a general safety note but no additional parameter-specific meaning beyond what the schema provides.

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

Purpose5/5

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

The description clearly states it updates application recruiter and/or coordinator assignments in Greenhouse, which distinguishes it from sibling tools like add_job_recruiter_owner that operate at the job level.

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

Usage Guidelines4/5

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

The description provides a clear condition: it refuses assignments to non-active hiring-team members, implying when to use this tool (only for active members) and when to use alternatives (add members first). However, it does not name those alternatives explicitly.

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

upsert_application_noteAInspect

Create an application note if an identical note is not already present. Because Harvest notes are create-only, exact matches become no-ops instead of replacements.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesNote body to attach to the application.
typeNoNote type. Defaults to NOTE.NOTE
reasonYesHuman-readable audit reason for this change. Must be at least 12 characters.
dry_runNoWhen true, validate and preview the change without sending a write request.
subjectNo
visibilityNoVisibility for the created note.privately_visible
application_idYesThe application ID to annotate
confirm_note_writeYesMust be true to execute an application note write.
on_behalf_of_user_idYesGreenhouse user ID to send with this write.
Behavior3/5

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

With no annotations, the description discloses key behavioral info: that exact matches become no-ops due to create-only constraints. This adds value beyond the schema, but is missing details on return values, error handling, or authentication requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences front-load the purpose and the critical upsert behavior. Every word adds value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core logic for upserting, but given the lack of output schema and annotations, it could also explain what the tool returns (e.g., created note or indication of no-op). It is mostly sufficient for tool selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 89%, and the description adds no additional parameter explanations. The schema already adequately describes each parameter, so the description does not need to compensate.

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

Purpose5/5

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

The description clearly states the verb 'Create' and resource 'application note', and explains the conditional behavior of not creating identical notes. It distinguishes from sibling upsert note tools by specifying 'application' and the Harvest create-only behavior.

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

Usage Guidelines4/5

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

The description indirectly implies when to use this tool (to add a note while avoiding duplicates) by explaining the no-op behavior. However, it does not explicitly state when not to use it or compare it to alternatives like upsert_job_note.

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

upsert_job_noteAInspect

Create or patch a job note in Greenhouse. With note_id present, patches that note; otherwise creates a new note unless an identical note already exists.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesJob note body.
job_idYesThe job ID to annotate
reasonYesHuman-readable audit reason for this change. Must be at least 12 characters.
dry_runNoWhen true, validate and preview the change without sending a write request.
note_idNoExisting job note ID to patch instead of creating a new note.
subjectNo
visibilityNoprivately_visible
on_behalf_of_user_idYesGreenhouse user ID to send with this write.
confirm_job_note_writeYesMust be true to execute a job note write.
Behavior3/5

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

Describes the core mutation behavior (create/patch) and deduplication logic. With no annotations provided, the description carries full burden but omits details like required permissions, error handling, or side effects. Still, it covers the key behavioral distinction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single well-structured sentence that front-loads the main action and efficiently conveys all key logic without excess words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 9 parameters, no output schema, and no annotations, the description is terse. It explains upsert logic but lacks details on return values, error scenarios, prerequisites, or what constitutes an 'identical note'. Could be more complete for such a complex tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 78%, so baseline is high. Description adds contextual value by explaining how note_id switches between create and patch modes, and deduplication on identical notes. This behavioral insight helps interpret parameters beyond schema descriptions.

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

Purpose5/5

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

Clearly states 'Create or patch a job note in Greenhouse' with specific verb and resource. Distinguishes between patching (if note_id present) and creating (with deduplication). Differentiates from sibling tools like upsert_application_note by targeting job notes.

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

Usage Guidelines4/5

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

Provides explicit guidance on when to patch vs create based on note_id presence. Mentions deduplication behavior. However, does not contrast with alternative note-upsert tools (e.g., upsert_application_note) or state when not to use this tool.

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

upsert_offer_review_noteAInspect

Create an offer-review note on the application if an identical review note is not already present. Exact matches become no-ops instead of replacements.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesDraft review note body for human approval.
reasonYesHuman-readable audit reason for this change. Must be at least 12 characters.
dry_runNoWhen true, validate and preview the change without sending a write request.
subjectNoOptional explicit subject override.
offer_idNoOptional offer ID to include in the canonical subject.
visibilityNoVisibility for the offer review note.privately_visible
application_idYesThe application ID to annotate for offer review.
confirm_note_writeYesMust be true to execute an offer review note write.
on_behalf_of_user_idYesGreenhouse user ID to send with this write.
Behavior3/5

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

No annotations provided; description adds idempotency detail (exact matches become no-ops). However, it does not disclose other behavioral traits such as required permissions, side effects, or return values. Some transparency but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core action. No unnecessary words. Efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 9 parameters, 5 required, and no output schema, the description lacks details on identity match criteria and return behavior. It covers the main behavioral point but leaves gaps about output and complete parameter relationships.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% parameter description coverage, so the baseline is 3. The description does not add extra meaning beyond what the schema provides for parameters like 'body' or 'confirm_note_write'. No clarification on how 'identical' is determined.

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

Purpose5/5

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

Description clearly states the tool creates an offer-review note on an application with idempotent behavior. The verb 'Create' and resource 'offer-review note' are specific, and the description distinguishes from sibling tools like upsert_application_note by focusing on offer review.

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

Usage Guidelines3/5

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

Description implies usage for creating a note only if not identical, but does not explicitly state when to avoid this tool (e.g., for updates) or provide alternatives like upsert_application_note for general notes. Basic context is present but no exclusions.

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

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources