Skip to main content
Glama

Levels.fyi

search-raw-data-points

Read-only

Get the newest individual salary submissions for a job family, optionally narrowed to one location and/or one company. Each row has the company, title, level, location, years of experience, base salary and total compensation. Every amount is in USD; originalCurrency is only the currency the salary was submitted in. Returns { total, rows }; total counts matches up to 250, and only the newest rows are returned. Free limit: The 3 newest submissions, with base salary and total compensation only. No text search, level, years-of-experience, sort or paging. Pass canonical slugs (jobFamilySlug, locationSlug, countrySlug, companySlug): resolve names first with search-job-families, search-locations and search-companies; never guess a slug. REQUIRED arguments: jobFamilySlug.

Input Schema

NameRequiredDescriptionDefault
companySlugNoA company slug, e.g. "google". Resolve it with search-companies first.
locationSlugNoOne location slug (city, metro, state, country or region), e.g. "san-francisco-bay-area". Resolve it with search-locations first.
jobFamilySlugYesA Levels.fyi job family slug, e.g. "software-engineer", "product-manager", "data-scientist".

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only declare readOnly/non-destructive, which is the low bar; the description adds substantive behavior the agent could not infer: results are capped at 250 matches, only the newest rows are returned, the free tier returns just the 3 newest submissions with base salary and total compensation only, and every amount is normalized to USD with originalCurrency being merely the submission currency.

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?

Front-loaded with the core purpose, then proceeds through output shape, limitations, free-tier limits and slug prerequisites in a logical order. It is dense and somewhat long, but essentially every sentence carries operational information an agent needs.

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?

With no output schema, the description supplies the return shape ({ total, rows }) and names the row fields, plus the 250-match cap and newest-only behavior. Combined with the free-tier caveat and required-argument note, nothing essential for a correct call 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 description coverage is 100% and the schema already states the slug format and names the resolver tools for each parameter, so the description's 'pass canonical slugs' and 'resolve names first' guidance largely echoes structured data. It adds marginal value via the 'REQUIRED arguments: jobFamilySlug' restatement, so baseline 3 is appropriate.

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?

States a specific verb and resource: the newest individual salary submissions for a job family, with optional location/company narrowing. The phrase 'individual salary submissions' implicitly separates it from aggregate tools like get-salary-percentiles or get-salaries-by-company-level, but it never names or contrasts those siblings explicitly.

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?

Explicitly lists what is NOT supported (no text search, level, years-of-experience, sort or paging), states the prerequisite resolution workflow via search-job-families / search-locations / search-companies, warns 'never guess a slug', and flags the free-tier restriction. An agent knows both when to call this and when it cannot satisfy the request.

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.