Skip to main content
Glama
Comradery64

open-greenhouse-mcp

by Comradery64

list_rejection_reasons

Retrieve rejection reasons and map their names to IDs, enabling precise rejection actions in Greenhouse. Use this to resolve a reason before rejecting or bulk-rejecting applicants.

Instructions

List all rejection reasons. Read-only.

Resolves rejection reason names to IDs. When a user says "reject for 'not enough experience'," use this to find the ID, then pass it to reject_application or bulk_reject.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cursorNoOpaque cursor from a previous call's `next_cursor`, to fetch the next page. When set, all other filters are ignored — they are already baked into the cursor.
per_pageNoResults per page (max 500)
force_refreshNoBypass cache and fetch fresh data

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.6.0
    • addedInput schema / properties / cursor
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Opaque cursor from a previous call's `next_cursor`, to fetch the next page. When set, all other filters are ignored — they are already baked into the cursor.",
      +  "title": "Cursor"
      +}
    • removedInput schema / properties / page
      Removed value: -{
      -  "default": 1,
      -  "description": "Page number (starts at 1)",
      -  "title": "Page",
      -  "type": "integer"
      -}
  2. First observedv0.5.0

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description carries the disclosure burden. It explicitly says 'Read-only,' which is a meaningful behavioral guarantee, and adds that it resolves names to IDs. It does not describe caching or pagination behavior, but the input schema already documents force_refresh and cursor semantics, so the added value is solid.

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 short, front-loaded with the core purpose and read-only nature, and then gives a concrete usage example. Every sentence adds value; there is no fluff or repetition.

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?

For a simple list/lookup tool with a full output schema and 100% parameter coverage, the description is complete. It defines the tool's job, safety profile, and how it fits into the rejection workflow, which is enough for an agent to select and invoke it correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds no extra parameter-level detail, but the schema already thoroughly explains cursor, per_page, and force_refresh, so no significant gap exists.

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?

States a specific action ('List all rejection reasons'), the resource, and a clear purpose ('Resolves rejection reason names to IDs'). This distinguishes it from the sibling list tools and marks it as a lookup/ID-resolution tool rather than a general application or candidate list.

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

Usage Guidelines5/5

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

Provides an explicit usage scenario: when a user mentions a rejection reason by name, use this tool to find the ID, then pass it to reject_application or bulk_reject. This tells the agent exactly when and how to use the tool in a workflow.

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