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_ownerAInspect

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.
Behavior3/5

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

The description mentions preview support and candidate reassignment controls, adding some behavioral context beyond the schema, but lacks details on permissions, side effects, or error handling.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that efficiently conveys the core purpose and key features without unnecessary 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 the complexity (10 parameters, 5 required), the description is somewhat sparse and does not cover important aspects like the confirmation requirement, on_behalf_of_user_id, or reason field, though the schema compensates.

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?

With 100% schema description coverage, the schema already explains all parameters. The description's mention of 'preview support' and 'candidate reassignment controls' provides organizational context but does not add new semantic 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 action ('Add a single coordinator owner') and the resource ('to a job hiring team'), distinguishing 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 coordinator owners but does not explicitly say when to choose this tool over alternatives or provide exclusion criteria.

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, the description must fully disclose behavioral traits. It mentions preview support and candidate reassignment but fails to explain that write execution requires 'confirm_hiring_team_change' to be true, the side effects on existing owners, or any authorization needs. The description is insufficient 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, front-loaded sentence that efficiently communicates the core action and key features. 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 10 parameters, 5 required, no output schema, and no annotations, the description is too sparse. It omits return behavior, error states, prerequisites, and the role of required confirmation flag. It fails to provide the needed completeness for an AI agent 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 coverage is 100%, so the base is 3. The description adds context about preview support (relating to dry_run) and candidate reassignment controls (relating to responsible_for_* flags), but these are already implied in the schema descriptions. The description does not provide substantial new 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 verb 'Add', the specific resource 'single recruiter owner to a job hiring team', and highlights key features like preview support and candidate reassignment controls. It effectively distinguishes from sibling tools like 'add_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 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, no prerequisites (e.g., job must exist, user must be recruiter), and no context about when to use the preview vs. write mode. The description is too brief to offer usage direction.

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?

No annotations are provided, so the description must bear full responsibility for behavioral disclosure. It covers the duplicate refusal and no-submission behaviors, but does not mention permissions, side effects, or rate limits. Adequate 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, no filler, front-loaded with the primary action. 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?

Despite complexity (9 params, no output schema), the description does not explain return values, error conditions, or prerequisites. It lacks completeness for an agent to fully understand the tool's behavior and outcomes.

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 for 'allow_duplicate_offer_draft' by mentioning duplicate refusal, but does not elaborate on other parameters beyond 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 a specific verb+resource ('Create a draft offer for an application') and clearly distinguishes from sibling tools by stating it never submits for approval and refuses duplicates unless allowed. This provides clear purpose and differentiation.

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 when to use this tool versus alternatives by stating it never submits for approval and handles duplicate behavior, but does not explicitly reference sibling tools or provide when-not-to-use conditions. Some guidance is present.

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).
Behavior5/5

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

With no annotations provided, the description carries the full burden. It covers validation (rejects write tools, validates against registered read tools), persistence (per license, surfaced via get_control_plane_capabilities), and execution model (connector never executes). Also notes slug reuse replaces the saved query and disabled queries are saved but hidden.

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 paragraph of four sentences, front-loading the primary action. Every sentence adds value, though it could be slightly more concise by combining the last two sentences.

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 validation, persistence, and execution model, and explains the purpose well. However, it lacks an explicit statement about the return value (e.g., 'Returns the created standing query'). Given no output schema, this is a minor gap.

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 minimal parameter-specific insight beyond the schema (e.g., it reiterates that required_tools must be read tools). While it provides overall context, it does not significantly enhance understanding of individual 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 starts with a specific verb-resource pair ('Save a buyer-defined standing query (custom recipe)') and elaborates on what it contains (named recruiting question, prompt, read-tool list). It clearly distinguishes this create action from sibling tools by emphasizing validation against read tools and the persistence 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 implies the tool is for saving a custom recipe for recurring questions, providing clear context. However, it does not explicitly state when not to use it or mention alternative tools (though siblings include other create/update tools, no direct alternative exists).

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.
Behavior2/5

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

With no annotations, the description must disclose all behavioral traits. It mentions preview support and refusal of non-drafts, but does not explain if deprecation is reversible, what happens to related records, or whether it is destructive. This is insufficient 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 sentence with no wasted words, but could be more structured to separate purpose, constraints, and features. Efficient but not perfectly formatted.

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 no output schema, 5 parameters, and no annotations, the description covers the main action and preview feature but omits important context like return value, side effects, and the confirm_offer_patch safety mechanism. Adequate but with 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?

Schema coverage is 100%, so baseline is 3. The description adds minimal value beyond schema—only tying 'supports preview' to the dry_run parameter. Other parameters 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 verb 'deprecate' and the specific resource 'created-status draft offer', distinguishing it from siblings like create_offer_draft or patch_offer_*.

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 it 'refuses accepted or rejected offers', which implies it should only be used for drafts. However, it lacks explicit when-not-to-use or alternative tool guidance.

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 provided; description mentions return values but does not disclose side effects, permissions, or error handling. Minimal behavioral context beyond 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, front-loaded with purpose, no wasted words.

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

Completeness4/5

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

For a simple single-parameter tool with no output schema, description adequately states purpose and return content. Could include error handling or authentication notes.

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 a clear description of the 'id' parameter. Description adds no extra 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 action (Get), resource (application), and method (by ID). Distinguishes from list_applications and other application-related 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?

Implicitly clear for retrieving a single application, but lacks explicit guidance on when not to use or alternatives. Adequate but no exclusions.

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
Behavior4/5

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

As a simple read operation with no annotations, the description discloses the return contents (name, contact info, tags, custom fields), which is sufficient. Could mention authorization or rate limits but not essential for this basic 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 sentences: one for purpose, one for output. No wasted words.

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 it's a simple single-parameter read tool with no output schema, the description fully covers what the tool does and what it returns.

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% and the parameter description in the schema already states 'The candidate ID'. The tool description adds no additional semantic information beyond that.

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 'single candidate by ID', which distinguishes it from sibling tools like list_candidates and other candidate-related 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. 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.

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 must carry the full burden. While 'Show' suggests a read operation, it does not explicitly state that it is non-destructive, nor does it describe any behavioral traits, return format, or potential limitations.

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 and front-loaded with the verb 'Show' and the main object. No extraneous words.

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 that there are no parameters, no output schema, and the tool is a simple listing of available families, the description is mostly adequate. However, it could be slightly more specific about what constitutes a 'tool family' or the format of the response.

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 zero parameters, so the description cannot add much beyond what the schema already provides. According to guidelines, 0 parameters gets a baseline of 4. The description correctly implies no input 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 uses the specific verb 'Show' and clearly states the resource: 'Greenhouse recruiting-ops question and action tool families'. This distinguishes it from sibling tools that list specific entities (e.g., list_applications, list_candidates) by being a meta-tool about tool families 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?

The description implies usage for discovering available tool families, but it does not explicitly state when to use it instead of other tools or provide any alternatives. It is minimally adequate but lacks explicit guidance.

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
Behavior5/5

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

Discloses it returns full job details with specific fields (name, status, etc.). No side effects implied. With no annotations, the description fully covers behavioral transparency.

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

Conciseness5/5

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

Two sentences, no wasted words. Front-loaded with action and return 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?

Single parameter, no output schema. Description sufficiently explains input and output for a simple get 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 coverage is 100% with a description for `id`. Description adds no extra meaning beyond what schema provides, earning 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?

Clear verb 'Get a single job by ID' with specific resource and scope. Distinguishes from sibling tools like `list_jobs` and other `get_*` tools.

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

Usage Guidelines4/5

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

Straightforward use case implied: when you have a job ID and need full details. No explicit when-not or alternatives, but adequate for a simple retrieval tool.

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.
Behavior4/5

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

With no annotations, the description must convey behavior. It states that signed attachment URLs are opt-in via a parameter and that expanded access affects available data. It implies a read operation but does not explicitly declare idempotency or side effects. Still, it provides useful transparency for an 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?

Two sentences, front-loaded with purpose, no redundant words. Every sentence earns its place: first states purpose and returns, second highlights an opt-in feature. Excellent conciseness.

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 8 parameters, no output schema, and no annotations, the description covers the key return fields and access conditions. It explains what data is returned and the opt-in for attachment URLs. It lacks details on error handling or permission prerequisites but is reasonably complete for a data retrieval 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. The description adds minimal value beyond the schema; it mentions 'include_attachment_urls' as opt-in, which is already in the schema. No new insight into parameter usage or constraints is provided.

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's purpose: building offer-letter drafting context for a single application or offer. It lists the returned data types, distinguishing it from simpler get_application or get_candidate. However, it does not explicitly differentiate from siblings like get_application, so not a perfect 5.

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 offer-letter drafting but provides no explicit when-to-use, when-not-to-use, or alternative tools. It mentions 'when expanded access is available' but doesn't elaborate on conditions. Basic guidance is present but incomplete.

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 present, and the description does not disclose behavioral traits such as permissions required, error conditions, or data freshness. For a simple read operation, this minimalism may be acceptable but fails to add value beyond the schema.

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

Conciseness4/5

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

The description is extremely concise—one sentence that front-loads the purpose. It could briefly mention return format without losing conciseness, but there is no wasted text.

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 (1 required parameter, no output schema), the description is minimally complete. However, it does not explain what data is returned (e.g., user object details), which could aid the 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% (1 parameter 'id' with description 'The user ID'). The description adds no additional meaning beyond what the schema already provides, earning 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 'Get a single user by ID.' uses a specific verb ('Get') and resource ('user') with the retrieval method ('by ID'). It clearly distinguishes itself from sibling tools like list_users, which retrieves 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?

No guidance is provided on when to use this tool versus alternatives. While there is a list_users sibling for batch retrieval, the description does not mention it or any other usage context.

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?

No annotations provided, so description fully responsible for behavioral disclosure. Mentions returned fields and statuses but omits read-only nature, authentication needs, rate limits, or pagination behavior. For a list operation, stating it is safe to call repeatedly would help.

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 that immediately state the action and key output details. No unnecessary words; the description is well-structured and 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 the complexity of 17 parameters and no output schema, the description is too minimal. It fails to explain pagination, cursor usage constraints, default sorting, or how to combine filters. A more thorough description is needed for effective agent 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 has 100% coverage with descriptions for all 17 parameters. The description adds marginal value by explaining the tool's purpose (pipeline work) and listing returned fields, but does not enrich parameter meaning 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?

