Skip to main content
Glama

Change an offer status

set_offer_status
Idempotent

Update a job offer's application status and record the change date, moving it through analyzed, applied, interview, offer, accepted, rejected, or discarded stages.

Instructions

Moves an offer along its lifecycle and logs the change with a date. Lifecycle: analyzed -> applied -> interview -> offer -> accepted. Side exits from any point: rejected (the company says no) and discarded (the user decides to stop).

Input Schema

NameRequiredDescriptionDefault
idYesOffer id. E.g. '2026-07-acme'.
statusYesNew status, one of the seven in the lifecycle.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds genuinely new behavioral context beyond that: the operation writes a dated log entry and follows a fixed lifecycle with terminal side exits, which matters when reasoning about state changes. It stops short of stating what happens on an invalid transition or whether exits are reversible.

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

Conciseness5/5

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

Two sentences, front-loaded with the core action before the lifecycle detail. Every clause carries information (action, log side effect, transition order, exit semantics) with no filler.

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?

With only two well-documented parameters, no output schema, and annotations covering safety, the description supplies the one thing the schema cannot: the lifecycle semantics needed to pick a valid status. It leaves open edge behavior such as invalid transitions or reversibility of 'rejected'/'discarded', which is a minor gap for this tool's 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% and the enum is already enumerated, so the baseline is 3. The description goes further by giving the enum values meaning — the progression analyzed -> applied -> interview -> offer -> accepted, plus the two exit states and which of them is company-driven vs user-driven — context the bare enum list does not convey.

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 verb and resource — moving an offer along its lifecycle and logging the change — and then enumerates the exact state machine, which distinguishes it from siblings like save_offer (creation) and add_offer_note (annotation). An agent can tell what this tool does without opening the schema.

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?

Usage is implied rather than stated: describing the lifecycle and the two side exits ('rejected', 'discarded') tells the agent which statuses are legitimate, but there is no explicit when-to-use or when-not-to-use guidance relative to save_offer or add_offer_note. The transition model is helpful context but not routing advice.

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