Skip to main content
Glama

get_comps

Read-onlyIdempotent

Compare job applications side by side to review stage, pay, fit, compensation, and company health, then rank opportunities by career value and fit.

Instructions

Open applications side by side, to compare offers and processes: for each, its stage, applied day, next step and follow-up, pay as posted, places, fit score (must-haves met, top gaps), people the person knows there, and the compensation details they were told (base, bonus, equity, sign-on, asked, offered, note; set them with set_comp), and the company's health (set it with set_company_health; stale when older than 90 days: research it again). best says which opportunity is highest in posted pay, base, offered and fit. suggestion ranks them by rules (career value from the company's kind and the job's role, pay against the person's target, fit, how far along, company health) with the weights, each part's score and input, and a reason: explain it, and say what is missing (no health kept, no kind or role, no pay known) rather than guessing. Use it when the person asks how their opportunities compare; for one application's status use list_applications.

Input Schema

NameRequiredDescriptionDefault
keysNoCompare just these jobs (each as in get_job's key), whatever their stage. Overrides stages.
stagesNoWhich stages to compare; default screening, interviewing and offer. Add applied for the ones still waiting.
companiesNoAdd these companies' health as columns of their own, even ones with no job tracked (Levels.fyi-style company comparison). Overrides stages.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.6.0

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover the read-only, idempotent, closed-world profile, and the description builds on that with real behavioral context: a 90-day freshness rule, a directive to report missing inputs rather than guess, and the semantics of the derived 'best' and 'suggestion' fields (weights, per-part scores, reasons). It duplicates a bit of the schema's default/precedence behavior, and never says how many items are compared or what the response looks like structurally.

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 lead clause is well front-loaded, but the body is a single sprawling run-on sentence whose long parenthetical chains (comp fields, ranking inputs) are hard to parse, and the crucial 'when to use' guidance is buried at the end.

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 no output schema, the description must carry the return-value burden, and it does: it names the compared fields, the 'best' ranking basis, and the 'suggestion' breakdown including weights, sub-scores and reasons. What's missing is scale/limits (how many opportunities are included, whether nulls produce empty columns) for a tool whose output shape is otherwise undocumented.

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 each of keys/stages/companies already carries a precise description including the 'overrides stages' precedence, so the schema does the heavy lifting. The description adds no parameter-level detail beyond that (no format for keys, no cap on list size), so baseline 3 applies.

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?

Opens with a specific verb and resource — 'Open applications side by side, to compare offers and processes' — then enumerates exactly what is compared (stage, applied day, next step, pay, fit score, contacts, comp, company health). It explicitly contrasts itself with list_applications, so an agent can separate it from sibling read tools 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 Guidelines5/5

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

States the triggering condition ('Use it when the person asks how their opportunities compare') and names the alternative for the adjacent case ('for one application's status use list_applications'). It also routes related writes to set_comp and set_company_health, and says to re-research health older than 90 days rather than reporting stale data.

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