Clearly states the verb 'list' and resource 'applications', specifies the returned fields (operational application fields) and possible statuses, distinguishing it from sibling list tools that might return different data.

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?

Implies usage for pipeline work via returned fields, but lacks explicit guidance on when to use this tool vs alternatives like list_candidates or list_jobs. No comparison or context of trade-offs.

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

list_application_stagesAInspect

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
Behavior3/5

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

With no annotations, the description must disclose behavior. It explains returned data but omits details like pagination, rate limits, or that listing is read-only. The schema covers pagination parameters, but description lacks 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 clear, concise sentences that immediately state purpose and key details. No wasted words, front-loaded with critical 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?

Given no output schema, the description covers the main return fields (stage, entry/exit times, current status). It does not explicitly mention pagination or response structure, but schema fills that gap. Adequate 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 all parameters are documented. The description does not add meaning beyond the schema; it summarizes output context but not parameter details. Baseline 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 tool lists application stages from Greenhouse and specifies what information is shown (stage, entry/exit times, current stage). This differentiates it from sibling list tools like list_applications or list_job_interview_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?

No explicit guidance on when to use this tool versus alternatives. The description implies usage for retrieving application stage data but does not provide when-not-to-use or alternatives.

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

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 provided; the description only states it lists/shows data, implying read-only. It lacks disclosure about pagination behavior, filtering specifics, or any side effects. The schema provides parameter details, 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 wasted words. The first sentence immediately states the action and resource, providing clear, front-loaded 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 description adequately conveys the tool's purpose but does not explain the response structure or pagination. Given no output schema, more detail on return format would improve 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?

All parameters have descriptions in the schema (100% coverage), so the description does not need to add more. According to rules, baseline is 3 when coverage is high.

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 'applied candidate tags', and explains that it shows which tags are applied to which candidates. This distinguishes it from sibling tools like 'list_candidate_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 explicit guidelines on when to use this tool versus alternatives. The description does not mention when not to use it or how it differs from related tools like 'list_candidate_tags'.

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

list_approval_flowsBInspect

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 must disclose behavioral traits. However, it only describes the output content and does not mention pagination, ordering, rate limits, or other behavioral details essential for an 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 a single sentence of 20 words, front-loaded with the resource and key output fields. Every word is useful, and there is no redundancy.

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 8 parameters, no output schema, and no annotations, the description is too brief. It does not explain return format, pagination behavior, parameter interactions, or the meaning of enumerated values, leaving 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?

Schema coverage is 100%, so the schema already documents all parameters. The description adds minimal extra meaning beyond what the schema provides, meeting the baseline but not exceeding 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 tool lists approval flows in Greenhouse, specifying the resource (approval flows) and the information shown (status, sequentiality). It is a specific verb+resource combination that distinguishes it from other list tools.

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

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 list_approvers or list_approver_groups. The description lacks context on prerequisites or scenarios.

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 the full burden. It mentions listing and showing groups, but does not disclose behavioral traits such as pagination behavior, cursor semantics, or any rate limits. The description adds no value beyond the schema descriptions.

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 front-load the purpose. No wasted words. However, could be slightly more structured with explicit details, but it remains concise and readable.

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 annotations, and no output schema, the description is too brief. It does not explain return format, pagination mechanics, or interaction between filters (e.g., cursor being exclusive). For a list tool, more context is needed.

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 tool description does not add any additional meaning or examples for parameters (e.g., how to use operator|ISO8601 for created_at/updated_at). It relies entirely on 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 'List' and the resource 'approver groups', distinguishing it from sibling tools like list_approvers (individual approvers) and list_approval_flows (flows). The additional phrase 'Shows groups of approvers within approval flows' reinforces the unique purpose.

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_approvers, list_approval_flows). No exclusions or prerequisites are mentioned. The description only states what the tool does, not when 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?

With no annotations, the description should disclose behavioral traits. It only restates the tool's purpose without mentioning side effects (none expected), pagination behavior, or rate limits. The schema provides parameter details, but the description adds no transparency 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.

Conciseness4/5

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

The description is a single, concise sentence. It is front-loaded and contains no extraneous words, though it could incorporate minor 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?

For a tool with 5 optional parameters and no output schema, the description is too minimal. It fails to explain the return structure, typical use cases, or how results are paginated. More detail is needed to fully inform the 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 baseline is 3. The description adds no additional parameter semantics 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 individual approvers in Greenhouse,' specifying the verb (list) and resource (approvers). It distinguishes from sibling tools like list_approver_groups by focusing on individuals, but could be more specific about what an approver is.

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 other listing tools. No context on prerequisites or optimal usage scenarios is provided.

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

list_blocked_spam_sourcesCInspect

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?

The description only repeats the tool name and provides no behavioral details such as authentication needs, rate limits, or side effects. Since annotations are absent, this is a significant gap.

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

Conciseness3/5

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

Single sentence is concise but lacks structure; it could be expanded with relevant details 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 tool has five parameters and no output schema or annotations, the description is inadequate. It does not explain pagination, filtering behavior, or response structure.

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 five parameters are fully described in the input schema (100% coverage), so the description adds no extra meaning. 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 the verb (List) and resource (blocked spam sources). However, it does not differentiate from sibling tools like list_sources, missing explicit specificity.

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. No exclusions or context provided for appropriate use cases.

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 are provided, so the description must disclose behavioral traits. It notes that the tool lists requests and shows status, record counts, and completion details, which implies a read-only operation. However, it does not mention pagination behavior, rate limits, or any other 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 a single, concise sentence that front-loads the purpose and key details. There is no 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?

With no output schema, the description partially explains return values (status, record counts, completion details) but is not exhaustive. Given the tool has 7 optional parameters and complex filtering, the description 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?

The input schema has 100% description coverage, so all parameters are documented there. The description adds no additional meaning beyond the schema, achieving 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 action (list) and the resource (bulk operation requests), and specifies the information shown (status, record counts, completion details). This 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 Guidelines3/5

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

The description does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention when not to use it. It simply describes what it does, leaving usage context implicit.

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

list_candidate_attribute_typesBInspect

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?

With no annotations provided, the description must disclose behavioral traits, but it only states the action ('List') without indicating read-only nature, side effects, or any constraints. The tool's safety profile is entirely opaque.

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, directly stating the tool's purpose with no unnecessary words. It is front-loaded and efficient.

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

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 with full schema parameter descriptions, the description is mostly adequate, but it lacks behavioral context (e.g., whether pagination is automatic, if results are ordered). The absence of output schema increases the need for clarity on return format, which is missing.

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 schema already describes all parameters in detail (e.g., cursor must be sole filter, date format). The description adds no additional semantic value beyond the schema, meeting the baseline expectation.

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

Purpose5/5

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

The description states 'List candidate attribute type definitions in Greenhouse,' which uses a specific verb ('List') and resource ('candidate attribute type definitions'), clearly distinguishing this tool from siblings like list_candidates or list_candidate_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 (e.g., list_custom_fields, list_scorecard_candidate_attributes). 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_candidate_educationsCInspect

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?

No annotations are provided, so the description carries the burden. It does not disclose any behavioral traits such as read-only nature, pagination behavior, or what happens if no filters are applied. The schema implies pagination via cursor and per_page, but the description is silent.

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, which is concise, but it lacks structure and depth. It could be improved by adding 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?

Given no output schema and no annotations, the description is inadequate. It does not explain the return format, default pagination, or any ordering. For a list tool with 5 parameters, more context is needed.

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 the schema descriptions are clear. The tool description does not add any additional meaning beyond the schema, so baseline of 3 is appropriate.

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

Purpose4/5

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

The description clearly states 'List candidate education records' which specifies the verb and resource. However, it does not differentiate from other list tools in the sibling set, which all start with 'list_', so it's slightly lacking in distinctiveness.

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 context about prerequisites. The description is too sparse to indicate appropriate usage scenarios.

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

list_candidate_employmentsBInspect

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?

No annotations are provided, so the description must fully disclose behavioral traits. It does not mention whether the operation is read-only, any side effects, pagination behavior, or authentication requirements. The brief description leaves the agent underinformed.

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 action and resource. It is clear and efficient, but could potentially include more detail without sacrificing 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?

With no output schema and a simple listing operation, the description is adequate but minimal. It does not explain the response format, which could be helpful for an agent to understand what data is returned.

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 merely echoes the resource name ('candidate employment history records') without adding meaning beyond the schema 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?

The description clearly states the verb 'List', the specific resource 'candidate employment history records', and the context 'in Greenhouse'. It is distinct from sibling tools like 'list_candidate_educations' and 'list_candidates'.

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

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, nor any context on prerequisites or when not to use it. With many sibling list tools, this is a significant gap.

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 discloses important behavioral traits such as default minimal projection, the effect of detail_profile=contact, and the need for a reason and opt-in for signed URLs. It could further explain response structure or rate limits.

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

Conciseness5/5

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

The description is comprised of three concise sentences, each adding essential information. It starts with the main purpose, then explains defaults, then the expanded view and opt-in requirements. No redundant words.

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 tool with 13 parameters and no output schema or annotations, the description covers the key behavioral aspects and constraints. It could mention pagination or response format, but the schema already handles parameter descriptions.

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 meaning of detail_profile values and the relationship between detail_profile and include_attachment_urls, going 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 candidates in Greenhouse, with specific details about projection profiles and opt-in features. It distinguishes from sibling list tools by highlighting its unique behavior and parameter interactions.

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 clear guidance on when to use detail_profile=contact and include_attachment_urls, including the requirement for a reason. However, it does not explicitly compare with other list tools like list_applications 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.

list_candidate_tagsAInspect

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
Behavior3/5

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

No annotations provided, so description bears full burden. It indicates a read operation but lacks details on pagination, filtering behavior, or authentication requirements. The schema hints at pagination via cursor and per_page, but the description doesn't mention 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?

