Skip to main content
Glama

Get Job Matches

getmattered_get_matches
Read-onlyIdempotent

List the user's matched jobs: the roles GetMattered found for them against their saved job preferences, best matches first, each with a job_match_id, title, company, location, match score, a 500-character excerpt of the posting and the apply URL. Pass job_match_ids (up to 10) to read the full posting, skills and benefits of specific matches; job_url to read any posting without saving it; query, location or remote_only to narrow the list; after_job_match_id with the newestJobMatchId you stored to see only matches newer than your last check. Read-only: it spends no credits and changes nothing. Do not use it to change what the user is matched against; use getmattered_update_job_preferences for that. Next: pass a job_match_id to getmattered_apply, or save or skip a match with getmattered_triage_matches.

Input Schema

NameRequiredDescriptionDefault
pageNoPage number, starting at 1 (e.g. 2 for the next page)
limitNoMatches per page, 1 to 50 (default 10)
queryNoNarrow the list to titles containing this text (e.g. "Product Designer").
job_urlNoRead any job posting by URL without saving it (e.g. "https://jobs.lever.co/acme/123").
locationNoPreferred location (e.g. "San Francisco, CA", "New York", "Remote")
saved_onlyNoIf true, only return the matches the user saved
remote_onlyNoIf true, only show remote-friendly positions
job_match_idsNoRead these matches in full: up to 10 job_match_ids (e.g. [48213]). Returns the full posting, skills, benefits and work arrangement.
after_job_match_idNoReturn only matches newer than this job_match_id. Store newestJobMatchId from each answer and pass it back.

Output Schema

NameRequiredDescriptionDefault
modeYes
pageYes
matchesYes
postingYesA posting read from job_url. Nothing was saved.
totalPagesYes
notFoundIdsYesRequested job_match_ids that do not exist on this account.
totalMatchesYes
newestJobMatchIdYesThe highest job_match_id on this page. Store it and pass it back as after_job_match_id to see only newer matches.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, but the description adds a fact they don't carry — "it spends no credits" — which matters for an agent deciding whether to call repeatedly. It also discloses the two distinct result modes (summary list vs. full posting), though it says nothing about pagination totals or rate limits.

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 purpose is front-loaded and the ordering (what it returns → how to shape the call → safety → exclusion → next step) is logical. It is dense, packing six parameters into one long semicolon-chained sentence, which costs some scannability, but no sentence is redundant.

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 9-parameter, dual-mode read tool, the description covers scope, filtering, polling, cost, exclusions and hand-offs. Since an output schema exists, the brief field list is sufficient rather than a gap, and nothing needed to call it correctly is missing.

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%, so the baseline is 3, but the description earns more by explaining intent behind parameters: the cursor pattern ("after_job_match_id with the newestJobMatchId you stored to see only matches newer than your last check") and the 10-id cap on job_match_ids. Only page, limit and saved_only go unmentioned, and those are self-evident from the schema.

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?

The description opens with a concrete verb+resource ("List the user's matched jobs") and immediately disambiguates the source of the data ("roles GetMattered found for them against their saved job preferences"), which separates it from getmattered_search_jobs. It also names the returned fields, so an agent knows the shape of a result without opening the output 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?

It gives explicit routing for each mode: job_match_ids for full detail, job_url for an unsaved posting, and filter params to narrow. It adds a clear exclusion ("Do not use it to change what the user is matched against; use getmattered_update_job_preferences") and hands off to getmattered_apply and getmattered_triage_matches for next steps.

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.