Skip to main content
Glama

Search current job listings

search_jobs
Read-onlyIdempotent

Search current job listings. For requests like "find remote Python jobs", "marketing jobs in New York", "junior data analyst jobs posted this week", "senior software engineer jobs in London", "nurse jobs in Manchester". Job words go in what and the place in where. Everyday phrasing in what also works: level words (junior, senior), "remote", "in " and "this week" are picked out. The say line credits listings from Remotive, Himalayas, Jobicy and Remote OK to their source.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageNoWhich page of results, 1 to 20. Default 1. Use 2 for "show me more".
sortNoSort: relevance (default), date (newest first) or pay (highest first).
whatNoJob title, skill or field, for example "python developer" or "marketing". Required unless where is given.
levelNoLevel: entry (junior, graduate, intern), mid or senior. With entry, jobs asking for more than 2 years of experience are left out and the answer adds apprenticeship and graduate routes.
limitNoHow many results, 1 to 10. Default 10.
shiftNoShift: day, evening, night, weekend or flexible.
whereNoA city (New York, Austin, TX, London, Birmingham, UK), a US state (Texas), a UK county or region (Kent, Yorkshire), a UK postcode, a city or country abroad (Bangalore, Dublin, Dubai, Sydney, India), a country (USA, UK, Germany), "remote", or remote in a country ("remote US").
companyNoOnly jobs at this company, for example "Tesco".
countryNoUS or UK, when the place exists in both (Birmingham, Manchester, Cambridge) and the user's country is known. Optional.
excludeNoWords the advert must not contain, comma separated, for example "sales, commission".
includeNoWords the advert must contain, comma separated, for example "python, aws".
benefitsNoBenefits the advert must mention, comma separated, for example "pension, private healthcare".
employerNoEmployer: direct for jobs posted by the employer itself, or agency for recruitment agencies.
job_typeNoJob type: full time, part time, contract, temporary or internship.
educationNoEducation: degree for jobs asking for a degree, or no degree for jobs that don't.
work_typeNoWork type: remote, hybrid or on-site.
salary_maxNoHighest yearly pay, in the local currency.
salary_minNoLowest yearly pay, in the local currency, for example 40000 or 40k. Jobs that list no pay are left out when set.
radius_milesNoHow far from the place, in miles, 1 to 100 (boards that support distance).
visa_sponsorshipNoSet to yes for jobs whose advert says visa sponsorship is offered.
posted_within_daysNoOnly jobs posted in the last N days, 1 to 90. Default 30. 7 means this week.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / level / description
      Previous value: -"Level: entry (junior, graduate, intern), mid or senior."New value: +"Level: entry (junior, graduate, intern), mid or senior. With entry, jobs asking for more than 2 years of experience are left out and the answer adds apprenticeship and graduate routes."
  2. Changed16 schema fields changed
    • addedInput schema / properties / benefits
      Added value: +{
      +  "description": "Benefits the advert must mention, comma separated, for example \"pension, private healthcare\".",
      +  "type": "string"
      +}
    • addedInput schema / properties / company
      Added value: +{
      +  "description": "Only jobs at this company, for example \"Tesco\".",
      +  "type": "string"
      +}
    • addedInput schema / properties / education
      Added value: +{
      +  "description": "Education: degree for jobs asking for a degree, or no degree for jobs that don't.",
      +  "enum": [
      +    "degree",
      +    "no degree"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / employer
      Added value: +{
      +  "description": "Employer: direct for jobs posted by the employer itself, or agency for recruitment agencies.",
      +  "enum": [
      +    "direct",
      +    "agency"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / exclude
      Added value: +{
      +  "description": "Words the advert must not contain, comma separated, for example \"sales, commission\".",
      +  "type": "string"
      +}
    • addedInput schema / properties / include
      Added value: +{
      +  "description": "Words the advert must contain, comma separated, for example \"python, aws\".",
      +  "type": "string"
      +}
    • addedInput schema / properties / job_type
      Added value: +{
      +  "description": "Job type: full time, part time, contract, temporary or internship.",
      +  "enum": [
      +    "full time",
      +    "part time",
      +    "contract",
      +    "temporary",
      +    "internship"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / page
      Added value: +{
      +  "description": "Which page of results, 1 to 20. Default 1. Use 2 for \"show me more\".",
      +  "maximum": 20,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / radius_miles
      Added value: +{
      +  "description": "How far from the place, in miles, 1 to 100 (boards that support distance).",
      +  "maximum": 100,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / salary_max
      Added value: +{
      +  "description": "Highest yearly pay, in the local currency.",
      +  "type": "string"
      +}
    • addedInput schema / properties / salary_min
      Added value: +{
      +  "description": "Lowest yearly pay, in the local currency, for example 40000 or 40k. Jobs that list no pay are left out when set.",
      +  "type": "string"
      +}
    • addedInput schema / properties / shift
      Added value: +{
      +  "description": "Shift: day, evening, night, weekend or flexible.",
      +  "enum": [
      +    "day",
      +    "evening",
      +    "night",
      +    "weekend",
      +    "flexible"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / sort
      Added value: +{
      +  "description": "Sort: relevance (default), date (newest first) or pay (highest first).",
      +  "enum": [
      +    "relevance",
      +    "date",
      +    "pay"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / visa_sponsorship
      Added value: +{
      +  "description": "Set to yes for jobs whose advert says visa sponsorship is offered.",
      +  "enum": [
      +    "yes"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / where / description
      Previous value: -"A city (New York, Austin, TX, London, Birmingham, UK), a US state (Texas), a UK county or region (Kent, Yorkshire), a UK postcode, a country (USA, UK, Germany), \"remote\", or remote in a country (\"remote US\")."New value: +"A city (New York, Austin, TX, London, Birmingham, UK), a US state (Texas), a UK county or region (Kent, Yorkshire), a UK postcode, a city or country abroad (Bangalore, Dublin, Dubai, Sydney, India), a country (USA, UK, Germany), \"remote\", or remote in a country (\"remote US\")."
    • addedInput schema / properties / work_type
      Added value: +{
      +  "description": "Work type: remote, hybrid or on-site.",
      +  "enum": [
      +    "remote",
      +    "hybrid",
      +    "on-site"
      +  ],
      +  "type": "string"
      +}
  3. Changed2 schema fields changed
    • changedInput schema / properties / level / description
      Previous value: -"entry (junior, graduate, intern), mid or senior."New value: +"Level: entry (junior, graduate, intern), mid or senior."
    • changedInput schema / properties / posted_within_days / description
      Previous value: -"Only jobs posted in the last N days, 1 to 90. Default 30. Use 7 for \"this week\"."New value: +"Only jobs posted in the last N days, 1 to 90. Default 30. 7 means this week."
  4. First observed

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, openWorld, non-destructive), so the bar is lower. The description adds real behavior not in the annotations: everyday phrasing in `what` is auto-parsed into level/remote/city/recency, and results carry source attribution to Remotive, Himalayas, Jobicy and Remote OK.

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?

Purpose is front-loaded and every sentence serves a purpose, but five example queries plus a parsing sentence plus the source-credit sentence is on the dense side, and the level examples partly duplicate the `level` enum. The final sentence about the "say line" is also a little awkward.

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 21-parameter, zero-required tool with a fully documented schema and read-only annotations, the description covers what the tool is for and how natural phrasing maps to filters. Since no output schema exists, the return shape is only partly addressed (source credits), leaving a small gap.

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 goes beyond the schema by stating the core routing rule ("job words go in what and the place in where") and by clarifying that level words, "remote", "in <city>" and "this week" can be left in free text and are extracted automatically — meaning the agent need not fill every enum.

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 ("Search current job listings") and five concrete example requests make the scope unmistakable. It does not name or distinguish itself from siblings such as get_job, similar_jobs, or whats_hiring, so it falls short of a 5.

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?

The examples imply when the tool applies (any free-text job query with role words and a place) but usage is never stated explicitly and no alternatives or exclusions are given. An agent must infer that this is the entry-point search rather than one of the many sibling lookup tools.

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.