Skip to main content
Glama

Update Job Preferences

set_job_preferences
DestructiveIdempotent

Save job search preferences—locations, remote type, salary, employment types, favored roles, and notes—so your job search brief reflects them and setup is marked complete.

Instructions

Save the jobs the user wants, which get_job_search_brief reads and setup counts as done once any is set. Only the fields passed change; [] clears a list and "" clears notes. favored_roles holds at most 25 roles, duplicates dropped. A role the catalog does not know (the refusal names the closest), a currency that is not ISO 4217 or more than 25 roles is a 422 that saves nothing. Returns the stored preferences, with role_categories derived from favored_roles.

Input Schema

NameRequiredDescriptionDefault
notesNo
remoteNo
locationsNo
min_salaryNo
favored_rolesNo
employment_typesNo
years_experienceNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.12.0

TDQS

A4.1/5.0
Behavior5/5

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

Goes well past the annotations (readOnly=false, destructive=true, idempotent=true) by disclosing partial-update semantics ('Only the fields passed change'), explicit clearing conventions ('[] clears a list and "" clears notes'), list limits and dedup, and an atomic 422 that saves nothing. It also states the return payload and the derived role_categories field.

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?

Dense and front-loaded: purpose and downstream effect come first, then mutation semantics, then limits and failure behavior. The telegraphic phrasing ('a currency that is not ISO 4217 or more than 25 roles is a 422') is economical but takes a re-read; nothing is padded.

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 7 optional parameters, no output schema, and 0% schema coverage, the description covers the tricky parts: merge-vs-clear semantics, the 25-role cap, atomic validation, and what is returned. It stops short of explaining the non-favored-role fields (remote, locations, employment_types, years_experience), which the schema only partially covers.

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 0%, so the description must carry parameter meaning, and it does so thoroughly for favored_roles, notes, and min_salary currency. remote, locations, employment_types, and years_experience get no explanation beyond the schema's enums and bounds, leaving half the parameters unaddressed.

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?

Names a specific verb and resource ('Save the jobs the user wants') and frames the tool by its downstream effect (get_job_search_brief reads it; setup completes once set). It does not differentiate itself from adjacent setters such as set_markets, set_persona, or set_autofill_profile, which share the 'set_*' shape.

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?

Gives real usage context: the saved preferences feed get_job_search_brief and count as setup-done once any value is set. It never says when *not* to use it or which sibling setter to pick instead, so routing among the other configuration tools is left to inference.

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

Deploy Server

Other Tools