Two short sentences, front-loaded with the core action ('List all candidate tags'), redundant words avoided. Efficient.

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?

Covers the basic purpose but lacks usage context, such as distinguishing from list_applied_candidate_tags or explaining parameter usage. No output schema, but the tool is simple. Adequate but minimal.

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 description adds minimal value beyond the schema. The description does not elaborate on parameter use; it's baseline adequate.

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 all candidate tags and explains what tags are. It distinguishes from sibling list_applied_candidate_tags by implying it returns all tags rather than tags applied to a specific 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?

No explicit guidance on when to use this tool vs. alternatives like list_applied_candidate_tags. The description implies listing all tags but doesn't clarify for candidate-specific tags.

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

list_close_reasonsCInspect

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 provided, so description must cover behavior. It does not mention that the operation is read-only, nor does it describe pagination or filtering behavior fully. Minimal 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?

Two sentences, no unnecessary words. Could be slightly more informative, but efficient overall.

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 and no output schema, the description is too sparse. It lacks context about pagination, filtering options, and typical usage patterns, 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 description coverage is 100%, so baseline is 3. The description adds no extra meaning to parameters; it is generic and does not explain the filtering or pagination semantics beyond 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 the tool lists all close reasons, specifying the resource ('close reasons') and the action ('list'). It is distinct from siblings like list_rejection_reasons, 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 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 only describes the action without 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_custom_field_departmentsBInspect

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 provided, and the description does not disclose behavioral traits such as pagination, filtering capabilities, or data volume limitations. The input schema implies pagination (cursor, per_page) and filtering (ids, created_at, updated_at), but the description does not reinforce this behavior or add 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?

The description is a single, concise sentence with no unnecessary words. It is front-loaded with the verb and resource. However, it could benefit from additional structure or detail without becoming overly long.

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 lack of output schema and annotations, and the moderate complexity with 5 optional parameters, the description is too brief. It does not mention pagination behavior, return format, or the meaning of the mapping data, leaving significant gaps for an agent to understand the full 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 the schema already documents all parameters. The description does not add any additional meaning beyond the schema, achieving the baseline 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 is a single clear sentence stating the tool lists custom field to department mappings in Greenhouse. It uses a specific verb 'list' and resource 'custom field to department mappings', distinguishing it from sibling tools that list other entities.

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

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 specify when to use this tool versus alternatives among the many sibling list tools, such as when to choose list_custom_field_departments over list_custom_fields or list_departments.

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 provided, so description must cover behavior. It only states 'List' (implies read-only), but omits pagination behavior, rate limits, or any side effects. 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.

Conciseness5/5

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

Single sentence, 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?

With 5 parameters, no output schema, and no annotations, the description is too sparse. It doesn't explain return format, pagination details (beyond cursor hint), or how filters combine.

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. Description adds no extra meaning beyond what schema already provides for parameters like 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?

Description clearly states the action ('List') and the specific resource ('custom field to office mappings'), distinguishing it 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?

No guidance on when to use this tool vs alternatives. Does not mention prerequisites, filtering strategies, or contrast with related list operations.

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

list_custom_field_optionsAInspect

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
Behavior3/5

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

The description indicates it lists options but does not disclose pagination, filtering, or that it is a read operation. With no annotations, the description carries the burden; it provides basic but not deep 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 short sentences with no redundant information. Every word is necessary and the description is front-loaded with the core action.

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 no output schema and missing annotations, the description could be more complete by hinting at pagination or filter capabilities. However, the schema covers parameters, so the agent can infer details. It is adequate but not fully comprehensive for a 5-param 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 domain context by mentioning field types, which adds value beyond the schema 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?

The description clearly states the tool lists custom field option values in Greenhouse, specifying they are for single_select and multi_select fields. It distinguishes from sibling 'list_custom_fields' by focusing on field options rather than 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?

The description implies when to use it (to see available choices for custom fields) but does not provide explicit exclusions or compare to alternatives like 'list_custom_fields'. No guidance on 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_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
Behavior3/5

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

No annotations exist, so the description must cover behavioral traits. It implies a safe read operation but does not disclose pagination behavior (cursor/per_page), rate limits, or that all parameters are optional. Adequate but limited.

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 action ('List custom field definitions'), no redundant words. Every sentence provides 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?

With 9 parameters and no output schema, the description is minimal. It explains what the tool lists but does not address how filters combine or pagination details. Sufficient for a simple list operation 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%, so each parameter already has a description. The tool description does not add extra meaning beyond what the schema provides, resulting in 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 tool lists custom field definitions, specifying the output includes field names, types, and the object they apply to (job, candidate, etc.). This distinguishes it from other list_* tools in siblings.

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 when not to use it. There is no mention of prerequisites, filters behavior, or relationship with other list_custom_field_* tools.

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 lacks behavioral details beyond the action. Does not mention pagination, rate limits, or response format. Schema implies pagination via cursor/per_page but description does not add 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 of 9 words, highly concise. Could add more context without being verbose, but structure is clean and front-loaded.

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 with comprehensive parameter descriptions, description is adequate but minimal. Lacks info on return format, what constitutes a 'default' interviewer, and is incomplete relative to tool complexity.

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 detailed parameter descriptions. Tool description adds no extra meaning beyond schema; baseline score of 3 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 uses specific verb 'List' and resource 'default interviewers' with context 'configured for interview stages in Greenhouse.' Distinguishes 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?

Implied usage for listing default interviewers, but no explicit guidance on when to use this vs alternatives like list_interviewers or list_scheduled_interviews. No when-not or prerequisite info.

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 present. The description only says 'List departments in Greenhouse,' omitting behavioral traits such as pagination behavior, idempotency, rate limits, or what happens with empty 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?

Extremely concise at 4 words, front-loaded with purpose. However, it is so minimal that it sacrifices valuable information, making it less effective than a slightly longer, more informative description.

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 incomplete. It does not explain how filters work together, pagination mechanics, or the structure of the response, leaving the agent with 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?

Schema coverage is 100%, so description does not need to add parameter details. It adds no extra semantic meaning beyond what the schema already provides, earning a baseline 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?

Clearly states 'List departments' with a specific resource. However, it does not distinguish itself from numerous sibling 'list_*' tools, missing an opportunity to clarify its unique filtering or 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_offices or list_custom_field_departments. No context, prerequisites, 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_email_templatesBInspect

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?

With no annotations provided, the description carries full burden. It mentions that template details are returned 'when expanded access is available', hinting at an authorization condition, but does not explain what expanded access means, nor does it describe pagination, rate limits, or side effects. The behavior is partially transparent.

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 only two sentences, no fluff. It front-loads the core action and then adds return details, making it easy to parse. It could be slightly improved with structured formatting but is 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 7 parameters and no output schema, the description is incomplete. It omits important context about pagination (cursor behavior), filtering constraints (cursor exclusivity), and the meaning of 'expanded access'. For a tool with complex filtering, it lacks sufficient detail.

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 well-described parameters, so the baseline is 3. The description adds no additional parameter semantics beyond the schema, such as usage hints or constraints on the filters.

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', fully distinguishing it from sibling tools like list_applications or list_candidates. It also mentions the return fields, leaving no ambiguity about the tool's function.

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

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 other list tools or when not to use it. It does not mention prerequisites, alternatives, or typical use cases, making it difficult for an agent to decide between this and sibling tools.

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?

With no annotations, the description carries full burden for behavioral disclosure. It merely restates the tool's name without noting pagination, filtering, or any side effects. This is insufficient for a read operation with multiple optional parameters.

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?

A single sentence is very concise, but it sacrifices useful context. It earns its place by being short, yet could be expanded slightly for better 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?

Given the 5 optional parameters including pagination (cursor, per_page) and date filters, and no output schema, the description is incomplete. It should mention that results are paginated, how filtering works, or what the response contains.

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 the schema's parameter descriptions, which already detail formats like ISO8601 and operators for 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 'List focus candidate attributes in Greenhouse,' specifying the verb and resource. It distinguishes from many sibling tools like list_applications or list_jobs, but could be more explicit about what 'focus candidate attributes' 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?

No guidance on when to use this tool versus alternatives like list_candidate_attribute_types or other list tools. No context on prerequisites or typical use cases.

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?

No annotations are provided, so the description bears full responsibility. It states the tool lists grants but does not disclose behavioral traits such as pagination behavior, read-only nature, or any side effects. With no annotations, the minimal description 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.

Conciseness5/5

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

Two sentences: the first states the primary action and resource, the second clarifies the purpose. No wasted words, efficiently front-loaded.

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 parameter schema is well-documented (100% coverage), the description lacks details about return format or data shape, especially since no output schema is provided. For a list tool with 5 optional parameters, it is somewhat incomplete but not critically so.

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% for all 5 parameters. The description adds no extra meaning beyond the schema, meeting the baseline. It does not clarify parameter interactions or provide format examples beyond what schema already offers.

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 resource 'future job permission grants', specifying it shows advance permission scheduling. It distinguishes itself from sibling tools like list_job_permissions or list_user_job_permissions by focusing on future permissions.

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_user_job_permissions). It does not provide context or exclusion criteria, leaving the agent to infer usage.

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 should disclose behavioral traits like pagination or filtering, but it only states the basic action. The agent learns nothing about side effects or constraints.

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 with no unnecessary words. It efficiently communicates the core 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?

Given five parameters (including complex filter formats like created_at and updated_at) and no output schema, the description is incomplete. It does not mention pagination, filtering, or return format.

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 parameters are described in the input schema (100% coverage), so the description adds no extra meaning beyond what the schema already provides. Baseline score of 3 is appropriate.

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

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 interviewers assigned to interviews, using a specific verb and resource. However, it does not differentiate from similar sibling tools like list_default_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 such as list_default_interviewers or list_interviewer_tags, leaving the agent to infer usage from context.

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

list_interviewer_tagsCInspect

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 must disclose behavioral traits. It states the tool 'lists' (read-only) but fails to mention pagination, cursor usage, date filtering, or that it returns tag objects. The description adds minimal behavioral context beyond the verb.

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 two sentences and front-loaded with the verb and resource. While brief, it wastes no words and is easy to parse. Could slightly improve by adding a bit more 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?

