Skip to main content
Glama
jaytuduri

Job Search MCP Server

by jaytuduri

Job Search MCP Server

An MCP server that lets an MCP-compatible assistant search public job listings. It currently uses EURES and does not require an API key.

Setup

Requires Python 3.11+ and uv.

uv sync
uv run pytest

Related MCP server: MCP Job Search Server

Run

Run the server directly over stdio:

uv run job-search-mcp

Docker

Build and run the public Streamable HTTP server. It listens on port 8000 and allows 60 requests per IP per 60 seconds by default.

docker build -t job-search-mcp .
docker run --rm -p 8000:8000 job-search-mcp

The MCP endpoint is http://localhost:8000/mcp. Adjust the limiter with RATE_LIMIT_REQUESTS and RATE_LIMIT_WINDOW. This limiter is in-memory and is intended for one container instance; use a proxy or shared store when scaling.

For Claude Desktop, add this entry to its MCP configuration:

{
  "mcpServers": {
    "job-search": {
      "command": "uv",
      "args": ["--directory", "/absolute/path/to/jobfinder", "run", "job-search-mcp"]
    }
  }
}

Tools

  • search_jobs: filter by keywords, location, remote-only status, and result limit.

  • job_search_sources: see provider and credential information.

Search results include title, company, location, remote status, description, tags, and a direct listing URL. Listings come from a third-party provider and should be checked before applying.

Available Tools

2 tools
job_search_sourcesA

Return information about the job boards used by this server.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. 'Return information' strongly implies a read-only, non-destructive operation, but it doesn't explicitly disclose whether any side effects or authentication are involved. For a zero-parameter tool, this is adequate but not rich in behavioral detail.

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?

A single, focused sentence that states the tool's function without any filler. Every word contributes to clarity, and there is no unnecessary elaboration.

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?

Given the tool's simplicity (zero parameters, no nested objects) and the presence of an output schema, the description fully covers what the tool does. It correctly orients the agent to the tool's purpose without needing to describe return values (schema covers that).

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?

The tool has zero parameters, so the description needs to explain nothing about parameter usage. Per the baseline for no parameters, a score of 4 is appropriate; the description simply doesn't need to add parameter-level detail.

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 description uses a specific verb ('Return') and clear resource ('information about the job boards used by this server'), making the tool's purpose unambiguous. It distinguishes itself naturally from sibling tool 'search_jobs' by focusing on board metadata rather than job listings.

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 description implies usage context—when you need details about job boards, not when searching jobs—but it doesn't explicitly state when to prefer this tool over the sibling. No exclusions or alternatives are mentioned, so guidance is implied rather than explicit.

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

search_jobsB

Search current job listings.

Use query for skills, titles, or companies (for example, "Python"), and location for a city, country, or region. Results include direct apply URLs.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNo
locationNo
remote_onlyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior3/5

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

No annotations are provided, but 'Search' conveys a read-only operation and the description adds a useful result detail about direct apply URLs. It does not disclose pagination, rate limits, or potential dependence on external sources, but the behavior is not misleading.

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?

The description is only three short sentences, front-loaded with the core purpose and followed by compact usage examples. Every sentence adds value and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The presence of an output schema reduces the need to describe return values, and the description covers the main search terms well. However, it lacks details about optional parameters (limit, remote_only) and does not address the sibling tool, leaving minor gaps.

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

Parameters2/5

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

The schema has four parameters with 0% description coverage. The description explains the query and location parameters with examples, but omits limit and remote_only, leaving two parameters underspecified. This is only partial compensation for the lack of schema descriptions.

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?

The description opens with 'Search current job listings,' which clearly specifies a search verb and the target resource. It does not explicitly contrast with the sibling tool job_search_sources, but the phrase 'current job listings' distinguishes the core function.

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

Usage Guidelines2/5

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

The description gives parameter usage examples ('use query for skills, titles, or companies') but does not state when to prefer this tool over alternatives or provide exclusions. There is no mention of when job_search_sources should be used instead.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updatesv0.1.0
    • First observedjob_search_sources
    • First observedsearch_jobs

TDQS

A3.6/5.0

Scored across 2 tools

Disambiguation5/5

The two tools are completely distinct: one searches job listings, the other provides information about the job boards used. There is no overlap or confusion between their purposes.

Naming Consistency4/5

Both names are clear and descriptive, but they follow slightly different patterns: search_jobs is verb-first, while job_search_sources is noun-first. This minor inconsistency does not impede understanding.

Tool Count3/5

With only two tools, the server feels thin and borderline. However, for a narrow scope like job search, this minimal set can be acceptable, though it is on the low end of the ideal range.

Completeness4/5

The server covers the core functionality of searching jobs and provides context about data sources. Minor gaps exist, such as lack of pagination or detailed job retrieval, but the basic workflow is complete and usable.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables users to search LinkedIn's public job listings with advanced filters like location, salary, and experience level. It allows MCP-compatible clients to retrieve real-time job opportunities without requiring LinkedIn authentication or API keys.
    1
    2
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to scrape job offers and filter them based on user-defined criteria, using MCP resources, prompts, and tools.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Unified job search MCP server that aggregates live listings from multiple job boards with deduplication, enabling AI agents to find and filter jobs by keyword and location.
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables job search on LinkedIn through MCP tools, including keyword and location search, filtering by remote, easy apply, experience level, job type, and date, and retrieving job details.
    -