Skip to main content
Glama

Search openings at named companies

search_jobs
Read-onlyIdempotent

Search job openings published on Lever by company name, filtered by location, team, keyword, salary, workplace type, and recency. Returns matching openings per company.

Instructions

Search the openings published by named companies on Lever. companies takes company names or Lever site names, and each name is turned into a site name here. A name found on the first spelling costs 3 requests, and one that resists costs up to 9, at one second each. location, team, department and commitment are sent to Lever and need its exact wording. keyword, workplace_type, country, salary and recency are applied here, because Lever accepts none of them as filters. limit applies per company, so a company whose openings fill it may publish more. posted_within_days walks up to 5 pages per company, because Lever pages by title and a recent opening sits anywhere.

Input Schema

NameRequiredDescriptionDefault
skipNoHow many openings to step over per company.
teamNoA list of a team exactly as Lever writes it, one to 20 of them.
limitNoHow many openings to read per company.
countryNoA list of a two-letter country code, as in FR or US, one to 20 of them.
keywordNoWords to look for in the title and the advert.
currencyNoA three-letter currency code, as in EUR or USD.
locationNoA list of a location exactly as Lever writes it, one to 20 of them.
companiesYesA list of a company name or a Lever site name, one to 25 of them.
commitmentNoA list of a commitment exactly as Lever writes it, one to 20 of them.
departmentNoA list of a department exactly as Lever writes it, one to 20 of them.
salary_minNoThe lowest upper bound of a salary range to keep.
workplace_typeNoA list of remote, hybrid, onsite or unspecified, one to 4 of them.
salary_intervalNoThe period salary_min is written in, as Lever writes it, such as per-year-salary or per-hour-wage.
posted_within_daysNoHow recent an opening must be.

Output Schema

NameRequiredDescriptionDefault
jobsYes
notesYes
per_companyYes
total_availableYesLever publishes no result count, so this is always null.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv2.1.0
    • removedOutput schema / properties / jobs / items / properties / country / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / jobs / items / properties / country / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / per_company / items / properties / slug / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / per_company / items / properties / slug / type
      Added value: +[
      +  "string",
      +  "null"
      +]
  2. First observedv1.0.0

TDQS

A4.1/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing request cost (3 requests for a clean company name, up to 9 at one second each for a stubborn one), per-company limit semantics (a company that fills the limit may publish more), and the up-to-5-page walk for posted_within_days because Lever pages by title. These are exactly the operational traits an agent needs before committing to a call.

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?

Front-loaded with the purpose sentence, then each subsequent sentence attaches to a specific concern (companies mapping, cost, server-vs-local filters, limit, recency paging). No filler and no repetition of the schema text.

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?

For a 14-parameter tool with an output schema, it covers the hard parts an agent would otherwise get wrong: cost, filter routing, per-company limits and the recency page walk. Minor gaps remain around how skip interacts with per-company paging and what happens when a company name cannot be resolved.

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; the description earns above that by adding semantics the schema does not carry: company names are converted to Lever site names internally, and location/team/department/commitment are server-side while keyword, workplace_type, country, salary and recency are filtered locally. It leaves skip and salary_min/salary_interval to the schema.

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: it searches openings published by named companies on Lever, with a clear companies-driven scope. It is distinguishable from get_job (single opening) and resolve_company (name resolution), though it does not name those siblings to draw the boundary explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains which filters Lever accepts versus which are applied locally, and warns about per-company cost, which is useful invocation guidance. However, it never says when to use this versus resolve_company or list_filter_values, and the 'need its exact wording' note would be stronger if it pointed at list_filter_values as the way to obtain that wording.

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