The description lacks information about the return value (no output schema), pagination behavior, filtering options, or any usage context. Given the tool's complexity (5 parameters, all optional), the description is insufficient for an agent to use it effectively.

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

Parameters3/5

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

Schema coverage is 100%, and the schema itself provides adequate descriptions for all 5 parameters. The description does not enhance parameter meaning beyond stating the tags' purpose, so a 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 the verb 'list' and the resource 'interviewer tags', and adds context that they categorize interviewers by skill or role. This helps differentiate from similar tools like list_candidate_tags, though it does not explicitly mention alternatives.

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 siblings such as list_candidate_tags or list_interviewers. There is no mention of prerequisites 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_interview_kitsBInspect

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 partially compensates by noting that certain details are shown only 'when expanded access is available,' hinting at a permission-based behavior. However, it does not disclose that the operation is read-only, whether it triggers side effects, or that pagination is used. The cursor parameter is explained only in schema.

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—two sentences front-loading the primary action ('List interview kits') and key details. Every word is meaningful; no fluff or repetition.

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 lack of output schema, the description outlines what information is returned (exercises, anonymization settings, stage association) but omits details like pagination, default sorting, or the fact that cursors are used. For a selection tool with 8 parameters, the context is adequate but not fully 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 all parameters with descriptions (100% coverage). The tool description mentions 'expanded access,' tying to the on_behalf_of_user_id parameter, adding minimal context. Otherwise, no additional parameter semantics beyond the schema are provided.

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 identifies the tool as listing interview kits, a specific resource, and mentions key data shown (exercises, anonymization settings, stage association). It is easily distinguishable from sibling list tools like list_interviews or list_job_interview_stages, though it could be more precise 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 is provided on when to use this tool versus alternatives (e.g., list_interviews). It does not mention prerequisites, such as the need for 'expanded access' or when to use different filters like job_ids vs ids. Missing explicit when-to-use or when-not-to-use directives.

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
Behavior2/5

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

With no annotations, the description should disclose key behavioral traits. It does not confirm that the tool is read-only, explain pagination via the cursor parameter, or address rate limits or side effects. The only behavioral info is the list of status values.

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 two sentences, front-loading the core action and return fields. It avoids wordiness but could be slightly more structured to separate the return fields and status list more clearly.

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 12 parameters and no output schema, the description covers the basics (return fields, status values) but omits important context such as pagination behavior, date filtering format, and differentiation from list_scheduled_interviews. This leaves moderate gaps in 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 value by listing the return fields and enumerating all status values, which helps agents understand the meaning of the status parameter and the expected output 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 it lists interviews in Greenhouse and specifies the return fields (status, times, organizer, application, job). However, it does not explicitly differentiate from sibling tools like list_scheduled_interviews, which could cause confusion 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 is provided on when to use this tool versus alternatives. There is no mention of prerequisites, context, or exclusions, 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_job_board_custom_locationsBInspect

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 carries full burden but only says 'List' without disclosing behavioral traits like read-only nature, rate limits, or sorting behavior.

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

Conciseness5/5

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

A single, front-loaded sentence with no superfluous words. 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?

Despite good parameter descriptions, the tool lacks an output schema and the description does not explain response structure, pagination behavior, or default sorting – leaving gaps for a list endpoint.

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 for all 7 parameters, so the description adds little extra meaning. 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 the verb 'List' and the resource 'custom locations defined on job boards in Greenhouse.' It is specific and distinct from sibling tools, which list other entities like candidates 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?

The description provides no guidance on when to use this tool versus alternatives, nor does it mention any 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_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 are provided, so the description carries the full burden. It does not disclose whether the operation is read-only, safe, or destructive. It also omits information about pagination, response structure, or any limitations (e.g., how many results are returned by default). The schema shows pagination parameters (cursor, per_page), but the description does not mention pagination behavior or rate limits.

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

Conciseness3/5

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

The description is a single sentence of 15 words, which is concise. However, it sacrifices important details that would improve usability (e.g., return format, pagination). It is not well-structured to front-load critical information; it merely states the basic 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?

Given the tool has 7 parameters, no output schema, and no annotations, the description is too brief. It does not explain the return value (e.g., list of attribute objects), how pagination works, or how it relates to other list tools. A more complete description would include behavioral context and usage examples.

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 7 parameters are documented in the schema with descriptions (100% coverage), so the schema provides the necessary information. The description adds no additional meaning beyond the schema. Thus, 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 uses the verb 'List' and identifies the resource as 'candidate attributes configured on jobs', specifying that these define evaluation criteria. It implies a job-specific scope, which helps differentiate it from siblings like list_candidate_attribute_types (which lists attribute types, not job-specific associations). However, it does not explicitly distinguish from other closely related tools like list_focus_candidate_attributes.

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 the tool is used to retrieve evaluation criteria for candidates on a specific job, but it offers no explicit guidance on when to use it versus alternatives (e.g., list_candidate_attribute_types, list_focus_candidate_attributes). No when-not conditions or prerequisites are stated.

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

list_job_hiring_managersBInspect

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 exist, and the description does not disclose behavior beyond listing. There is no mention of permissions, rate limits, or whether the operation is read-only.

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 (4 words), but it is front-loaded and efficient. However, it lacks detail that could be useful without sacrificing 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 7 parameters, no output schema, and no behavioral notes, the description is incomplete. It does not explain pagination or response shape, which is needed 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 description coverage is 100%, so the baseline is 3. The tool description adds no additional meaning to the 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.

Purpose5/5

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

The description 'List hiring managers assigned to jobs in Greenhouse' uses a specific verb and resource, making the purpose clear. It distinguishes itself from sibling tools that deal with other job roles (e.g., owners, recruiters).

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_job_owners or list_job_recruiters. The description lacks any context on preferred scenarios or exclusions.

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

list_job_interviewsBInspect

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
Behavior2/5

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

No annotations provided. Description only states it lists interviews, but does not disclose pagination behavior, rate limits, authentication needs, or any side effects. Minimal behavioral context beyond the listing nature.

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, 18 words, front-loaded with purpose. No wasted words.

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

Completeness2/5

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

With 9 parameters, no output schema, and no annotations, the description is minimal. It does not explain return structure, pagination details, or parameter interactions. Incomplete for a tool of this complexity.

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 has 100% coverage with descriptions for all 9 parameters. The description does not add additional meaning beyond what the schema provides. Baseline is 3 due to high schema 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 verb (List), resource (interviews configured on jobs in Greenhouse), and details shown (scheduling type, duration, instructions). Among siblings like 'list_interviews' and 'list_scheduled_interviews', it distinguishes itself by specifying 'configured on 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 on when to use this tool versus siblings like 'list_interviews' or 'list_scheduled_interviews'. No conditions or alternatives mentioned.

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?

No annotations are provided, so the description carries the full burden. It only states what the tool lists, but fails to disclose behavioral traits such as pagination, filtering, read-only nature, 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 concise with two sentences, no wasted words, and front-loaded with the verb. However, it could include more relevant details 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 complexity (7 parameters, no output schema, no annotations), the description is incomplete. It does not explain pagination behavior, return format, or how this tool relates to other list tools in the 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 descriptions for all parameters. The tool description adds no additional meaning beyond the schema, so the baseline score of 3 is appropriate.

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

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', adds context '(pipeline stages)' and specifies the platform 'Greenhouse'. It distinguishes from similar sibling tools like 'list_application_stages' by noting 'configured on jobs' and 'interview pipeline structure'.

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 does not provide any guidance on when to use this tool versus alternatives. There is no mention of when not to use it, prerequisites, or comparisons to siblings like 'list_application_stages'.

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

list_job_notesAInspect

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
Behavior3/5

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

No annotations are provided, so the description carries the burden of behavioral disclosure. It states it's a list/read operation ('List notes on jobs'), but doesn't detail pagination behavior, ordering, rate limits, or required permissions. The schema explains the cursor parameter for pagination, which partially compensates.

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 with no redundant information. It is front-loaded and efficient.

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 list tool with 8 parameters and full schema documentation, the description is adequate. However, it could mention that results are paginated (though cursor is documented in schema) or describe typical return fields. Given no output schema, slightly more context 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 the baseline is 3. The description adds no additional meaning beyond what the schema provides (e.g., it doesn't explain the filter format for 'created_at' or 'updated_at'). The description is generic.

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 notes on jobs and defines what notes are ('comments/observations about jobs'). This distinguishes it from sibling tools like 'list_notes' (which likely lists all notes) and other list tools.

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

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_notes, list_applications). There is no mention of prerequisites, exclusions, or scenarios where this tool is preferred.

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 are provided, so the description bears full burden. It does not disclose behavioral traits such as pagination, filtering behavior, authorization requirements, or that this is a read-only operation. The minimal description leaves 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.

Conciseness4/5

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

The description is a single, efficient sentence with no wasted words. However, it could be slightly expanded to include key details 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 8 optional parameters, no output schema, and no annotations, the description is too sparse. It does not explain return format, pagination behavior, or any constraints, leaving the agent with insufficient context for 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?

All 8 parameters have schema descriptions (100% coverage), so the baseline is 3. The tool description adds no extra meaning beyond the schema; it mentions owner types, but that is already captured in the 'type' enum.

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'), the resource ('owners assigned to jobs'), and specifies the owner types ('recruiters, sourcers, coordinators'). It effectively distinguishes from sibling tools that add or remove owners.

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 use for listing owners but offers no explicit guidance on when to use this tool versus alternatives like add_job_coordinator_owner or remove_job_coordinator_owner. No when-not 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_job_post_locationsBInspect

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?

The description is minimal and does not disclose behavioral traits. With no annotations, the description should explain pagination behavior, output structure, or any side effects, but it only states the basic purpose. The presence of cursor and per_page parameters implies pagination, but this is 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?

