Skip to main content
Glama

searchnapply

Search job postings

job_postings_search
Read-onlyIdempotent

Purpose: Find job postings that fit the user's role, location and fields, with a short summary per posting. When: The user describes work they want; gather a role and a location first. Cost: About 170 tokens per posting and 3020 for 20 postings.

Input Schema

NameRequiredDescriptionDefault
pageNoThe 1-based page number.
sortByNoResult order; job_postings_search_fields explains each value.
keywordsNoWords that must appear in the posting's text.
pageSizeNoPostings per page, 1 to 50.
companiesNoCompany names; a posting from any of them is kept.
locationsNoLocation names in plain words, each read as the closest known location, so check resolvedLocations for what was actually searched.
salaryMaxNoHighest yearly salary to keep, in US dollars after the same conversion.
salaryMinNoLowest yearly salary to keep, in US dollars after each posting's published salary is converted.
titleTextNoWords of the job title, matched to one of searchnapply's known roles when one fits (resolvedRole.display names it) and otherwise matched against posting titles.
datePostedNoHow recently the posting was published; leave it out for any date.
departmentNoOne department slug, to narrow a title that spans departments; call job_postings_search_fields for what each one holds.
experienceNoExperience level to keep, as exactly one of exact or min.
includeFamilyNoAlso return postings from the resolved role's wider family; false, the default, keeps the exact role only.
locationTypesNoWorkplace types to keep.
employmentTypeNoEmployment type to keep.
excludeKeywordsNoWords that must not appear in the title or the text, 1 to 10 words.
includeNoSalaryNoKeep postings that publish no salary; true by default.

Output Schema

NameRequiredDescriptionDefault
hintNoWhat to do next when the result needs a decision or a retry.
pageYesThe 1-based page returned.
facetsNoHow the matches split by department; absent on a narrowed or empty search.
pageSizeYesHow many postings a page holds.
postingsYesThe matching postings, one summary each.
titleNoteNoPresent when no role matched: the title words were matched against posting titles.
totalCountYesHow many postings match in total.
totalPagesYesHow many pages the matches fill.
familyLabelNoThe name of the role's wider family.
familyTotalNoHow many more postings the role's wider family holds; present when the exact result is short.
resolvedRoleNoThe role the title words were read as; absent when no role matched.
resolvedLocationsNoThe locations that were searched, as resolved from the location names given.
totalCountIsCappedYesTrue when the count stopped at 1,000 and more postings match.
unrecognizedLocationsNoThe location names that matched no known location and were left out.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds genuinely new operational context the annotations cannot convey: the token cost (~170 per posting, ~3020 for 20), which lets an agent budget pageSize. Pagination defaults and rate limits are not disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three labeled lines (Purpose / When / Cost), each carrying distinct information, with purpose front-loaded. No sentence is redundant and the cost line is unusually high-value for a 17-parameter search tool.

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 100% schema coverage, an output schema, and annotations carrying the safety profile, the description needs only framing — which it provides, including the cost model and a prerequisite. The remaining gap is guidance on paging/sorting strategy and pointing to job_postings_search_fields for the enum-heavy filters, which the schema references but the description does not reinforce.

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%, so the schema already documents all 17 parameters thoroughly, including enum meanings and resolution behavior. The description only hints at the two most important filters (role and location) via "gather a role and a location first" and adds nothing about sorting, paging, or the salary/experience interactions — baseline 3 applies.

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 ("Find job postings") plus the matching facets (role, location, fields) and the return shape ("a short summary per posting"), which implicitly separates it from job_postings_get_full_description. It does not name any sibling explicitly, so differentiation is inferential rather than stated.

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?

"When: The user describes work they want; gather a role and a location first" gives a clear trigger condition plus a prerequisite to satisfy before calling. It stops short of naming when NOT to use it (e.g. when the user already has a posting ID, use job_postings_get_full_description), so no exclusions or explicit alternatives are offered.

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.

Resources