Skip to main content
Glama

search_jobs

Read-onlyIdempotent

Job/opportunity search with the full filter set. Location filtering works: pass locations a LinkedIn geo id (e.g. 101570771 for Tel Aviv-Yafo) — see that parameter for how to find one, and note it is an EXACT match, so use a city id rather than a country id. Still id-typed and not yet usable: titles, industries, functions, benefits, commitments. Offset-paginated. data.jobs[].id is the opportunityEntityId consumed by /jobs/details-v2, /jobs/similar, /jobs/people-also-viewed, /jobs/hiring-team. (Costs 10 Zooq credits.)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
countNoResults per page, 0-50 (default 25).
startNoPagination offset, 0-999.
salaryNoMinimum salary bucket. Accepted values: 20k, 30k, 40k, 50k, 60k, 70k, 80k, 90k, 100k.
sortByNoResult ordering. Accepted values: relevance, date_posted.
titlesNoTitle id(s), comma-separated. NOT free text: a title like 'Senior Full Stack Developer' is rejected upstream (surfaces as a 422 mentioning entityId; no credits charged). Use `keyword` for free-text role matching instead.
keywordNoFree-text keyword.
benefitsNoBenefits filter, comma-separated.
jobTypesNoJob type. Accepted values: full_time, part_time, contract, temporary, internship, volunteer, other. Comma-separate for multiple.
companiesNoNumeric organization id(s), comma-separated (e.g. 1035). Get from job payloads — data.jobs[].organization.organizationId via companies_jobs.
easyApplyNoOnly Easy Apply jobs. Accepted values: true, false.
functionsNoJob-function id(s), comma-separated. Free text is not reliably accepted — see the note on `locations`.
locationsNoGeo entity id(s), comma-separated. This is LinkedIn's own public geo id. To find the id for a location: • Type your target city, state or country into the location search box on LinkedIn • Select the correct match from the auto-complete dropdown list • Press enter to load the search results page • Check the browser address bar for geoId= followed by a long number sequence NOTE: this ID is case sensitive. Jobs may appear on LinkedIn but not here, because LinkedIn shows results for proximate locations while this search is exact-match based. Prefer a CITY id over a country id for the same reason — postings are tagged with the exact city, so Tel Aviv-Yafo (101570771) returns results where Israel (101620260) returns none.
datePostedNoRecency filter. Accepted values: 24h, 1week, 1month.
experienceNoExperience level. Accepted values: internship, entry_level, associate, mid_senior, director, executive. Comma-separate for multiple.
fairChanceNoOnly fair-chance employer jobs. Accepted values: true, false.
industriesNoIndustry id(s), comma-separated. Free text is not reliably accepted — see the note on `locations`.
commitmentsNoCompany-commitment filter, comma-separated.
verifiedJobNoOnly verified job postings. Accepted values: true, false.
workplaceTypesNoWorkplace type. Accepted values: onsite, remote, hybrid. Comma-separate for multiple.
under10ApplicantsNoOnly jobs with under 10 applicants. Accepted values: true, false.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
jobsNoArray in the example
totalNoExample value was a number

TDQS

A4.7/5.0
Behavior4/5

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

Annotations carry readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context beyond those annotations: the cost ('Costs 10 Zooq credits'), the failure mode ('surfaces as a 422 mentioning entityId; no credits charged'), the pagination behavior ('Offset-paginated'), the exact-match limitation versus LinkedIn's proximate geocoding, and the still-not-usable parameter set (titles, industries, functions, benefits, commitments). This is genuine additional behavioral disclosure. A small deduction because the vague phrase 'Still id-typed and not yet usable' could be more explicit about whether passing values to those params is simply ignored, but overall credit is substantial.

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 description is dense but economically written — the long `locations` detail is justified because that parameter has the most behavioral nuance, being LinkedIn-specific and exact-match. The top sentence states the core function, the middle covers scoping constraints, and the closing line bundles the credit cost and cross-references. The 'see that parameter' and 'see the note on `locations`' cross-references avoid repetition across similar filters. Slight deduction: the cross-reference style requires the agent to hunt through multiple parameter definitions, and the note about unusable filters is slightly terse given how central it is to correct invocation.

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 20-parameter search tool with an output schema, complete documentation is hard, and this description rises to the challenge. It covers: which filters work and which do not, how to source external ids, how pagination works, how result ids are consumed downstream, the cost in credits, and the error behavior with no charge. The output schema covers return values, so it need not explain those. An agent could invoke this tool correctly with high confidence from the description alone, which is the defining test for this dimension.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline would be 3, but the description goes far beyond the schema's bare property definitions. For `locations` it provides a step-by-step discovery procedure (LinkedIn search box, address-bar geoId extraction), a concrete example, case-sensitivity warning, and an exact-match behavioral caveat. For `titles` it clarifies that the schema's 'Title id(s)' means NOT free text, cross-references the `keyword` parameter, and names the upstream rejection error. For `companies` it explains how to obtain an id from job payloads and names the source tool (companies_jobs). This is exemplary parameter enrichment that meaningfully changes how an agent would use the tool.

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 opening line 'Job/opportunity search with the full filter set' clearly names the verb (search) and resource (jobs), and is immediately distinguishable from sibling search tools: search_people, search_alumni, search_companies, search_job_changes are all individually named. The description goes further than any sibling by explaining the exact-match location semantics and cross-referencing consuming tools (jobs_details_v2, jobs_similar, etc.), making the tool's identity unmistakable.

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?

The description explicitly distinguishes free-text matching from id-typed filters: 'Use `keyword` for free-text role matching instead' and 'NOT free text: a title like Senior Full Stack Developer is rejected upstream'. It also warns that LinkedIn shows proximate results while this search is exact-match, advising 'Prefer a CITY id over a country id'. The idempotence and read-only safety profile are already covered by the annotations, so the description's job is to route the agent's parameter choices, which it does thoroughly.

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.

TDQS

A3.6/5.0
Disambiguation2/5

Many tools have strongly overlapping purposes: companies_name_lookup is explicitly equivalent to search_companies, companies_enrich/companies_info/companies_universal_name_to_id all return company-profile data, and profile_full overlaps with profile_employment_history and profile_enrich. The descriptions are detailed, but an agent would still frequently have to choose between near-duplicate endpoints.

Naming Consistency4/5

Tool names mostly follow a predictable resource-prefixed snake_case pattern, such as companies_*, jobs_*, posts_*, profile_*, and search_*, which makes the set readable and groupable. Minor inconsistencies like jobs_details_v2, g_title_skills_lookup, and mixed noun suffixes (info/details/full/lookup) keep it from a perfect score.

Tool Count2/5

44 tools is well beyond the heavy 25+ band, and several tools appear to be different lookup modes or near-duplicates of the same underlying capability. The broad LinkedIn-style data domain explains much of the size, but the set still feels bloated rather than well-scoped.

Completeness4/5

The API covers the core read-only professional-data workflows well: people, companies, jobs, posts, comments, likes, email discovery/verification, schools, skills, and targeted searches. Minor gaps exist, such as some job filters being unusable and no direct exposure of certain profile alias endpoints, but agents can generally complete end-to-end workflows.

Resources