{
  "data": {
    "tool": {
      "category": "",
      "endpoint": "https://mcp.jobyap.com/mcp",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/jobyap-jobs.json",
      "kind": "mcp",
      "listed": "indexed",
      "liveUrl": "https://www.anchorterminal.com/api/v1/live/jobyap-jobs.json",
      "markdownUrl": "https://www.anchorterminal.com/tools/jobyap-jobs.md",
      "mcpTools": {
        "check": {
          "checker": "anchor-check/1.0",
          "totalTokens": 2758,
          "counts": {
            "error": 0,
            "note": 1,
            "warn": 3
          },
          "findings": [
            {
              "rule": "TC11",
              "severity": "warn",
              "tool": "search",
              "message": "its one parameter, query, has no description",
              "fix": "Describe each one: format, units, an example, and what happens when it's left out."
            },
            {
              "rule": "TC11",
              "severity": "warn",
              "tool": "search_jobs",
              "message": "2 parameters without a description: page_size, work_mode",
              "fix": "Describe each one: format, units, an example, and what happens when it's left out."
            },
            {
              "rule": "TC11",
              "severity": "warn",
              "tool": "search_locations",
              "message": "1 parameter without a description: limit",
              "fix": "Describe each one: format, units, an example, and what happens when it's left out."
            },
            {
              "rule": "TC24",
              "severity": "note",
              "message": "7 of 9 tools have no outputSchema",
              "fix": "Declare outputSchema for tools that return structured data, and return structuredContent that matches it."
            }
          ]
        },
        "checkedAt": "2026-10-04T22:23:08Z",
        "count": 9,
        "schemaTokens": 2758,
        "status": "ok",
        "tools": [
          {
            "name": "search_jobs",
            "title": "Search jobs",
            "description": "Search JobYap's aggregated job postings with structured filters. Fast (under a second): use it to browse, list, count or page through postings and to answer general questions about who is hiring. To find the best postings for one specific person (a resume, or their experience, skills or visa needs), use match_jobs instead. The text query matches job titles only (case-insensitive substring) — try synonyms or shorter tokens when results are thin. Company names must exactly match values from list_companies; locations must be identifiers from search_locations. work_mode matches jobs explicitly marked remote or hybrid (unmarked means unstated, not onsite). Results are active listings, newest first by default; sort=popular ranks by discussion activity. To paginate, pass next_cursor back as cursor and keep every other argument identical.",
            "inputSchema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "properties": {
                "companies": {
                  "description": "Exact company names from list_companies.",
                  "items": {
                    "maxLength": 200,
                    "minLength": 1,
                    "type": "string"
                  },
                  "maxItems": 10,
                  "minItems": 1,
                  "type": "array"
                },
                "cursor": {
                  "description": "Opaque cursor from a previous next_cursor.",
                  "maxLength": 512,
                  "minLength": 1,
                  "pattern": "^[A-Za-z0-9_-]+$",
                  "type": "string"
                },
                "has_comments": {
                  "description": "Only jobs with community discussion.",
                  "type": "boolean"
                },
                "include_total": {
                  "description": "Also compute the total match count (slower).",
                  "type": "boolean"
                },
                "locations": {
                  "description": "Location identifiers from search_locations, e.g. city-US-CA-san_francisco.",
                  "items": {
                    "maxLength": 100,
                    "pattern": "^(?:country-[A-Za-z]{2}|state-[A-Za-z]{2}-(?=\\S)[^-\\r\\n]{1,64}|city-[A-Za-z]{2}-(?=\\S)[^-\\r\\n]{1,64}-\\S{1,80})$",
                    "type": "string"
                  },
                  "maxItems": 10,
                  "minItems": 1,
                  "type": "array"
                },
                "page_size": {
                  "maximum": 50,
                  "minimum": 1,
                  "type": "integer"
                },
                "posted_within": {
                  "description": "Hard freshness filter on the publish date.",
                  "enum": [
                    "24h",
                    "7d",
                    "30d"
                  ],
                  "type": "string"
                },
                "query": {
                  "description": "Substring matched against job titles only.",
                  "maxLength": 200,
                  "minLength": 1,
                  "type": "string"
                },
                "sort": {
                  "description": "recent (default) or popular (most discussed).",
                  "enum": [
                    "recent",
                    "popular"
                  ],
                  "type": "string"
                },
                "work_mode": {
                  "enum": [
                    "remote",
                    "hybrid"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "openWorldHint": false,
              "readOnlyHint": true
            }
          },
          {
            "name": "match_jobs",
            "title": "Match jobs to a candidate",
            "description": "Find and rank the best live postings for one specific candidate, such as someone who shared a resume or described their experience, skills or visa needs. Slow: it reads each posting's full description, so a call can take 10 to 15 seconds. For browsing, listing or counting postings, use search_jobs, which answers in under a second. Filters active jobs by title terms (any of them; a term matches when the title holds all its words), excluded title terms, companies, locations and posting window, then takes the newest 300 of that pool (pool_total says how many matched) and reads each full description. It drops postings with no usable description, postings whose stated minimum years of experience exceed candidate_years by more than 1, and, with needs_sponsorship, postings that refuse sponsorship or require citizenship or a clearance; dropped counts each reason. The rest are ranked by how many skills appear in the description, then newest first. Each result carries skills_matched, years_bar, flags and up to 6 requirement sentences. The screening is heuristic: read finalists in full with get_job.",
            "inputSchema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "properties": {
                "candidate_years": {
                  "description": "Candidate years of professional experience; drops postings that require more than one year beyond it.",
                  "maximum": 50,
                  "minimum": 0,
                  "type": "number"
                },
                "companies": {
                  "description": "Exact company names from list_companies. With titles, a posting must match both.",
                  "items": {
                    "maxLength": 200,
                    "minLength": 1,
                    "type": "string"
                  },
                  "maxItems": 15,
                  "minItems": 1,
                  "type": "array"
                },
                "exclude_companies": {
                  "description": "Company names to leave out, case-insensitive, e.g. the current employer.",
                  "items": {
                    "maxLength": 200,
                    "minLength": 1,
                    "type": "string"
                  },
                  "maxItems": 15,
                  "minItems": 1,
                  "type": "array"
                },
                "exclude_titles": {
                  "description": "Title terms that remove a posting, matched like titles, e.g. \"senior\", \"staff\", \"lead\", \"manager\".",
                  "items": {
                    "maxLength": 60,
                    "minLength": 2,
                    "type": "string"
                  },
                  "maxItems": 15,
                  "minItems": 1,
                  "type": "array"
                },
                "include_anywhere": {
                  "default": true,
                  "description": "With locations, also keep fully remote \"Anywhere\" postings. Default true.",
                  "type": "boolean"
                },
                "limit": {
                  "default": 15,
                  "description": "Results to return, default 15.",
                  "maximum": 25,
                  "minimum": 1,
                  "type": "integer"
                },
                "locations": {
                  "description": "country-XX (ISO alpha-2) for a country, or state and city identifiers from search_locations. Omit for worldwide.",
                  "items": {
                    "maxLength": 100,
                    "pattern": "^(?:country-[A-Za-z]{2}|state-[A-Za-z]{2}-(?=\\S)[^-\\r\\n]{1,64}|city-[A-Za-z]{2}-(?=\\S)[^-\\r\\n]{1,64}-\\S{1,80})$",
                    "type": "string"
                  },
                  "maxItems": 10,
                  "minItems": 1,
                  "type": "array"
                },
                "needs_sponsorship": {
                  "default": false,
                  "description": "Drop postings that refuse visa sponsorship or require citizenship or a security clearance. Default false.",
                  "type": "boolean"
                },
                "posted_within": {
                  "default": "7d",
                  "description": "Posting window: 24h, 7d (default) or 30d.",
                  "enum": [
                    "24h",
                    "7d",
                    "30d"
                  ],
                  "type": "string"
                },
                "skills": {
                  "description": "Specific skills and domain terms from the resume, as whole words or phrases. They rank results and never filter.",
                  "items": {
                    "maxLength": 40,
                    "minLength": 1,
                    "type": "string"
                  },
                  "maxItems": 20,
                  "minItems": 1,
                  "type": "array"
                },
                "titles": {
                  "description": "Title terms, any of which may match. A term matches when the title contains all its words as whole words, in any order: \"software engineer\" also matches \"Engineer, Software\". Required unless companies is given.",
                  "items": {
                    "maxLength": 60,
                    "minLength": 2,
                    "type": "string"
                  },
                  "maxItems": 15,
                  "minItems": 1,
                  "type": "array"
                },
                "work_mode": {
                  "description": "Only postings explicitly marked remote or hybrid.",
                  "enum": [
                    "remote",
                    "hybrid"
                  ],
                  "type": "string"
                }
              },
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "openWorldHint": false,
              "readOnlyHint": true
            }
          },
          {
            "name": "get_job",
            "title": "Get job details",
            "description": "Fetch one job posting in full: markdown description, salary ranges, locations with work mode, derived employment types, apply URL, posting dates and the canonical JobYap discussion URL. Works for expired jobs too (apply_url is null once inactive).",
            "inputSchema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "properties": {
                "id": {
                  "anyOf": [
                    {
                      "exclusiveMinimum": 0,
                      "maximum": 2147483647,
                      "type": "integer"
                    },
                    {
                      "maxLength": 2048,
                      "minLength": 1,
                      "type": "string"
                    }
                  ],
                  "description": "Numeric JobYap job id, a full jobyap.com job URL, or a job page slug."
                }
              },
              "required": [
                "id"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "openWorldHint": false,
              "readOnlyHint": true
            }
          },
          {
            "name": "get_job_comments",
            "title": "Get job discussion",
            "description": "Fetch the community discussion thread for a job: chronological, threaded via parent_id, with like counts. Comments are user-generated content. Threads stay open after a job expires.",
            "inputSchema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "properties": {
                "id": {
                  "anyOf": [
                    {
                      "exclusiveMinimum": 0,
                      "maximum": 2147483647,
                      "type": "integer"
                    },
                    {
                      "maxLength": 2048,
                      "minLength": 1,
                      "type": "string"
                    }
                  ],
                  "description": "Numeric JobYap job id, a full jobyap.com job URL, or a job page slug."
                }
              },
              "required": [
                "id"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "openWorldHint": false,
              "readOnlyHint": true
            }
          },
          {
            "name": "search_locations",
            "title": "Search locations",
            "description": "Resolve a free-text place name (\"toronto\", \"Japan\", \"Texas\") to the location identifiers search_jobs accepts (country-XX, state-XX-YY, city-XX-YY-name). Searches every place JobYap knows, not only those with current openings, so an identifier may match no jobs. City display omits the state, and the list can be shorter than limit.",
            "inputSchema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "properties": {
                "limit": {
                  "maximum": 25,
                  "minimum": 1,
                  "type": "integer"
                },
                "query": {
                  "description": "Place name fragment, minimum 2 characters.",
                  "maxLength": 100,
                  "minLength": 2,
                  "type": "string"
                }
              },
              "required": [
                "query"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "openWorldHint": false,
              "readOnlyHint": true
            }
          },
          {
            "name": "list_companies",
            "title": "List companies",
            "description": "List every company JobYap tracks with its active job count and JobYap company-page URL. Use the exact names as search_jobs company filters.",
            "inputSchema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "properties": {},
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "openWorldHint": false,
              "readOnlyHint": true
            }
          },
          {
            "name": "get_job_stats",
            "title": "JobYap stats",
            "description": "Aggregate stats: companies tracked, active job count, and the newest posting date.",
            "inputSchema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "properties": {},
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "openWorldHint": false,
              "readOnlyHint": true
            }
          },
          {
            "name": "search",
            "title": "Search JobYap (deep research)",
            "description": "Search JobYap job postings by natural-language query. Matches job titles, falling back to significant keywords when the full phrase finds little. Returns result ids, titles and citable URLs for use with fetch. For structured filtering (location, company, remote, freshness) prefer search_jobs.",
            "inputSchema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "properties": {
                "query": {
                  "maxLength": 200,
                  "minLength": 1,
                  "type": "string"
                }
              },
              "required": [
                "query"
              ],
              "type": "object"
            },
            "outputSchema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "additionalProperties": false,
              "properties": {
                "results": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "title": {
                        "type": "string"
                      },
                      "url": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "id",
                      "title",
                      "url"
                    ],
                    "type": "object"
                  },
                  "type": "array"
                }
              },
              "required": [
                "results"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "openWorldHint": false,
              "readOnlyHint": true
            }
          },
          {
            "name": "fetch",
            "title": "Fetch JobYap document (deep research)",
            "description": "Retrieve the full JobYap document for a search result id: the complete posting as markdown (description, salary, locations, apply link) plus top community comments, with a citable URL.",
            "inputSchema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "properties": {
                "id": {
                  "description": "A result id returned by search.",
                  "maxLength": 2048,
                  "minLength": 1,
                  "type": "string"
                }
              },
              "required": [
                "id"
              ],
              "type": "object"
            },
            "outputSchema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "additionalProperties": false,
              "properties": {
                "id": {
                  "type": "string"
                },
                "metadata": {
                  "additionalProperties": {},
                  "propertyNames": {
                    "type": "string"
                  },
                  "type": "object"
                },
                "text": {
                  "type": "string"
                },
                "title": {
                  "type": "string"
                },
                "url": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "title",
                "text",
                "url",
                "metadata"
              ],
              "type": "object"
            },
            "annotations": {
              "destructiveHint": false,
              "openWorldHint": false,
              "readOnlyHint": true
            }
          }
        ]
      },
      "name": "JobYap Job Search",
      "note": "Indexed from the official MCP registry: facts and our own checks, not reviewed, so no score, grade or rank.",
      "packages": [
        {
          "registryType": "npm",
          "identifier": "jobyap-mcp",
          "version": "1.1.0",
          "transport": "stdio"
        }
      ],
      "pageJsonUrl": "https://www.anchorterminal.com/tools/jobyap-jobs.json",
      "popularity": {
        "githubStars": 0,
        "npmWeekly": 32
      },
      "registryName": "com.jobyap/jobs",
      "remotes": [
        {
          "type": "streamable-http",
          "url": "https://mcp.jobyap.com/mcp"
        }
      ],
      "repository": "https://github.com/jobyap/agent-skills",
      "reviewed": false,
      "slug": "jobyap-jobs",
      "source": "the official MCP registry",
      "sourceUrl": "https://registry.modelcontextprotocol.io/v0.1/servers?search=com.jobyap/jobs",
      "summary": "Search job postings aggregated from companies' careers sites, plus each job's discussion thread.",
      "updatedAt": "2026-10-02T01:13:21Z",
      "url": "https://www.anchorterminal.com/tools/jobyap-jobs",
      "vendor": "jobyap.com",
      "vendorUrl": "https://jobyap.com",
      "version": "1.1.0",
      "websiteUrl": "https://jobyap.com",
      "where": "both",
      "why": [
        "vendor"
      ]
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/tools/jobyap-jobs",
    "json": "https://www.anchorterminal.com/tools/jobyap-jobs.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/tools/jobyap-jobs.md",
    "slim": "https://www.anchorterminal.com/tools/jobyap-jobs.min.md"
  },
  "markdown": "# JobYap Job Search\n\n\u003e Indexed, not reviewed: facts from the official MCP registry and our own checks. No score, grade or rank, and not in the rankings until the panel reviews it. How the index works: https://www.anchorterminal.com/indexed/\n\n- Kind: MCP server, by jobyap.com (https://jobyap.com)\n- Listed because: It's published in the registry under jobyap.com, a namespace the registry only gives to whoever proves they control that domain.\n- What the official MCP registry says: Search job postings aggregated from companies' careers sites, plus each job's discussion thread.\n\n## Facts\n\n- MCP registry: `com.jobyap/jobs` 1.1.0\n- Endpoint: https://mcp.jobyap.com/mcp (streamable HTTP)\n- Package: npm `jobyap-mcp` (stdio)\n- Source: https://github.com/jobyap/agent-skills\n- Website: https://jobyap.com\n- npm downloads a week: 32\n- GitHub stars: 0\n- Registry entry updated: 2026-10-02\n\n## Tools\n\n- Tools it lists (9, about 2,758 tokens of context, `tools/list` without credentials over MCP 2026-07-28, checked 2026-10-04 22:23 UTC):\n  - `search_jobs` (read-only): Search JobYap's aggregated job postings with structured filters. Fast (under a second): use it to browse, list, count or page through postings and to answer…\n  - `match_jobs` (read-only): Find and rank the best live postings for one specific candidate, such as someone who shared a resume or described their experience, skills or visa needs. Slow:…\n  - `get_job` (read-only): Fetch one job posting in full: markdown description, salary ranges, locations with work mode, derived employment types, apply URL, posting dates and the…\n  - `get_job_comments` (read-only): Fetch the community discussion thread for a job: chronological, threaded via parent_id, with like counts. Comments are user-generated content. Threads stay…\n  - `search_locations` (read-only): Resolve a free-text place name (\"toronto\", \"Japan\", \"Texas\") to the location identifiers search_jobs accepts (country-XX, state-XX-YY, city-XX-YY-name).…\n  - `list_companies` (read-only): List every company JobYap tracks with its active job count and JobYap company-page URL. Use the exact names as search_jobs company filters.\n  - `get_job_stats` (read-only): Aggregate stats: companies tracked, active job count, and the newest posting date.\n  - `search` (read-only): Search JobYap job postings by natural-language query. Matches job titles, falling back to significant keywords when the full phrase finds little. Returns…\n  - `fetch` (read-only): Retrieve the full JobYap document for a search result id: the complete posting as markdown (description, salary, locations, apply link) plus top community…\n- How its tools read to an agent (0 errors, 3 warnings, 1 note, about 2,758 tokens; rules at https://www.anchorterminal.com/check.md; not part of the score):\n  - warn TC11 search: its one parameter, query, has no description\n  - warn TC11 search_jobs: 2 parameters without a description: page_size, work_mode\n  - warn TC11 search_locations: 1 parameter without a description: limit\n  - note TC24 server: 7 of 9 tools have no outputSchema\n\n- JSON: https://www.anchorterminal.com/api/v1/tools/jobyap-jobs.json\n- Being indexed says nothing about quality, and nobody can pay for it. Ask for a review: https://www.anchorterminal.com/builders/#claiming\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-04",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Terminal",
        "url": "https://www.anchorterminal.com/tools/"
      },
      {
        "name": "Indexed",
        "url": "https://www.anchorterminal.com/indexed/"
      },
      {
        "name": "JobYap Job Search",
        "url": ""
      }
    ],
    "description": "JobYap Job Search, an MCP server by jobyap.com, listed from the official MCP registry. Indexed, not reviewed: facts and our own checks, no score or ranking. Search job postings aggregated from companies' careers sites, plus each job's discussion thread.",
    "facts": [
      "not reviewed",
      "not ranked",
      "facts only"
    ],
    "h1": "JobYap Job Search",
    "image": "https://www.anchorterminal.com/assets/og/indexed.png",
    "path": "/tools/jobyap-jobs",
    "published": "",
    "section": "indexed",
    "title": "JobYap Job Search: MCP server, indexed from the official MCP registry",
    "toc": null,
    "updated": "2026-10-04",
    "url": "https://www.anchorterminal.com/tools/jobyap-jobs"
  },
  "tokens": {
    "markdown": 1000,
    "slim": 930
  },
  "version": 1
}