The description is a single sentence that efficiently conveys the tool's purpose. It is front-loaded and contains 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 10 parameters and no output schema, the description is incomplete. It does not mention pagination, filtering behavior beyond what's in the schema, or typical response format. For a list operation with complex filtering, more context is needed.

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 additional meaning beyond what the schema already provides for each parameter. It repeats 'list locations' but adds no parameter-specific details.

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 (locations associated with job posts in Greenhouse). It accurately distinguishes the tool from siblings like list_job_board_custom_locations and list_offices, as it specifically ties locations to job posts.

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 guidance is provided. The description does not indicate when to use this tool over related tools such as list_job_board_custom_locations or list_offices. There are no examples or context for when this tool is appropriate.

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

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?

With no annotations provided, the description carries full burden for behavioral transparency. It only explains what a job post is, but fails to mention that this is a read-only operation, any authentication requirements, or pagination behavior (though cursor parameter hints at it).

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 no unnecessary information. However, it could be slightly more structured to front-load the purpose and include key behavioral notes.

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 parameters, no output schema, and no annotations, the description is too brief. It does not explain pagination, filtering behavior, or response format, leaving significant gaps for an AI agent to correctly invoke the 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 schema already documents all parameters thoroughly. The description adds no additional parameter meaning beyond the schema, earning 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 explicitly states the verb 'List' and the resource 'job posts', and distinguishes from sibling tools like list_jobs by specifying that job posts are the public/internal postings of a job including title, content, and questions.

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_jobs, list_job_board_custom_locations). The description does not mention prerequisites or context for usage.

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

list_jobsCInspect

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?

With no annotations, the description bears full responsibility for behavioral traits. It fails to mention key aspects like pagination (cursor, per_page), filtering capabilities, or that it's a read-only operation. The description only hints at return fields.

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, but could benefit from additional 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?

Given 13 parameters and no output schema or annotations, the description is too minimal. It omits significant details like pagination behavior, filter usage, and response format, which are critical 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?

Schema coverage is 100%, so parameters are well-described in the schema. The description adds minimal extra meaning beyond listing example return fields, not explaining parameters like cursor or pagination.

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 jobs in Greenhouse and specifies return fields, distinguishing it from get_job (singular) and other list tools like list_job_posts 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 explicit guidance on when to use this tool versus alternatives. For instance, it doesn't mention that for a single job, get_job is more appropriate, or how list_jobs differs from list_job_posts or list_job_interviews.

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

list_notesAInspect

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.
Behavior4/5

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

With no annotations, the description carries full burden. It discloses key behaviors: default metadata only, detail_profile=body for subject and body (subject to access), note type filtering, cursor pagination constraints, reason requirement for broadened response, and on_behalf_of_user_id requirement for body. However, it does not explicitly state read-only nature or rate limits.

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

Conciseness5/5

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

Two sentences with a bullet list of types. Front-loaded with purpose. Every sentence adds information without redundancy. Highly efficient.

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 and no output schema, the description covers default behavior, projection options, note types, and key parameter constraints. Missing details on pagination mechanics and response shape, but adequate for the complexity.

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 3. The description adds value by explaining the effect of detail_profile, listing note types, and clarifying constraints on cursor, reason, and on_behalf_of_user_id. This goes beyond the schema's parameter 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 clearly states the tool lists notes in Greenhouse and specifies what is returned by default and with detail_profile=body. It also lists note types. However, it does not explicitly differentiate from sibling tools like list_job_notes, leaving some ambiguity about 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 provided on when to use this tool versus alternatives like list_job_notes or list_applications. The description only states what the tool does, not when it is appropriate to use.

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

list_offersBInspect

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?

The description reveals that compensation fields depend on 'expanded access' and that detail_profile=compensation includes custom fields. However, it does not explain pagination constraints, required parameters under certain conditions, or date format requirements. With no annotations, this is moderate transparency.

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 most important information (what it does and default behavior) is presented first.

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 11 parameters and no output schema, the description should provide more context about conditional behavior, pagination, and output structure. It only covers a small part of the tool's capabilities.

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 11 parameters with descriptions (100% coverage). The tool description adds context for the detail_profile parameter (expanded access condition) but does not add significant new meaning to other 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 offers in Greenhouse, specifies the default return fields, and mentions the detail_profile option. It uniquely identifies the resource among siblings, as there is no other list_offers tool.

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 other offer-related tools (e.g., create_offer_draft, patch_offer_core). It does not state 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.

list_officesCInspect

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?

With no annotations, the description must disclose behavioral traits. It only states 'list offices' without mentioning pagination (evident from cursor parameter), read-only nature, or response structure. The agent cannot infer behavior 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.

Conciseness3/5

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

The description is extremely concise (6 words) but under-specified. While brevity is positive, it lacks structure and fails to convey necessary context, earning an average score.

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 is provided, so the description should explain return values, pagination details, or default behavior. It does none of these, leaving significant gaps for a simple 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?

The input schema already provides 100% description coverage for all 5 parameters, including examples and constraints. The description adds no additional parameter context, meeting the baseline expectation.

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 'offices', making the primary purpose obvious. However, it does not differentiate from numerous sibling list_* tools (e.g., list_jobs, list_candidates), which share the same verb structure.

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 guidance is provided. The description does not specify when to use this tool over alternatives, nor does it mention filtering, pagination, 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_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 are provided, so the description carries the full burden. It states what fields are returned but does not disclose mutability (read-only implied but not stated), authentication requirements, rate limits, or pagination behavior. For a read operation, more transparency would be beneficial.

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 (two sentences), front-loaded with the main verb and resource, and every sentence adds value. No unnecessary words or redundancy.

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 13 parameters, no output schema, and no annotations, the description partially compensates by listing the main returned fields. However, it lacks details on pagination, error conditions, and how the filters interact (e.g., cursor exclusivity). The crowd of sibling list tools also demands clearer differentiation, which is missing.

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 all 13 parameters have descriptions in the schema. The tool's description does not add meaning beyond the schema, which is adequate. 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 the verb ('List'), the resource ('openings (requisitions)'), and specific fields returned ('headcount, target start dates, close reasons, and which application filled each opening'). It distinguishes from sibling tools like list_jobs by specifying the 'openings' context, but does not explicitly differentiate from any tool that might also list openings.

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 does not mention when not to use, prerequisites, or contrast with sibling tools like get_job or list_jobs. Given the large number of sibling tools, this is a significant gap.

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 disclose behavioral traits. It only states the basic action ('list') without any mention of performance, rate limits, filtering behavior, or return format. 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 a single concise sentence that immediately identifies the tool's purpose. It is front-loaded and contains 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 5 parameters, no output schema, many sibling tools, and no annotations, the description is too minimal. It fails to hint at filtering/pagination capabilities or what the response contains, which would help an agent quickly understand the tool's utility.

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, which already documents each parameter (e.g., ids, cursor, per_page, created_at, updated_at) clearly.

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 identifies the tool's action ('List') and resource ('prospect detail records in Greenhouse'), which distinguishes it from sibling list tools like 'list_prospect_pools' or 'list_candidates'. However, it does not mention filtering or pagination capabilities.

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 other list tools in the sibling list. No context or alternative suggestions are given, leaving the agent to infer usage solely from the name.

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

list_prospect_poolsBInspect

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
Behavior2/5

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

No annotations are present, so the description carries the full burden. It mentions the output fields but lacks details on pagination, default filters, error behavior, or that this 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.

Conciseness5/5

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

Two concise sentences with no wasted words. Front-loaded with the primary action.

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

Completeness2/5

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

Given 9 parameters and no output schema, the description is too minimal. It does not explain pagination, filtering behavior, return format, or error handling, leaving gaps for a tool with this complexity.

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 further 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.

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 prospect pools in Greenhouse' and specifies what it shows (names, descriptions, associated departments/offices/jobs). This distinguishes it from sibling tools like list_prospect_pool_stages and list_departments.

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. With many sibling list tools, explicit context for when to choose this one over others would help.

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
Behavior1/5

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

No annotations are provided, and the description only says 'List stages' without disclosing pagination behavior, read-only nature, or any other behavioral traits. The description does not compensate for the lack 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.

Conciseness3/5

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

The description is a single sentence that is concise but too terse; it lacks necessary context such as filtering capabilities or output format while still being front-loaded.

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?

Without annotations or output schema, the description is incomplete. It does not explain return values, pagination, or how parameters like cursor or date filters are used, leaving the agent without sufficient context for 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?

Schema description coverage is 100%, so the schema already documents all parameters. The description adds no extra meaning beyond the schema, meeting 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 action (list) and resource (stages within prospect pools) and is distinguishable from sibling tools like list_prospect_pools and 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 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, no prerequisites, and no 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 provided, the description carries the full burden. It only mentions the output ('who referred candidates and their associated user ID') but does not disclose behavioral traits such as read-only nature, pagination behavior, or potential large result sets.

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, front-loaded with the purpose. Every sentence adds value with no wasted words.

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

Completeness2/5

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

The tool has 6 parameters and no output schema or annotations. The description is minimal and does not explain return format, pagination (though cursor is in schema), or important constraints like cursor must be the only filter. It lacks completeness given the tool's complexity.

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 6 parameters. The description adds no additional parameter meaning beyond what the schema provides, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description uses the specific verb 'List' and resource 'referrers', clearly stating that it shows referrers and their associated user IDs. This distinguishes it from sibling tools, which are other list endpoints.

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 are there any exclusions or context about prerequisites. The description simply states what the tool does without usage direction.

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

list_rejection_detailsAInspect

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
Behavior3/5

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

