Skip to main content
Glama
tw-jobs-mcp

tw-jobs-mcp

by HsuanC0921

search_jobs

Read-onlyIdempotent

搜尋職缺,回傳表格(id 給 get_job,company_id 給 get_company)。 keyword 中文(給 104)、keyword_en 英文(給其他來源),互為翻譯;只填一個時兩邊共用。 非 104 來源只支援 keyword、area(yourator 另有 sort=newest,boards 另有 remote_only),其餘條件會在註記說明未套用。 area/jobcat 填中文名稱(台北市、軟體工程師)。salary_min 的單位是…

Instructions

搜尋職缺,回傳表格(id 給 get_job,company_id 給 get_company)。 keyword 中文(給 104)、keyword_en 英文(給其他來源),互為翻譯;只填一個時兩邊共用。 非 104 來源只支援 keyword、area(yourator 另有 sort=newest,boards 另有 remote_only),其餘條件會在註記說明未套用。 area/jobcat 填中文名稱(台北市、軟體工程師)。salary_min 的單位是 salary_unit,104 預設不含面議,include_negotiable=True 才納入。 my_years=使用者的年資,列出要求不超過它的(含經驗不拘)。per_page≤30,用 page 翻頁。

Input Schema

NameRequiredDescriptionDefault
areaNo
pageNo
sortNorelevance
jobcatNo
sourceNo104
keywordNo
job_typeNo
my_yearsNo
new_onlyNo
per_pageNo
educationNo
keyword_enNo
salary_minNo
remote_onlyNo
salary_unitNo月薪
include_negotiableNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.2.1
    • addedInput schema / properties / include_negotiable
      Added value: +{
      +  "default": false,
      +  "type": "boolean"
      +}
  2. Changed7 schema fields changedv1.1.2
    • addedInput schema / properties / education / enum
      Added value: +[
      +  "高中職",
      +  "專科",
      +  "大學",
      +  "碩士",
      +  "博士"
      +]
    • addedInput schema / properties / job_type / enum
      Added value: +[
      +  "全職",
      +  "兼職",
      +  "高階",
      +  "派遣"
      +]
    • addedInput schema / properties / keyword_en
      Added value: +{
      +  "default": "",
      +  "type": "string"
      +}
    • addedInput schema / properties / salary_unit / enum
      Added value: +[
      +  "月薪",
      +  "年薪",
      +  "日薪",
      +  "時薪"
      +]
    • addedInput schema / properties / sort / enum
      Added value: +[
      +  "relevance",
      +  "newest",
      +  "salary"
      +]
    • addedInput schema / properties / source / enum
      Added value: +[
      +  "104",
      +  "yourator",
      +  "boards",
      +  "workday",
      +  "all"
      +]
    • removedInput schema / properties / with_sponsored
      Removed value: -{
      -  "default": false,
      -  "type": "boolean"
      -}
  3. First observedv1.1.0

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already cover read-only/idempotent/open-world, and the description adds critical non-obvious behavior: filters other than keyword/area are silently dropped for non-104 sources, 104 excludes 面議 postings unless include_negotiable=True, and per_page is capped at 30 with page-based pagination. These are traps an agent would otherwise fall into.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and return shape are front-loaded in the first line, and every subsequent line adds concrete constraint information with no filler. The one drawback is density: parameter rules are packed into a continuous stream without line-level labels, which slows scanning for a 16-parameter tool.

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

Completeness4/5

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

For a 16-param tool with no output schema and zero schema descriptions, the description covers the highest-risk areas (source-specific filter support, salary unit, experience matching, pagination) and states the return is a table. It falls short by leaving job_type, new_only, education, and sort partially or wholly unexplained.

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?

Schema coverage is 0%, so the description carries the full burden; it explains keyword/keyword_en interplay, Chinese-name conventions for area/jobcat, the salary_min↔salary_unit coupling, include_negotiable, my_years, and pagination limits. However job_type, new_only, education, and the full semantics of the sort enum are never mentioned, leaving four parameters undocumented anywhere.

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?

States a specific verb and resource ('搜尋職缺,回傳表格') and immediately clarifies the return shape plus downstream routing (id → get_job, company_id → get_company). It distinguishes itself from the detail-fetching siblings but never clarifies its relationship to salary_overview or sources, so sibling differentiation is incomplete.

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

Usage Guidelines5/5

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

Gives explicit routing rules: keyword is Chinese for 104, keyword_en is English for other sources, and when only one is supplied both are shared. It also documents which filters are honored per source (yourator → sort=newest, boards → remote_only) and that unsupported conditions are not silently applied, which is exactly the when-to-use/when-not-to-use guidance an agent needs.

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