Skip to main content
Glama

search_jobs

Read-only

Allows you to search jobs applying various filtering criteria (st.searchJobs action). LinkedIn serves either a classic or an AI-powered jobs search, and the two do not offer the same refinements: send filter for the classic one or preferences for the AI-powered one, never both. Every job in the result carries urn — its permanent LinkedIn job posting URN (urn:li:jobPosting:), or null when the job id could not be extracted — and isSimilarMatch, telling whether LinkedIn returned it as a near match rather than an exact one.

Linked API actions are queued into a cloud-browser workflow and may take several minutes. The server returns immediately after starting the workflow with {status: 'pending'|'running', pendingReason, workflowId, operationName, message}. To retrieve the final result, call get_workflow_result with the returned workflowId and operationName — it will long-poll until completion or the request budget elapses, then return either the final result or another in-progress snapshot. Do not retry the original tool while a workflow is still running; that creates duplicate queued work.

A pending workflow carries pendingReason: 'queued' means it is waiting its turn behind other work on the same account and will start within minutes. 'outsideWorkingHours' means the account has configured working hours and the workflow is parked until they reopen — possibly the next working day. In that case get_workflow_result returns immediately instead of polling, message states when the window opens, and you should report that to the user rather than looping.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "search_jobs"
  }
}

Input Schema

NameRequiredDescriptionDefault
termNoOptional. Keyword or phrase to search.
limitNoOptional. Number of search results to return. Defaults to 10, with a maximum value of 1000.
filterNoOptional. Filtering criteria for the classic LinkedIn jobs search. Every specified field is applied, or the action fails. When multiple filter fields are specified, they are combined using AND logic. Mutually exclusive with preferences.
locationNoOptional. Free-form location string. Applied on both versions of LinkedIn jobs search.
preferencesNoOptional. Filtering criteria for the AI-powered LinkedIn jobs search. LinkedIn decides which of them it offers for a given search, and the ones it does not offer are skipped instead of failing the action. Mutually exclusive with filter. When the account's version of LinkedIn jobs search cannot apply the criteria that were sent, the action fails with searchInterfaceMismatch.
customSearchUrlNoOptional. URL copied from a LinkedIn jobs search page. When specified, overrides term, location, filter and preferences.
allowSimilarResultsNoOptional. Defaults to true. When false, near matches are excluded from the results, so fewer results than limit may be returned. Only relevant to the AI-powered search.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations only say readOnlyHint and openWorldHint; the description carries far more, disclosing the queued cloud-browser execution model, the immediate pending envelope, the two pendingReason values, and the outsideWorkingHours case where get_workflow_result returns immediately. It stops short of stating expected latency per pendingReason or what the completed result payload looks like beyond the per-job fields.

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 workflow semantics, then pending states in a logical order. It is long, but for a nested-schema async tool most sentences carry operational weight; only the filter/preferences exclusivity is repeated verbatim from the schema.

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?

With no output schema, the description still explains both the job-level return fields and the workflow envelope, and it tells the agent exactly how to obtain the final result and how to handle stalled workflows. Nothing needed to call this tool correctly in an async multi-interface world is missing.

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 every parameter, including the filter/preferences exclusivity and the searchInterfaceMismatch failure. The description mostly restates that exclusivity rather than adding new parameter meaning; its genuinely new content (result fields, async envelope) is about behavior, not parameters.

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?

States a specific verb and resource ('search jobs applying various filtering criteria') and immediately disambiguates the two underlying LinkedIn search interfaces, which is the main source of confusion. It also names the shape of what comes back (urn, isSimilarMatch), so an agent knows this is a discovery tool rather than fetch_job's single-posting lookup.

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?

Explicit routing rules: send filter for classic search or preferences for AI-powered, never both; customSearchUrl overrides the rest; allowSimilarResults only applies to the AI-powered interface. It also names the required follow-up tool (get_workflow_result) and explicitly forbids retrying the original call while a workflow is running.

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.