Job Search MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Job Search MCP ServerFind remote Python developer jobs in Europe"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 pytestRelated MCP server: MCP Job Search Server
Run
Run the server directly over stdio:
uv run job-search-mcpDocker
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-mcpThe 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 toolsjob_search_sourcesA
Return information about the job boards used by this server.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | ||
| location | No | ||
| remote_only | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
2 tool updates
v0.1.0- First observed
job_search_sources - First observed
search_jobs
TDQS
Scored across 2 tools
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.
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.
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.
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
Related MCP Connectors
Search remote and onsite jobs through the public Corvi Careers MCP server.
Google Jobs listings with direct apply links via the Apify Google Jobs Scraper, hosted MCP.
Search people open to work and fetch their machine-readable cv.json, from any AI assistant.
Search remote tech jobs, inspect descriptions, compare roles, and retrieve application links.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables 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.12MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to scrape job offers and filter them based on user-defined criteria, using MCP resources, prompts, and tools.-
- AlicenseNot gradedqualityDmaintenanceUnified 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
- FlicenseNot gradedqualityBmaintenanceEnables 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.-