No annotations are provided, so the description must convey behavioral traits. It indicates a read operation returning specific fields, but does not mention pagination behavior (cursor, per_page) or rate limits. The schema hints at pagination but the description does not clarify.

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: the first states the main action, the second specifies return fields. Concise and front-loaded with essential info, no redundant text.

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 is fairly complete for a list operation with 8 parameters. It specifies the tool's purpose and return fields. However, it could mention that results are paginated by default (as inferred from cursor and per_page parameters) 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 the description adds minimal value beyond the schema. The description mentions return fields that relate to parameters like application_ids and rejection_reason_ids, but this is more about context than parameter semantics.

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 rejection details for Greenhouse applications, specifying the exact return fields (application_id, reason_id, rejected_at, rejected_by). This distinguishes it from sibling list tools, as no other sibling focuses on rejection details.

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 'disposition hygiene' but does not explicitly state when to use this tool vs alternatives like list_applications or list_rejection_reasons. No exclusions or 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_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, so the description carries full burden. It only states the tool lists all reasons, but does not disclose behavioral traits such as read-only nature, permissions needed, pagination behavior, or any side effects. The schema implies pagination via cursor and per_page, but description omits 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, efficient sentence that conveys the core purpose without extraneous words. It is front-loaded and directly relevant.

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 6 parameters and no output schema, the description should provide more context about return value structure or pagination behavior. It lacks details on what fields the rejection reasons contain and how pagination works, which are important for proper 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 description coverage is 100%, so baseline is 3. The description adds no additional meaning beyond what the schema already provides for parameters. It does not explain how to use parameters effectively.

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 all rejection reasons in Greenhouse and indicates they are predefined reasons for rejecting candidates. This verb-resource combination is specific and distinguishes it from sibling tools like list_close_reasons.

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 by stating these reasons are available when rejecting candidates, but it does not explicitly specify when to use this tool versus alternatives like list_rejection_details. No when-not-to-use guidance 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_scheduled_interviewsCInspect

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.
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 a conditional return ('when expanded access is available') but omits pagination, ordering, error handling, or effects of filters, 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?

A single, front-loaded sentence that efficiently conveys the core purpose and return details. No wasted words; concise and to the point.

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 parameters, no output schema, and no annotations, the description is far too brief. Lacks crucial details such as pagination behavior, response structure, error conditions, and the meaning of 'expanded access', making it incomplete 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?

Schema coverage is 100% with descriptions for all 11 parameters. The description adds no extra meaning beyond the schema, meeting the baseline for high coverage but not enhancing understanding of format or usage nuances.

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 'scheduled interviews', with specific return fields. However, it does not differentiate from similar sibling tools like list_interviews or list_job_interviews, 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 on when to use this tool versus alternatives. The phrase 'when expanded access is available' hints at access constraints but lacks explicit context for selection among many list tools.

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

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?

Without annotations, the description should disclose behavioral traits. It says 'List' implying a read operation, but it does not provide details about pagination, filtering, or potential side effects. The description is too minimal to inform an agent about the behavior beyond 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.

Conciseness3/5

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

The description is a single sentence with no redundant words, but it is too terse and lacks important context. It could be improved by front-loading key details.

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 with rich schemas and no output schema or annotations, the description is not complete. It fails to mention pagination, filtering capabilities, or return structure. The tool's complexity requires a more thorough 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 coverage is 100%, so all parameters are described in the schema. The description adds no additional meaning beyond what is already in 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 verb 'List' and the resource 'scorecard candidate attribute ratings', and it specifies the context 'in Greenhouse'. However, it does not differentiate from similar sibling tools like list_focus_candidate_attributes or list_scorecard_question_candidate_attributes.

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 when not to use 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_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 carries the full burden for behavioral disclosure. It only states 'list' which implies a read operation, but does not explicitly confirm read-only behavior, authentication needs, rate limits, or pagination behavior beyond what the schema hints.

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 efficiently conveys the tool's purpose. While more detail could be added, there is no wasted text, and the core function is immediately clear.

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 5 parameters and no output schema or annotations, the description provides no context beyond the basic purpose. It lacks information on return format, pagination, or the relationship between parameters (e.g., cursor exclusivity), leaving the agent underinformed for 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?

All five parameters have descriptions in the input schema (100% coverage), so the schema already documents their meaning. The description adds no additional parameter context, earning the baseline score 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 action (list) and resource (scorecard question answer option definitions) and the platform (Greenhouse). It is specific and uses a verb+resource structure. However, it does not differentiate from similar sibling tools like list_scorecard_question_options or list_scorecard_question_answers, which may 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?

The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. Sibling tools are numerous and similar, making the lack of usage context a significant gap.

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?

With no annotations provided, the description bears full responsibility for behavioral disclosure. It does not mention pagination, filtering capabilities, or any traits 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?

Extremely concise at one sentence. While effective, it could be slightly expanded to include key behavioral details 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?

The tool has 5 parameters and no output schema, yet the description only states the basic function. It omits pagination details, filter usage, and return value structure, 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 description coverage is 100%, so baseline is 3. The description adds no additional parameter meaning beyond what the schema already provides (e.g., filter formats, pagination behavior).

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 ('List') and the specific resource ('scorecard question answer submissions') within a defined context ('in Greenhouse'). It effectively distinguishes this tool from siblings like 'list_scorecards' and 'list_scorecard_questions'.

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., other list tools) or any prerequisites. The description lacks context for appropriate invocation.

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_attributesAInspect

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
Behavior3/5

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

No annotations provided, so the description carries the full burden. It only states 'List... mappings' without disclosing whether there are side effects, rate limits, or data freshness. However, it is a listing operation, so read-only behavior is implied. The description does not contradict annotations (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.

Conciseness4/5

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

Single sentence is concise and front-loaded with the core action. It avoids unnecessary words. However, it could be slightly expanded to include a brief note on pagination or use case 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 lack of output schema and the presence of many sibling list tools, the description is insufficiently complete. It does not explain what a 'mapping' entails, what fields are returned, or how it fits into the broader workflow. The agent may struggle to decide between this and similar tools like list_scorecard_candidate_attributes.

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 what the input schema already provides for each parameter. The schema itself describes filters and pagination clearly.

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 'scorecard question to candidate attribute mappings' which is a specific verb+resource. This distinguishes it from sibling list tools that list other entities (like list_scorecard_candidate_attributes or list_scorecard_question_options).

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. With many similar list tools, the agent must infer usage from the name alone. The description does not provide context, exclusions, or mention of related tools, so usage is only implied.

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
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 does not mention that this is a read-only operation, how pagination works, any rate limits, or authentication requirements. The minimal description leaves the agent uninformed about side effects or safe usage.

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 with no filler or redundant information. It is appropriately sized for the tool's simplicity.

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, the description should explain what is returned. It does not. Additionally, it omits details about pagination behavior (cursor, per_page) which are crucial for correct usage. The tool has 5 parameters but the description adds no contextual value beyond the 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 all parameters are already documented in the schema. The description adds no further meaning to parameters. 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 states the verb 'list' and the resource 'scorecard question option definitions' clearly. However, it does not differentiate this tool from many similar sibling tools like 'list_scorecard_question_answer_options' or 'list_scorecard_questions', leaving some ambiguity about what exactly an 'option definition' entails.

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, nor does it mention prerequisites or common use cases. It simply states the action without context.

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

list_scorecard_questionsBInspect

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, and the description does not disclose behavioral traits such as pagination, rate limits, or data freshness. The description is too minimal to inform the agent of important behavioral aspects.

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 and front-loaded, with no wasted words. It is appropriately sized for a simple listing tool, though slightly more context could be added.

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 with filters) and no output schema, the description fails to explain the structure of scorecard question templates or the response format. Agents may lack sufficient context to interpret results.

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 all 5 parameters, so the description adds no additional meaning. Baseline 3 is appropriate as the schema suffices.

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 'scorecard question templates in Greenhouse', which is specific and distinguishes it from sibling tools like list_scorecard_question_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?

The description provides no guidance on when to use this tool versus alternatives, nor any prerequisites or common use cases. With many sibling list tools, this is a gap.

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.
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 expanded access requirements for the answers profile, but does not disclose whether the operation is read-only, destructive, or any rate limits or pagination behavior beyond what the schema implies.

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 extraneous words. The first sentence states the primary action and context, and the second handles the key parameter variation. Front-loaded and efficient.

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 10 parameters and no output schema, the description is brief. It covers the main profiles but lacks details on return structure, pagination, or comprehensive guidance on when to use this tool over others. Adequate but not exhaustive.

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 adds minimal value beyond restating parameter details. It reinforces the default profile and the purpose of detail_profile, but does not explain new constraints or formatting 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 explicitly states the verb 'List' and the resource 'scorecards', and distinguishes from sibling tools like list_scorecard_questions by focusing on scorecard objects. The mention of operational vs. details profile clarifies 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 Guidelines3/5

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

The description implies usage by describing the detail_profile parameter but does not explicitly contrast with sibling tools such as list_scorecard_questions. It provides some context for when to use the answers profile but lacks exclusions or alternate tool references.

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

list_sourcesBInspect

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?

With no annotations, the description bears full responsibility for behavioral disclosure. It neither mentions that this is a read-only operation nor describes pagination behavior, rate limits, or any side effects. The schema covers parameter behavior but the description itself is silent.

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 waste, achieving conciseness. However, it could be structured to include key behavioral details in a front-loaded manner without adding length.

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, many siblings, and no output schema, the description is too minimal. It fails to explain return format, pagination,cursor usage, or filtering context, leaving important gaps for the 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 a baseline of 3 is appropriate. The description adds no additional meaning beyond what the schema already provides for each parameter.

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 the resource ('candidate sources') within the context of Greenhouse. It is specific and sufficiently distinguishes from sibling list tools like list_candidates or list_applications.

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

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 the many other list tools. No alternatives, prerequisites, or exclusion criteria are mentioned, leaving the agent without direction on 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?

Annotations are absent, so description must compensate. It mentions 'expanded access' but does not explain behavior beyond that (e.g., error handling, rate limits, or what happens if access is denied). It relies on schema for parameter 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 sentence, which is concise and front-loaded. However, it is slightly too minimal given the tool's complexity, missing important context.

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 6 parameters, pagination, and filtering, yet the description is very brief. No output schema exists, so the description should explain return values, pagination behavior, and conditions like 'expanded access.' It is insufficient for an agent to fully understand the 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 does not add meaning beyond schema; it merely states the tool's purpose. No parameter descriptions are provided in the description text.

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 user email addresses, which is a specific resource. However, it does not explicitly differentiate from sibling tools like list_users, which might also return email addresses. The condition 'when expanded access is available' adds context but could be clearer.

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. With many sibling list tools, the description should mention scenarios or prerequisites (e.g., when expanded access is not available, use list_users instead).

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. It only states 'list' implying read-only, but does not confirm that it's safe, non-destructive, or mention any authentication or rate limits. More transparency is expected.

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 no filler. However, it could be restructured to front-load the most critical context.

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 five parameters and no output schema, the description is incomplete. It doesn't explain pagination behavior, response structure, or common use cases, leaving the agent with insufficient 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 baseline is 3. The description adds no extra meaning beyond the parameter names and schema descriptions; it merely restates the tool's purpose.

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 user job-level permissions, with a specific verb and resource. It distinguishes itself from sibling tools like list_future_job_permissions, though not explicitly, by focusing on 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 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, nor when not to use it. The description provides no context for usage or exclusions.

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?

