protogrid

Search / io.github.eosphor/ats-jobs

ATS Jobs

R1· needs a key

Search ~1.4M open jobs from 24k company career boards: Greenhouse, Lever, Ashby, Workday and more

v1.0.2 · active · repository · website · descriptor JSON · versions

An agent can connect on its own if it already holds ATS_JOBS_TOKEN.Remote endpoint behind a static API key or header. The registry never sees the value; the agent fills the placeholder.
Quality88good
Trust96of 100
Uptime, 30 days95%
Latency p50662 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "ats-jobs": {
      "type": "http",
      "url": "https://melikhov.fr/mcp",
      "headers": {
        "Authorization": "Bearer ${ATS_JOBS_TOKEN}"
      }
    }
  }
}
claude mcp add --transport http ats-jobs https://melikhov.fr/mcp --header "Authorization: Bearer ${ATS_JOBS_TOKEN}"
[mcp_servers.ats-jobs]
url = "https://melikhov.fr/mcp"
bearer_token_env_var = "ATS_JOBS_TOKEN"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "ats-jobs": {
      "type": "remote",
      "url": "https://melikhov.fr/mcp",
      "enabled": true,
      "headers": {
        "Authorization": "Bearer {env:ATS_JOBS_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "ats-jobs": {
      "type": "http",
      "url": "https://melikhov.fr/mcp",
      "headers": {
        "Authorization": "Bearer ${ATS_JOBS_TOKEN}"
      }
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=ats-jobs&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbWVsaWtob3YuZnIvbWNwIiwiaGVhZGVycyI6eyJBdXRob3JpemF0aW9uIjoiQmVhcmVyICR7QVRTX0pPQlNfVE9LRU59In19"
}
{
  "servers": {
    "ats-jobs": {
      "type": "http",
      "url": "https://melikhov.fr/mcp",
      "headers": {
        "Authorization": "Bearer ${ATS_JOBS_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "ats-jobs": {
      "httpUrl": "https://melikhov.fr/mcp",
      "headers": {
        "Authorization": "Bearer ${ATS_JOBS_TOKEN}"
      }
    }
  }
}
extensions:
  "ats-jobs":
    enabled: true
    name: "ats-jobs"
    type: streamable_http
    uri: "https://melikhov.fr/mcp"
    headers:
      "Authorization": "Bearer ${ATS_JOBS_TOKEN}"
    timeout: 300

Placeholders to fill from your own secret store: ${ATS_JOBS_TOKEN}. The registry never accepts secret values.

Quality 88 / 100good

protocoln/a · weight 25
  • n/a
    protocol.modern, protocol.stateless, protocol.transport, protocol.list_ttlno remote answered a protocol handshake (not probed yet, unreachable, or local-only)
authorization100 · weight 15
  • pass
    auth.prmProtected Resource Metadata (RFC 9728) published
  • pass
    auth.as_metadataauthorization server metadata reachable
  • pass
    auth.cimdClient ID Metadata Documents supported
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene81 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length1 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations5 of 5 tools declare readOnlyHint or destructiveHint
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: search_all_jobs (destructiveHint, idempotentHint); search_jobs (destructiveHint, idempotentHint); search_jobs_multi (destructiveHint, idempotentHint); …
  • pass
    tools.token_costabout 1,232 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
  • pass
    tools.hidden_textno hidden text in tool names, descriptions, schemas or annotations
stabilityn/a · weight 15
  • n/a
    stability.changes, stability.rug_pull, stability.new_linkstool history recorded for 4 of the 7 days needed
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

5 tools, about 1,232 tokens to load them all · tool set 4c5a38bd90d2 · checked 2026-11-14 07:36 UTC

Tool changes

No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 96 / 100

provenance90
liveness98
freshness100
hygiene100

+repository +namespace-matches-repo +website +reachable +uptime-95% +updated-5d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://melikhov.fr/mcp streamable-httpapi_key ${ATS_JOBS_TOKEN}yes95%662 ms–2026-11-14
https://ats-jobs.mcpize.run/mcp streamable-httpoauth2 AS: https://ats-jobs.mcpize.runyes94%527 ms–2026-11-14

Tools (5)

detect_company_atsread-onlyDetect which ATS a company uses, without fetching its jobs. Takes a website, domain or careers URL and returns the ATS vendor, handle and how it was detected (URL pattern, careers page, or API probe). Useful to confirm a company is supported before calling search_jobs.
list_supported_atsread-onlyList the 10 supported ATS vendors and what each needs as input.
search_all_jobsread-onlySearch open jobs across ~24,000 companies at once - no company list needed. Reads a daily index of every live public board on Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Workable, Recruitee, Teamtailor, Breezy HR and Personio. Jobs from the latest daily completed index (about 1.4 million records in the current build), at most 3 per company for variety. Results do not include descriptions. The index is a broad coverage snapshot, not an exhaustive real-time feed. - keywords: comma-separated title terms, any may match, matched at word start ("engineer" matches "Engineering Manager"; "AI" does not match "maintain"). - exclude: comma-separated title terms to drop, e.g. "senior, intern". - location: comma-separated substrings of the job location, e.g. "Berlin, Germany". "remote" also accepts remote roles. - remote: true keeps only remote roles. - posted_within_days: only jobs first published in the last N days. - ats: limit to vendors, e.g. "greenhouse,ashby". - company: substring of the company name. - limit: 1-50 (default 20). Returns title, company, location, remote, posted_at, url, ats, ats_handle and `matched` (total matches). Use search_jobs(vendor=ats, handle=ats_handle) to get live data and descriptions for one company.
search_jobsread-onlySearch live job postings for one company. Provide either `company` (website, domain or careers URL - the ATS is detected automatically) or `vendor` + `handle` (e.g. vendor="greenhouse", handle="stripe"). Workday companies must use a careers URL, e.g. https://nvidia.wd5.myworkdayjobs.com/NVIDIAExternalCareerSite. Filters: - keywords: space-separated terms, all must appear in title, department, location, company or description (AND match, case-insensitive). - location: substring match on the job location, e.g. "Berlin" or "Paris". - remote: true keeps only remote-friendly roles. - posted_after: ISO date or datetime; returns only jobs posted on/after it. For only-new monitoring pass the previous response's `latest_posted_at`. limit: 1-50 (default 20). include_descriptions adds a truncated description (slower on Workday). Returns job rows with title, company, location, remote, department, employment_type, posted_at, url, ats, job_id, optional salary, plus `latest_posted_at` to use as the next cursor.
search_jobs_multiread-onlySearch several companies at once (up to 5), e.g. a target-account list. Each company can be a website, domain or careers URL. Returns per-company results plus a combined `jobs` list. `limit_per_company` is 1-20 (default 10). Filters behave exactly like in search_jobs.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "io.github.eosphor/ats-jobs",
  "icons": [
    {
      "src": "https://api.apify.com/v2/key-value-stores/T7jcXAg2ovd77bBZR/records/ats-jobs-logo.png",
      "sizes": [
        "512x512"
      ],
      "mimeType": "image/png"
    }
  ],
  "title": "ATS Jobs",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://melikhov.fr/mcp",
      "type": "streamable-http",
      "headers": [
        {
          "name": "Authorization",
          "isSecret": true,
          "description": "Optional for initialize and tools/list. Tool calls require Bearer YOUR_MCPIZE_API_KEY from https://mcpize.com/mcp/ats-jobs"
        }
      ]
    },
    {
      "url": "https://ats-jobs.mcpize.run/mcp",
      "type": "streamable-http",
      "headers": [
        {
          "name": "Authorization",
          "isSecret": true,
          "isRequired": true,
          "description": "Bearer <your MCPize API key>. Free tier included at https://mcpize.com/mcp/ats-jobs"
        }
      ]
    }
  ],
  "version": "1.0.2",
  "repository": {
    "url": "https://github.com/eosphor/ats-jobs-mcp",
    "source": "github"
  },
  "websiteUrl": "https://mcpize.com/mcp/ats-jobs",
  "description": "Search ~1.4M open jobs from 24k company career boards: Greenhouse, Lever, Ashby, Workday and more"
}