Skip to main content
Glama

get_job

Read-onlyIdempotent

Retrieve full details for one tracked job by key or posting ID: posting text, pay, application status, fit score, gaps, contacts, and duplicate warnings before you apply.

Instructions

Everything about one job, by key or posting id: the full posting text, pay, tracking (status, note, next step, follow-up), its fit score against the resume (score, must-haves met, gaps, and requirements: each requirement with its verdict, met/partial/not_met, and the resume's words backing it; scores saved before jobwatch kept these have none), people the user knows there plus a LinkedIn search for a referral, skills it asks for that the resume doesn't show, what was sent with the application, and candidate_home: the company's page where the person signs in to see the application's status (Workday only; each company has its own account). link_note, when set, says the board's hosted job pages are offline and where to apply instead (url is then the company's careers site, when the watchlist gives one). With no fit score, unscored_reason says why ({code, text}: no_text means it needs its posting, a link via mark_job(url=) or the text pasted; queued means it's in the page's background scorer's line; many_roles, a post listing several roles, is never scored). duplicate_of is the job already applied to, queued or skipped that this one is (maybe) the same opening as: key, title, status, date, why, strong (a shared req or posting id; false: the same title only, so check it's a different opening), reposted, and text, the warning to heed; null when there's none. Check it before drafting a referral request or an application. lca_pay, once jobwatch lca update has been run, is the base pay the company filed for H-1B hires in titles like this one (median, 25th-75th percentile, count, wage levels, examples; U.S. DOL LCA disclosures): base only, not total compensation. Use it to tailor a resume or decide whether to apply; for only what was sent use get_application_package, and for a call or interview use get_interview_prep.

Input Schema

NameRequiredDescriptionDefault
keyYesThe job: its key as other tools return it (source:board:posting id, e.g. greenhouse:acme:4012345), just the posting id, or the company's name when that names one job (the one queued or applied to there). When it matches several, the error lists their keys.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.3.0

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, but the description adds far more than required: it documents null cases and their meanings (unscored_reason codes no_text/queued/many_roles, duplicate_of null vs. populated, link_note semantics), the strong/weak distinction in duplicate matching, the lca_pay prerequisite (`jobwatch lca update`) and its base-pay-only limitation, and the Workday-only constraint on candidate_home. This is exactly the edge-case disclosure that prevents misreading a sparse or null response.

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?

Front-loaded with the core purpose in the first clause, which is good, but the body is a single dense paragraph of stacked parentheticals (the fit-score, lca_pay, and duplicate_of explanations each span multiple nested clauses) that is hard to scan. Every clause is substantive, yet the parenthetical-aside style hurts parseability for a field-heavy return.

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?

There is no output schema, so the description carries the full burden of explaining the return value — and it does so exhaustively, enumerating each field group, its sub-fields, its null conditions, and its provenance. Nothing an agent needs to interpret a sparse, unscored, or duplicate-flagged response is missing.

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 coverage is 100% and the key parameter is documented in detail, including the source:board:posting-id format and the multi-match error behavior. The description only restates 'by key or posting id' without adding format or disambiguation detail beyond the schema, 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-free but unambiguous retrieval scope: 'Everything about one job, by key or posting id', then enumerates exactly which facets come back (posting text, pay, tracking, fit score, contacts, application package, lca_pay, duplicate_of). An agent can immediately tell this is the single-record full-detail read, distinct from list_jobs, get_application_package, or get_interview_prep.

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?

Gives explicit routing: 'Check it before drafting a referral request or an application', 'Use it to tailor a resume or decide whether to apply', and names the two alternatives with their conditions ('for only what was sent use get_application_package, and for a call or interview use get_interview_prep'). Duplicate checking is called out as a precondition for a specific downstream action.

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