No annotations provided, so the description carries full burden. It only states it lists definitions and gives role types, but fails to disclose any behavioral traits like pagination, read-only nature, 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.

Conciseness4/5

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

The description is concise with a single sentence and a list of role types, front-loading the purpose. No extraneous information, but could be slightly more structured.

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 optional parameters, no output schema, and no annotations, the description is minimal. It lacks details on how to use filters, pagination behavior, and expected response format, making it incomplete 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?

Schema coverage is 100% and all parameters are well-described in the schema. The description adds no additional meaning beyond the schema, such as how the parameters relate to the role types.

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 has a clear verb ('List') and resource ('user role definitions') and lists three specific role types, distinguishing it from sibling list tools like list_users or list_user_emails.

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. While the role types are listed, there is no context about when to choose this over other list tools, such as list_users or list_job_permissions.

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 carries full burden. It states it lists users and returns profiles, but does not disclose pagination behavior, rate limits, or any side effects. The read-only nature is implied but not explicit.

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

Conciseness4/5

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

The description is a single concise sentence that front-loads the purpose. It is efficient, but could be slightly expanded without losing conciseness to include usage guidance.

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 provides key return fields and implies multiple users. Given no output schema, this is helpful. However, it lacks details on pagination and filtering behavior, which are important 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 description coverage is 100%, so parameters are fully documented in the schema. The description adds no additional meaning beyond the schema; it only restates the returned fields.

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' and the resource 'users', clearly indicating the action and object. It distinguishes from the sibling tool 'get_user' by implying multiple users are returned. The fields returned are specified.

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 'get_user' for single user retrieval, or other list tools. There is no mention of prerequisites 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.

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 the full burden. It discloses that the tool refuses terminal targets and supports preview (dry_run). However, it does not mention authentication requirements, side effects, or error conditions. The behavioral disclosure is adequate 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?

The description is a single sentence that front-loads the core action and includes the two most important constraints. Every word adds value with no redundancy or irrelevant detail.

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 there is no output schema, the description explains the action and key constraints (terminal refusal, preview support). It does not describe return values or error handling, but for a mutation tool, this is acceptable. The description is complete enough for the agent to understand the tool's purpose and behavior.

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

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 does not add any additional meaning to the parameters beyond what the schema already provides (e.g., no syntax or examples). The description focuses only on the overall action.

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 target (another interview stage). It adds two key constraints: refuses terminal targets and supports preview, which distinguishes it from sibling tools like reject_application or patch_application_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 that it refuses terminal targets, implying it should not be used for moving to terminal stages, but it does not explicitly guide the agent on when to use this tool versus alternatives like reject_application or patch_application_metadata. No explicit exclusions or alternatives are named.

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

patch_application_metadataCInspect

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?

With no annotations, the description carries full burden. It adds context by revealing support for 'assignment validation, preview, and no-op detection', indicating safe validation behavior. However, it does not disclose authorization needs, rate limits, or what happens on validation failure, 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?

At 11 words, the description is extremely concise and front-loaded with the main action. However, it sacrifices completeness for brevity; a slightly longer description could cover more ground 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?

Despite having 13 parameters, 4 required, and no output schema, the description provides only minimal behavioral hints. It omits prerequisites, return values, side effects, and error conditions, resulting in significant incompleteness for a tool of this complexity.

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?

Schema coverage is low (38%), and the description adds no parameter-level insight beyond the schema. Terms like 'assignment validation' and 'no-op detection' loosely relate to parameters like dry_run and confirm_application_patch but are not explicitly linked. The description fails to compensate for the 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?

Description clearly states 'Patch application metadata' with specific verb and resource, mentioning additional features like assignment validation and preview. However, it does not differentiate from similar siblings such as 'update_application_assignment' or 'reject_application', which have overlapping 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 explicit guidance on when to use this tool vs. alternatives like 'update_application_assignment' or 'move_application_to_stage'. The mention of 'preview' hints at using dry_run, but no direct when-to-use or when-not-to-use instructions.

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?

The description mentions 'Supports preview and no-op detection,' which hints at a dry-run capability, but does not disclose any behavioral traits such as side effects, idempotency, authentication requirements, rate limits, or what happens on failure. With no annotations, the description carries a heavy burden and falls short.

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

Conciseness2/5

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

The description is extremely short (two sentences), but this brevity comes at the cost of essential information. It is not well-structured and the 'preview and no-op detection' sentence appears tacked on. For a complex tool with 15 parameters, conciseness is not a virtue here.

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?

Given the tool's complexity (15 parameters, no output schema, no annotations, low schema coverage), the description is woefully incomplete. It does not explain what happens on success/failure, the return format, or any contextual usage details. The tool is a mutation, but critical safety and behavior information is missing.

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 only 33%, and the tool description adds no additional meaning to any of the 15 parameters. It does not explain what 'contact fields' means in terms of the parameters (e.g., addresses, phone_numbers, email_addresses). For a tool with low schema coverage, the description must compensate, but it fails entirely.

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 identifies the verb 'patch' and the resource 'candidate contact fields' in Greenhouse, and the tool is differentiated from siblings like patch_candidate_custom_fields or patch_candidate_profile. However, 'contact fields' is somewhat vague and does not enumerate the specific fields (e.g., emails, phones, addresses).

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., patch_candidate_profile for non-contact fields or patch_candidate_custom_fields for custom data). There are no conditions, 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.

patch_candidate_custom_fieldsAInspect

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.
Behavior3/5

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

With no annotations, the description carries full burden. It mentions preview/no-op (via dry_run) and implies a write operation. However, it does not disclose authentication needs, rate limits, or what happens on failure. The confirm_candidate_patch safeguard is not explained.

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 fragments) with no wasted words. It front-loads the main action. While concise, it could include a bit more context without sacrificing 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?

Despite 6 parameters and no output schema, the description does not explain return values, error handling, or how the nested custom_fields object is processed. The tool is moderately complex, so more context is warranted 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 description coverage is 100%, so the schema already documents all parameters. The description adds minimal value beyond mentioning preview/no-op; it does not elaborate on the custom_fields object structure or parameter relationships.

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 custom fields in Greenhouse, using the specific verb 'patch' and identifying the resource. It distinguishes from sibling tools that also patch other entities (e.g., patch_application_metadata). The mention of preview and no-op detection adds specificity.

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 contexts via 'preview and no-op detection' but offers no explicit guidance on when to use this tool vs alternatives like patch_candidate_profile. It does not state prerequisites or exclusions, leaving the agent to infer appropriateness.

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, description carries full burden. Mentions 'preview and no-op detection' but fails to disclose authentication needs, partial vs full update behavior, or error handling.

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

Conciseness4/5

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

Single sentence is concise and front-loaded with purpose. Could be slightly expanded but 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 7 parameters (4 required) and no output schema or annotations, the description under-specifies behavior. Missing details on field constraints, idempotency, and return value.

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% (5/7 params described). Description does not add meaning beyond schema for the remaining parameters; 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 verb (Patch), resource (candidate profile), and context (Greenhouse), distinguishing it from sibling tools like patch_candidate_contact or patch_candidate_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?

No guidance on when to use this tool versus alternatives such as patch_candidate_contact. Missing context on prerequisites or typical use cases.

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?

With no annotations, the description carries the full burden. It discloses one behavioral trait (refuses non-created offers) but omits other important aspects such as error handling, idempotency, required permissions, or side effects. The description is insufficient 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 very concise at two sentences, with no wasted words. However, it sacrifices completeness for brevity; a slightly longer description could add value without being verbose.

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?

Given the tool has 13 parameters (4 required), no output schema, and no annotations, the description is woefully incomplete. It omits crucial details about required fields, the safety confirm_offer_patch mechanism, dry_run behavior, and return value expectations.

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 low (38%), yet the description adds no parameter context. It does not explain the numeric compensation fields (ote, bonus, equity, etc.) nor the required confirm_offer_patch flag. The agent must rely solely on the schema, which has many undocumented 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 (patch) and resource (draft-offer compensation fields in Greenhouse), and the restriction to draft offers differentiates it from sibling tools like patch_offer_core and patch_offer_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 Guidelines3/5

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

The description mentions that it refuses non-created offers, providing a condition for use. However, it does not explicitly contrast with alternatives like patch_offer_core or patch_offer_custom_fields, leaving the agent to infer the scope.

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

patch_offer_coreAInspect

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.
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. It discloses one behavioral trait (refuses non-created offers) but does not cover other important aspects such as idempotency, side effects, or authorization requirements.

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

Conciseness5/5

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

The description is extremely concise with two short sentences that convey the purpose and a key constraint. Every word earns its place, and the structure is front-loaded with the primary action.

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 7 parameters and no output schema, the description only covers the basic purpose and one constraint. It omits details about return values, error conditions beyond refusal, and practical usage guidance, leaving significant gaps for a complex mutation 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 high (86%) and each parameter already has a description in the schema. The tool description adds no additional meaning or context for any parameter, 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 states 'Patch draft-offer core fields in Greenhouse' with a specific verb and resource. It distinguishes from siblings like 'patch_offer_compensation' and 'patch_offer_custom_fields' by focusing on 'core fields'. The additional constraint 'Refuses non-created offers' further clarifies 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 Guidelines4/5

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

The description explicitly states that the tool refuses non-created offers, providing a clear condition for use. However, it lacks explicit guidance on when to use alternatives or when not to use the tool beyond the refusal condition.

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.
Behavior3/5

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

