Skip to main content
Glama

freehire

Change a job alert

update_subscription
Destructive

Change one of the person's job alerts by its id. Every field is optional and only the ones given change: name; the search (query, filters, salary_min, salary_max — each replaces that part, an empty filters object clears the facet filters, a salary bound of 0 clears it; website-only filters in other are kept); channels (the full set to deliver on — added ones must be connected, missing ones stop); paused (true stops every channel, false resumes them). The new search must still narrow the catalogue, and unknown values are dropped and named in ignored_params. e.g. remote senior Go roles in the EU paying at least 80k EUR is {"filters":{"work_mode":["remote"],"seniority":["senior"],"skills":["go"],"regions":["eu"],"salary_currency":["EUR"]},"salary_min":80000}. Digest timing is account-wide and not changed here. Effect: overwrites the alert's name, search, channels or paused state; a removed channel's record of matches is deleted with it.

Input Schema

NameRequiredDescriptionDefault
idYesThe alert id.
nameNoA new name (1-100 characters).
queryNoFree-text query, with the job search's operators.
pausedNotrue pauses every channel, false resumes them.
filtersNoFacet filters, the job search's own. Each value is a list of values from the facets tool.
channelsNoThe complete set of channels to deliver on.
salary_maxNoOnly postings whose stated salary ceiling is at most this.
salary_minNoOnly postings whose stated salary floor is at least this, in the posting's currency — pair it with filters.salary_currency.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already flag destructiveHint=true and non-idempotent behaviour, but the description adds substantial detail beyond them: patch semantics where omitted fields are untouched, the exact clearing rules (empty filters object, salary bound of 0), that added channels must be connected, and that a removed channel's match history is destroyed. It also discloses a scope boundary the agent would otherwise guess at — digest timing is account-wide and not changed here.

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 core operation and its partial-update rule are front-loaded in the first sentence, followed by field-by-field rules, an example, and an effect statement. It is dense and every element is useful, but the closing "Effect:" sentence partly restates overwrite semantics already covered earlier, and the long parenthetical about filters is harder to scan than a short list would be.

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 destructive, nested-schema mutation with no output schema, the definition covers what an agent needs before calling: required id, optional-only-changes behaviour, how to reset values, what is preserved (website-only `other` filters), what is silently dropped and reported, and the destructive consequence of channel removal. Only the return shape of ignored_params is left implicit, which is minor.

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

Parameters5/5

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

Schema coverage is 100%, so the schema alone would justify a 3, but the description meaningfully exceeds it: it defines replacement semantics per filter family, clarifies that channels is the complete set rather than an increment, explains the 0-clears convention for salary bounds, and points to the facets tool as the source of valid filter values. The worked example payload concretely ties filters, salary_min and salary_currency together.

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 opens with a specific verb and resource, "Change one of the person's job alerts by its id", which lets an agent distinguish this mutation from siblings like subscribe, unsubscribe and list_subscriptions. It stops short of naming those siblings explicitly, so the boundary between creating an alert and updating one is implied rather than stated.

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?

Usage context is clear: this targets an existing alert identified by id and applies partial updates. It also gives practical steering on how to express a search (including a worked example) and notes that unknown values are dropped and returned in ignored_params. There is no explicit when-not or named alternative tool for creating/replacing alerts, which keeps it out of the 5 band.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.