Skip to main content
Glama

Search open jobs

search_jobs
Read-only

Find the tech jobs open right now that match a request, across every job board Watchtower monitors (tech companies and startups). Describe what you want in query ("iOS jobs in Austin with a maximum of 6 years of experience"). Read-only: nothing is saved and no watch is created, and no token is needed. The response shows how the query was read (interpreted), the matching jobs newest first, the total, and next_offset for the next page. Use this for "what is open right now"; to be told about new postings later, use watch_jobs instead. Jobs carry title, location, other_locations, department, company, url, posted_at, remote, seniority, and salary / experience_years when the posting states them. Explicit filters override what the query says.

Input Schema

NameRequiredDescriptionDefault
limitNoJobs per page (default 25, max 100).
queryNoWhat to look for, in plain language: role, place, pay, experience, level, remote. E.g. "iOS jobs in Austin with a maximum of 6 years of experience", "senior backend roles in New York or remote paying $180k+". Check interpreted in the response.
offsetNoSkip this many matches; pass next_offset from the previous page.
keywordsNoOnly report jobs whose title/location/department/company contains one of these as a whole word, e.g. ["iOS", "Swift"].
locationsNoOnly report jobs with one of these in their location, e.g. ["Austin"], ["Berlin", "Remote"].
seniorityNoOnly report these levels, derived from the title. "mid" means the title carries no level.
min_salaryNoYearly pay the job must be able to reach, e.g. 150000. Compared with the top of the posted range (hourly and monthly pay are converted).
remote_onlyNoOnly report jobs whose title or location says remote (and not hybrid/on-site).
all_keywordsNoOnly report jobs containing every one of these, e.g. ["data", "scientist"].
client_tokenNoOnly if this conversation already uses a Watchtower token (wt_...) from before the app was connected. Otherwise leave it out; never ask the user for one.
include_unknownNoMany postings state no pay or no years of experience. true (default) still reports them, without a salary / experience_years field; false reports only postings that state a qualifying value.
salary_currencyNoISO currency of min_salary, e.g. "USD". Jobs that state pay in another currency are then left out.
exclude_keywordsNoNever report jobs mentioning one of these, e.g. ["manager", "clearance"].
max_experience_yearsNoThe most years of experience a job may ask for, e.g. 6.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / client_token / description
      Previous value: -"Your Watchtower client token (wt_...). Optional if the MCP connection sends \"Authorization: Bearer <token>\"."New value: +"Only if this conversation already uses a Watchtower token (wt_...) from before the app was connected. Otherwise leave it out; never ask the user for one."
  2. Added

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already cover readOnly/destructive, but the description adds material behavior beyond them: nothing is saved, no watch is created, no token is needed, and the response shape (interpreted query, jobs newest first, total, next_offset). It also documents the concrete payload fields and the precedence rule that explicit filters override the query.

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 purpose, then the usage rule, then return shape, then the field list. Every sentence is functional, though the enumeration of returned job fields and the repeated query example make it longer than strictly necessary.

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 14-parameter, zero-required, no-output-schema search tool, the description covers the calling contract: what to pass, what comes back, how pagination continues, and how filters interact. Nothing an agent needs to invoke it correctly is missing.

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 description coverage is 100%, so the baseline is 3; the description rises above it by adding the cross-parameter precedence rule ('Explicit filters override what the query says') and by illustrating the free-text query style. It doesn't add much beyond the schema for the granular filter semantics themselves.

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?

Opens with a specific verb+resource ('Find the tech jobs open right now') plus scope ('across every job board Watchtower monitors'). It also explicitly distinguishes itself from the sibling watch_jobs, so an agent can route without comparing schemas.

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?

States the selection rule verbatim: use this for 'what is open right now'; use watch_jobs to be told about new postings later. That is an explicit when-to-use plus named alternative, with no inference required.

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.