No annotations are provided, so the description must disclose behaviors. It mentions refusal of non-created offers and 'custom_fields-only surface', which are useful. However, it lacks detail on side effects, authorization, or what happens after a successful patch.

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 covers the core purpose and a key constraint. It is concise and front-loaded, though it could include more structured detail without sacrificing 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?

Despite 6 parameters and no output schema, the description omits return value, validation behavior, and the role of the 'dry_run' parameter. For a mutation tool, this leaves gaps in understanding the complete behavior.

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 input schema already explains all parameters. The description adds 'custom_fields-only surface', reinforcing the intent but not adding new parameter-level 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 patches draft-offer custom fields, specifies the scope (draft offers only), and distinguishes from siblings like patch_offer_compensation or patch_offer_core by focusing on 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 Guidelines4/5

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

The description explicitly says 'Refuses non-created offers', which guides when not to use it. It also implies usage for draft offers. However, it does not explicitly contrast with alternative patch tools or provide complete when-to-use/not-to-use guidance.

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

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.
Behavior3/5

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

With no annotations provided, the description carries full burden. It mentions 'Supports preview and no-op detection' and implies a confirmation mechanism via required parameter 'confirm_opening_patch', but lacks details on idempotency, side effects, or authorization requirements.

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

Conciseness4/5

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

The description is a single concise sentence that efficiently conveys purpose and two features. However, it could benefit from structuring into separate lines for clarity, as it currently packs multiple ideas into one sentence.

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 (8 params, nested objects, no output schema, no annotations), the description is incomplete. It omits what 'opening metadata' includes, return value, error handling, and permission requirements, leaving significant gaps.

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?

Schema description coverage is 75% (6 of 8 parameters have descriptions), but the tool description adds no new parameter information beyond hinting at dry_run and confirmation. It does not explain sort_order or custom_fields, leaving agent uncertain.

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' and the resource 'opening metadata in Greenhouse', making the tool's function immediately understandable. It distinguishes from siblings by specifying 'opening metadata' rather than general metadata, and mentions unique features (preview, no-op detection).

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_application_metadata or other patch tools. It does not specify prerequisites, scenarios, 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.

reject_applicationCInspect

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 must disclose behavioral traits. It only states the basic purpose and omits crucial details: that it is a write operation, that confirm_rejection must be true, that it can trigger an email, and that it requires a minimum-reason length.

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 only one sentence, which is concise but severely under-informative for an 8-parameter, mutation tool with nested objects and required confirmation. It lacks front-loaded key details, making it inefficient for an agent to understand 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 (8 parameters, nested objects, validation constraints) and absence of an output schema, the description fails to provide sufficient context. It does not mention the write nature, confirmation requirement, or optional email behavior, 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?

Input schema coverage is 100%, so the schema already documents all parameters. The description adds no additional semantic value beyond what the schema provides, 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 action (Reject) and the resource (application in Greenhouse). It is distinct from sibling tools, as there is no other 'reject' tool; the closest alternative is 'move_application_to_stage' which is a more general operation.

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 move_application_to_stage, nor does it mention prerequisites such as needing a rejection_reason_id or the confirm_rejection requirement.

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.
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 mentions the override flag requirement for active/responsible owners, but does not disclose authentication needs, rate limits, side effects of removal, or what happens when the user is not found. The dry_run parameter and confirm_hiring_team_change are unmentioned, leaving behavioral gaps.

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

Conciseness5/5

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

The description is extremely concise—two sentences with no redundancy. It front-loads the main action and immediately follows with the key condition, earning its place without 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 the complexity (8 parameters, mutation, no output schema), the description is too brief. It lacks context on what a coordinator owner is, the overall removal process, the role of dry_run and confirm_hiring_team_change, and expected outcomes. It covers the core action but leaves the agent to infer or rely on schema alone for many details.

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% with clear descriptions for all 8 parameters. The description adds value by explaining the condition for allow_active_member_removal and allow_responsible_removal, which is not fully apparent from the schema alone.

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 'Remove' and the resource 'coordinator owner from a job hiring team', specifying the single-owner scope and the override condition for active/responsible owners. It effectively distinguishes from sibling tool '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 Guidelines4/5

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

The description explicitly says 'Active or responsible owners require explicit override flags', guiding when to use allow_active_member_removal and allow_responsible_removal. It implies no flags needed otherwise, but doesn't compare directly to alternative tools like add_job_coordinator_owner or other removal variants.

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

remove_job_recruiter_ownerBInspect

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.
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 notes the need for override flags, omitting side effects, permission requirements, rate limits, or confirmation behavior. Significant gaps remain.

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 primary action. No wasted words, every phrase 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 8 parameters, no output schema, and no annotations, the description is too brief. It lacks details on return values, the effect of dry_run, and the behavior of the confirm_hiring_team_change parameter. More context is needed for 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?

Schema coverage is 100%, meeting the baseline. The description adds context about override flags mapping to parameters but does not enhance understanding of other parameters like dry_run or reason 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 it removes a single recruiter owner from a job hiring team, distinguishing it from adding or removing other owner types. The specific verb 'remove' and resource 'recruiter owner' make the action unambiguous.

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?

Provides a condition for using override flags (active or responsible owners) but does not explicitly state when to use this tool versus alternatives like remove_job_coordinator_owner or add_job_recruiter_owner. Guidance is implied but not comprehensive.

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 full burden. It discloses that the tool 'safely' updates and 'refuses' invalid assignments, indicating a validation step. However, it does not describe return behavior, side effects (e.g., notifications), or error scenarios. The dry_run parameter is mentioned in the schema but not in the description. Additional behavioral details (e.g., idempotency, success response format) are missing.

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 and directly communicates the purpose and a key behavioral trait. Every word is relevant; there is no fluff or repetition. It is highly efficient and front-loaded with the essential action.

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 has 7 parameters (4 required), no output schema, and no annotations, the description is adequate but not comprehensive. It covers the core action and a safety constraint but omits what the tool returns upon success or failure. Without an output schema, the agent would benefit from knowing the response format. The description is minimally sufficient for a write operation 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 description coverage is 100% (all 7 parameters have descriptions). The description adds limited value beyond the schema: it reinforces the constraint that recruiter_id and coordinator_id must be active hiring-team members. It does not elaborate on parameter syntax or relationships. Baseline 3 is appropriate as the schema already documents parameters adequately.

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: 'Safely update application recruiter and/or coordinator assignment in Greenhouse.' It distinguishes from sibling tools like add_job_coordinator_owner and add_job_recruiter_owner, which operate at the job level, by specifying 'application assignment.' The verb 'update' and resource 'application assignment' are specific and unambiguous.

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

Usage Guidelines4/5

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

The description mentions a key usage constraint: 'This tool refuses assignments to users who are not active hiring-team members on the current job.' This helps an agent decide when to use the tool (only for valid team members). However, it does not explicitly state when not to use it or compare with alternative tools (e.g., job-level owner tools). The context is clear but lacks explicit exclusions or alternatives.

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?

No annotations are provided, so the description carries the burden. It discloses the create-only and idempotent behavior, but lacks information on authorization requirements, rate limits, return values, or error handling, which would be beneficial 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 sentences with no extraneous information. The first sentence front-loads the core purpose, and the second provides necessary behavioral context. Every sentence 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 no output schema, the description could be more complete by indicating what the tool returns (e.g., the created note ID) or what constitutes an 'identical note.' As is, it covers the basic behavior but leaves some 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?

Schema description coverage is 89%, so most parameters are already documented. The description does not add significant new meaning to the parameters, beyond implying that 'identical' refers to the note body (or maybe other fields). 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 tool's purpose: 'Create an application note if an identical note is not already present.' It specifies the verb (create) and resource (application note), and distinguishes from sibling tools like upsert_job_note by explicitly mentioning 'application note'.

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 the idempotent behavior ('exact matches become no-ops') and the create-only nature of Harvest notes, giving context for when to use this tool. However, it does not explicitly state when not to use it or list alternative tools.

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?

Discloses core upsert behavior and deduplication logic. However, lacks details on permissions, rate limits, idempotency, or side effects. The 'confirm_job_note_write' parameter suggests safety but is unexplained.

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 efficient sentences that front-load the purpose and then clarify conditional behavior. No redundant or vague phrasing.

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?

Lacks explanation of return values (no output schema) and the deduplication criterion ('identical') is vague. With 9 parameters and 5 required, more context on outcomes would be helpful.

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 covers 78% of parameters with descriptions. The description adds value by explaining the conditional role of note_id. Does not fully compensate for missing schema descriptions on subject and visibility.

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 (create or patch) on a specific resource (job note) and distinguishes based on note_id presence. Differentiates from sibling tools like upsert_application_note.

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 clear conditional usage: patch when note_id present, create otherwise, with deduplication. Does not explicitly discuss when not to use or compare to alternatives.

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

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?

With no annotations, the description carries the full burden. It discloses the idempotent behavior (exact matches are no-ops) and implies creation otherwise. However, it lacks details on permissions required, rate limits, side effects (e.g., notifications), or what happens on non-exact matches.

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 are concise and front-loaded with the core action and condition. No unnecessary words; every sentence adds value.

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

Completeness3/5

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

Given 9 parameters and no output schema, the description is complete enough for the core behavior but lacks context on what an offer-review note is, typical use cases, or expected output (e.g., response format). It covers the essential but leaves gaps for an AI agent to fully utilize.

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 parameters clearly. The description adds no extra meaning beyond stating the idempotent condition. Baseline 3 is appropriate as the description supplements but doesn't significantly enhance parameter understanding.

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 (create/upsert), the resource (offer-review note on the application), and the idempotent condition (exact matches become no-ops). This effectively distinguishes it from sibling tools like 'upsert_application_note' or 'upsert_job_note' by specifying it's for offer-review notes.

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 explains when to use the tool (to create an offer-review note if not present) and the exact-match condition. However, it does not explicitly state when not to use it or mention alternatives like upsert_application_note, leaving room for confusion among the many list and upsert siblings.

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!

Related MCP Servers

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources