Koskamo

WhatJobs MCP

The WhatJobs MCP server enables AI assistants to search live job listings, retrieve salary insights, compare salaries across locations, identify top hiring companies, and match jobs to user profiles across 25 countries. It provides read-only access to public job data via natural language queries, with results linking directly to the full job postings on WhatJobs.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

WhatJobs MCP logo, by WhatJobsVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-06Operated by WhatJobs
MCP endpoint (Streamable HTTP)
https://mcp.whatjobs.com/mcp
Vendor documentation

What its tools do

7 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

7 of 7 have a description · 7 of 7 declare behavior hints · 0 of 7 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to mcp.whatjobs.com ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Search for jobs by role and location
  • Get salary insights for specific roles
  • Compare salaries across different cities
  • Find top hiring companies for a role

Source and maintenance

Vendor evidenceRegistry 2.2.0

Protocol and capabilities

Server
WhatJobs 2.2.0
MCP protocol negotiated in check
2025-11-25
Tools
7 advertised
Resources
2 advertised
Resource templates
0 advertised
Prompts
0 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  },
  "prompts": {
    "listChanged": false
  },
  "resources": {
    "subscribe": false,
    "listChanged": false
  }
}

Tools

7 advertised

search_jobs — Search jobs
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Search WhatJobs for public job listings using separate structured search fields. Use this tool only when the user is looking for jobs, vacancies, roles, internships, work opportunities, or asks to see more job results. The location is the job search location requested by the user, such as a city, region, country, or remote preference. It is not the user's current physical location unless the user explicitly asks to search near them. Inputs: - keyword: the job role, job function, skill, or industry only. - location: the city, region, country, or remote preference only. - market: optional. The country market for the search. If omitted it is inferred from location (e.g. "Johannesburg, South Africa" -> za). Supported values: uk (United Kingdom), us (United States), ca (Canada), de (Germany), in (India), pk (Pakistan), br (Brazil), es (Spain), ae (United Arab Emirates), mx (Mexico), ar (Argentina), za (South Africa), at (Austria), au (Australia), be (Belgium), bh (Bahrain), cl (Chile), co (Colombia), cr (Costa Rica), ch (Switzerland), do (Dominican Republic), dz (Algeria), ng (Nigeria), nl (Netherlands), fr (France). - chunk_number: the result batch number. Use 1 for the first search and increment when the user asks to see more. Do not include the location inside keyword. Do not include filler words like jobs, vacancies, roles, hiring, in, near, around, at, or within in keyword. Examples: - sales in Bracknell -> keyword="sales", location="Bracknell", market="uk" - software engineer jobs near Manchester -> keyword="software engineer", location="Manchester", market="uk" - driver jobs in Toronto -> keyword="driver", location="Toronto", market="ca" - nurse jobs in Berlin -> keyword="nurse", location="Berlin", market="de" - teacher jobs in Sao Paulo -> keyword="teacher", location="Sao Paulo", market="br" - chef jobs in Madrid -> keyword="chef", location="Madrid", market="es" - accountant jobs in Dubai -> keyword="accountant", location="Dubai, United Arab Emirates", market="ae" - marketing jobs in Mexico City -> keyword="marketing", location="Mexico City, Mexico", market="mx" - developer jobs in Buenos Aires -> keyword="developer", location="Buenos Aires, Argentina", market="ar" - sales jobs in Johannesburg -> keyword="sales", location="Johannesburg, South Africa", market="za" - comptable à Paris -> keyword="comptable", location="Paris", market="fr" - nurse jobs in Sydney -> keyword="nurse", location="Sydney", market="au" - verpleegkundige in Amsterdam -> keyword="verpleegkundige", location="Amsterdam", market="nl" - engineer jobs in Zurich -> keyword="engineer", location="Zürich", market="ch" - marketing jobs in Vienna -> keyword="marketing", location="Wien", market="at" - accountant jobs in Lagos -> keyword="accountant", location="Lagos", market="ng" Returns structured job listings with title, company, location, salary when provided, posted date, summary, description, apply URL and pagination metadata for the WhatJobs widget UI.

search_jobs input schema
{
  "type": "object",
  "title": "search_jobsArguments",
  "required": [
    "keyword",
    "location"
  ],
  "properties": {
    "market": {
      "type": "string",
      "title": "Market",
      "default": ""
    },
    "keyword": {
      "type": "string",
      "title": "Keyword"
    },
    "location": {
      "type": "string",
      "title": "Location"
    },
    "chunk_number": {
      "type": "integer",
      "title": "Chunk Number",
      "default": 1
    }
  }
}
search_jobs annotations
{
  "title": "Search jobs",
  "readOnlyHint": true,
  "openWorldHint": true,
  "destructiveHint": false
}
get_salary_insights — Salary insights
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Show what a job pays, from the salaries in current WhatJobs listings: typical range, median, lowest and highest, plus a few listings with salaries. Use this when the user asks how much a role pays or earns, salary ranges, or whether a salary is good, e.g. "How much does a nurse earn in Paris?" or "Data analyst salary in London". Inputs: - keyword: the job role only (e.g. "nurse", "software engineer"). - location: the place to search (city, region or country), not the user's own location unless they ask for jobs near them. May be empty for the whole country. - market: optional country code; if empty it is inferred from location. Supported values: uk (United Kingdom), us (United States), ca (Canada), de (Germany), in (India), pk (Pakistan), br (Brazil), es (Spain), ae (United Arab Emirates), mx (Mexico), ar (Argentina), za (South Africa), at (Austria), au (Australia), be (Belgium), bh (Bahrain), cl (Chile), co (Colombia), cr (Costa Rica), ch (Switzerland), do (Dominican Republic), dz (Algeria), ng (Nigeria), nl (Netherlands), fr (France). Figures are in the country's own currency, for the pay period most listings use (per year in most countries, per month in some); the result says which. The result includes a link to all matching jobs on WhatJobs.

get_salary_insights input schema
{
  "type": "object",
  "title": "get_salary_insightsArguments",
  "required": [
    "keyword"
  ],
  "properties": {
    "market": {
      "type": "string",
      "title": "Market",
      "default": ""
    },
    "keyword": {
      "type": "string",
      "title": "Keyword"
    },
    "location": {
      "type": "string",
      "title": "Location",
      "default": ""
    }
  }
}
get_salary_insights annotations
{
  "title": "Salary insights",
  "readOnlyHint": true,
  "openWorldHint": true,
  "destructiveHint": false
}
compare_salaries — Compare salaries
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Compare what a job pays across places, or what different jobs pay in one place, from the salaries in current WhatJobs listings: the typical range and median for each, side by side. Use this when the user wants pay compared, e.g. "Nurse salary in London vs Manchester", "Do developers earn more in Berlin or Munich?", "Which pays more in Toronto, accountant or bookkeeper?". Inputs: - keywords: one or more job roles only (e.g. ["nurse"], or ["accountant", "bookkeeper"]). - locations: one or more places to compare (city, region or country), not the user's own location unless they ask about jobs near them. - market: optional. Leave empty to let each location use its own country (so "Paris" and "Berlin" compare France and Germany). Supported values: uk (United Kingdom), us (United States), ca (Canada), de (Germany), in (India), pk (Pakistan), br (Brazil), es (Spain), ae (United Arab Emirates), mx (Mexico), ar (Argentina), za (South Africa), at (Austria), au (Australia), be (Belgium), bh (Bahrain), cl (Chile), co (Colombia), cr (Costa Rica), ch (Switzerland), do (Dominican Republic), dz (Algeria), ng (Nigeria), nl (Netherlands), fr (France). Up to 4 role x place combinations are compared. Each row is in that country's own currency (amounts are not converted between currencies) and says its pay period (per year in most countries). Each row links to that search on WhatJobs.

compare_salaries input schema
{
  "type": "object",
  "title": "compare_salariesArguments",
  "required": [
    "keywords",
    "locations"
  ],
  "properties": {
    "market": {
      "type": "string",
      "title": "Market",
      "default": ""
    },
    "keywords": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "title": "Keywords"
    },
    "locations": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "title": "Locations"
    }
  }
}
compare_salaries annotations
{
  "title": "Compare salaries",
  "readOnlyHint": true,
  "openWorldHint": true,
  "destructiveHint": false
}
get_top_hiring_companies — Top hiring companies
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

List the companies posting the most jobs for a role and place right now on WhatJobs, with their job counts and example listings. Use this when the user asks who is hiring, which companies or employers have openings, or the biggest employers for a role, e.g. "Who's hiring software engineers in Berlin?". Inputs: - keyword: the job role only. - location: the place to search (city, region or country), not the user's own location unless they ask for jobs near them. - market: optional country code; if empty it is inferred from location. Supported values: uk (United Kingdom), us (United States), ca (Canada), de (Germany), in (India), pk (Pakistan), br (Brazil), es (Spain), ae (United Arab Emirates), mx (Mexico), ar (Argentina), za (South Africa), at (Austria), au (Australia), be (Belgium), bh (Bahrain), cl (Chile), co (Colombia), cr (Costa Rica), ch (Switzerland), do (Dominican Republic), dz (Algeria), ng (Nigeria), nl (Netherlands), fr (France). Counts come from the latest 50 listings. The result includes links to each company's listings and to all matching jobs on WhatJobs.

get_top_hiring_companies input schema
{
  "type": "object",
  "title": "get_top_hiring_companiesArguments",
  "required": [
    "keyword",
    "location"
  ],
  "properties": {
    "market": {
      "type": "string",
      "title": "Market",
      "default": ""
    },
    "keyword": {
      "type": "string",
      "title": "Keyword"
    },
    "location": {
      "type": "string",
      "title": "Location"
    }
  }
}
get_top_hiring_companies annotations
{
  "title": "Top hiring companies",
  "readOnlyHint": true,
  "openWorldHint": true,
  "destructiveHint": false
}
compare_job_counts — Compare job counts
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Compare how many jobs are live on WhatJobs right now across places and/or roles. Use this when the user asks where the most jobs are, how much demand there is, or to compare cities or roles, e.g. "Where are the most data analyst jobs in Germany?", "More jobs for nurses or carers in Leeds?", "Paris vs Berlin for developers". Inputs: - keywords: one or more job roles (may be [""] to count all jobs). - locations: one or more places to search, not the user's own location unless they ask about jobs near them. Up to 6 keyword x location combinations are compared. - market: optional. Leave empty to let each location use its own country (so "Paris" and "Berlin" compare France and Germany). Each row includes a link to that search on WhatJobs.

compare_job_counts input schema
{
  "type": "object",
  "title": "compare_job_countsArguments",
  "required": [
    "keywords",
    "locations"
  ],
  "properties": {
    "market": {
      "type": "string",
      "title": "Market",
      "default": ""
    },
    "keywords": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "title": "Keywords"
    },
    "locations": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "title": "Locations"
    }
  }
}
compare_job_counts annotations
{
  "title": "Compare job counts",
  "readOnlyHint": true,
  "openWorldHint": true,
  "destructiveHint": false
}
search_latest_jobs — Latest jobs
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Show only recently posted WhatJobs listings for a role and place, newest first. Use this when the user asks for new, fresh, recent or today's jobs, e.g. "Any electrician jobs posted today in Manchester?" or "New marketing jobs this week in Madrid". Inputs: - keyword: the job role only. - location: the place to search (city, region or country), not the user's own location unless they ask for jobs near them. - posted_within_days: 1 for today/yesterday, 7 for this week (default), up to 30. - market: optional country code; if empty it is inferred from location. Supported values: uk (United Kingdom), us (United States), ca (Canada), de (Germany), in (India), pk (Pakistan), br (Brazil), es (Spain), ae (United Arab Emirates), mx (Mexico), ar (Argentina), za (South Africa), at (Austria), au (Australia), be (Belgium), bh (Bahrain), cl (Chile), co (Colombia), cr (Costa Rica), ch (Switzerland), do (Dominican Republic), dz (Algeria), ng (Nigeria), nl (Netherlands), fr (France). The result includes a link to all matching jobs on WhatJobs.

search_latest_jobs input schema
{
  "type": "object",
  "title": "search_latest_jobsArguments",
  "required": [
    "keyword",
    "location"
  ],
  "properties": {
    "market": {
      "type": "string",
      "title": "Market",
      "default": ""
    },
    "keyword": {
      "type": "string",
      "title": "Keyword"
    },
    "location": {
      "type": "string",
      "title": "Location"
    },
    "posted_within_days": {
      "type": "integer",
      "title": "Posted Within Days",
      "default": 7
    }
  }
}
search_latest_jobs annotations
{
  "title": "Latest jobs",
  "readOnlyHint": true,
  "openWorldHint": true,
  "destructiveHint": false
}
match_jobs_to_profile — Match jobs to profile
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Find WhatJobs listings that fit a person's background: searches up to 4 target job titles at once and ranks the jobs by how well the title matches and how many of their skills each listing mentions. Use this when the user shares their CV, experience or skills and asks what jobs suit them, e.g. "Here's my CV, what should I apply for in Manchester?". Inputs: - job_titles: 1-4 job titles that fit the person (you choose them from what they shared). - skills: up to 10 key skills or tools (e.g. "Python", "SQL", "forklift licence"). - location: where they want to work (the place to search). - market: optional country code; if empty it is inferred from location. Supported values: uk (United Kingdom), us (United States), ca (Canada), de (Germany), in (India), pk (Pakistan), br (Brazil), es (Spain), ae (United Arab Emirates), mx (Mexico), ar (Argentina), za (South Africa), at (Austria), au (Australia), be (Belgium), bh (Bahrain), cl (Chile), co (Colombia), cr (Costa Rica), ch (Switzerland), do (Dominican Republic), dz (Algeria), ng (Nigeria), nl (Netherlands), fr (France). Pass only titles and skills. Never pass CV text, names, contact details or other personal data. The result includes a link to all matching jobs on WhatJobs.

match_jobs_to_profile input schema
{
  "type": "object",
  "title": "match_jobs_to_profileArguments",
  "required": [
    "job_titles",
    "location"
  ],
  "properties": {
    "market": {
      "type": "string",
      "title": "Market",
      "default": ""
    },
    "skills": {
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        {
          "type": "null"
        }
      ],
      "title": "Skills",
      "default": null
    },
    "location": {
      "type": "string",
      "title": "Location"
    },
    "job_titles": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "title": "Job Titles"
    }
  }
}
match_jobs_to_profile annotations
{
  "title": "Match jobs to profile",
  "readOnlyHint": true,
  "openWorldHint": true,
  "destructiveHint": false
}

Prompts

0 advertised

No prompt definitions available.

Resources

2 advertised

logo_png

Advertised by the server during the last successful anonymous check.

logo_png URI
ui://whatjobs/logo.png

MIME type: image/png

view

Advertised by the server during the last successful anonymous check.

view URI
ui://whatjobs/view.html

MIME type: text/html;profile=mcp-app

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (2 of 2 answered).

  1. 2026-11-07: 2 of 2 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1153 ms
95th percentile latency
1153 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1153 ms · metadata changed · 7 tool(s), 2 resource(s), 0 resource template(s), 0 prompt(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http whatjobs-mcp https://mcp.whatjobs.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add whatjobs-mcp --url https://mcp.whatjobs.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable whatjobs-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "whatjobs-mcp": {
      "url": "https://mcp.whatjobs.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "whatjobs-mcp": {
      "type": "streamableHttp",
      "url": "https://mcp.whatjobs.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start whatjobs-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "whatjobs-mcp": {
      "type": "http",
      "url": "https://mcp.whatjobs.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http whatjobs-mcp https://mcp.whatjobs.com/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://mcp.whatjobs.com/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "whatjobs-mcp": {
      "serverUrl": "https://mcp.whatjobs.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like WhatJobs MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run WhatJobs MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing