Jobherder job search

Paid job search: 7 matched roles, each with a tailored CV and cover letter.

我该使用它吗

质量与安全性

A
描述质量
100%
模式完整度
84%
命名质量
92%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

基于对工具定义和协议合规性的自动分析。

上下文开销

~6,006token 数(工具定义)
~14.1 KB典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 4.69%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

{
  "mcpServers": {
    "job-search": {
      "url": "https://jobherder.com/mcp"
    }
  }
}

远程端点

https://jobherder.com/mcpstreamable-http

它能做什么

工具清单

工具(5)

🟢 只读🟡 写入🔴 删除⚪ 未知
🟢get_pricing

What a Jobherder search costs and how to pay for it, in card and stablecoin terms. No auth required.

输入模式

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

输出模式

{
  "type": "object",
  "properties": {
    "service": {
      "type": "string",
      "description": "Service name"
    },
    "products": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "tool": {
            "type": "string",
            "description": "Which tool buys this product"
          },
          "unit": {
            "type": "string",
            "description": "What one purchase delivers"
          },
          "price": {
            "type": "string",
            "description": "Human-readable price"
          },
          "typical_time": {
            "type": "string",
            "description": "How long delivery usually takes"
          }
        },
        "required": [
          "tool",
          "unit",
          "price",
          "typical_time"
        ],
        "additionalProperties": false
      },
      "description": "The two things Jobherder sells"
    },
    "packs": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "pack": {
            "type": "string",
            "description": "Pack code to pass to checkout or to pay for over x402"
          },
          "credits": {
            "type": "number",
            "description": "How many runs the pack buys"
          },
          "price": {
            "type": "string",
            "description": "Human-readable price"
          },
          "buys": {
            "type": "string",
            "description": "Which product these credits are valid for: search or quick"
          },
          "description": {
            "type": "string"
          }
        },
        "required": [
          "pack",
          "credits",
          "price",
          "buys",
          "description"
        ],
        "additionalProperties": false
      },
      "description": "Buyable credit packs"
    },
    "credits_are_per_product": {
      "type": "boolean",
      "description": "Always true: a quick credit cannot pay for a full search"
    },
    "card_checkout": {
      "type": "string",
      "description": "URL for card payment"
    },
    "x402": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "network": {
              "type": "string",
              "description": "Chain the payment settles on"
            },
            "asset": {
              "type": "string",
              "description": "Token accepted, USDC"
            },
            "pay_to": {
              "type": "string",
              "description": "Receiving address"
            },
            "prices": {
              "type": "object",
              "propertyNames": {
                "type": "string"
              },
              "additionalProperties": {
                "type": "string"
              },
              "description": "Pack code to atomic USDC amount"
            },
            "how": {
              "type": "string",
              "description": "How to complete the payment loop"
            }
          },
          "required": [
            "network",
            "asset",
            "pay_to",
            "prices",
            "how"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ],
      "description": "Stablecoin payment terms, null if x402 is not configured"
    },
    "free_searches": {
      "type": "boolean",
      "description": "Always false: registration grants no credits"
    }
  },
  "required": [
    "service",
    "products",
    "packs",
    "credits_are_per_product",
    "card_checkout",
    "x402",
    "free_searches"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟡register_agent(email, name)

Create an agent identity and receive an API key. Registration is free and includes no free searches.

输入模式

{
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "description": "Email that will own the account and receive results. Must be the job seeker's own address, and must match cfg_email on every later search"
    },
    "name": {
      "description": "Display name for the account. Optional; the profile name is used on documents regardless",
      "type": "string"
    }
  },
  "required": [
    "email"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

输出模式

{
  "type": "object",
  "properties": {
    "api_key": {
      "description": "Bearer token for every later call. Shown once and never again",
      "type": "string"
    },
    "email": {
      "description": "The address the account is registered to",
      "type": "string"
    },
    "note": {
      "type": "string"
    },
    "next": {
      "description": "Suggested next call",
      "type": "string"
    },
    "message": {
      "description": "What to do about the error, when one is present",
      "type": "string"
    },
    "owner_action_url": {
      "description": "Present only on account_owned_by_human. A person already owns this address, so no key can be issued here. Send them to this page to create one and paste it back",
      "type": "string"
    },
    "error": {
      "description": "Present only on failure, e.g. \"unauthorized\" or \"payment_required\"",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢start_job_search(profile, cv_json, cv_base64, cv_type)

Spend one credit to run a full search: 7 roles matched to the profile, each with a tailored CV and cover letter returned as markdown by get_search_status and emailed as PDFs. Requires an API key. With no credit left it returns an x402 PaymentRequired; retry the same call with the signed payment in _meta["x402/payment"] to pay in USDC and run immediately.

输入模式

{
  "type": "object",
  "properties": {
    "profile": {
      "type": "object",
      "properties": {
        "cfg_name": {
          "type": "string",
          "description": "Full name of the job seeker, as it should appear on the tailored CV"
        },
        "cfg_email": {
          "type": "string",
          "description": "Must match the email the API key is registered to. Results are emailed here as well as returned by get_search_status"
        },
        "cfg_location": {
          "type": "string",
          "description": "Where the job seeker actually lives, e.g. \"Limassol, Cyprus\". Used for commute and time zone reasoning, not as a filter on its own"
        },
        "cfg_location_preference": {
          "type": "string",
          "description": "Prose description of acceptable locations, e.g. \"anywhere remote in Europe, or on-site in Berlin\". Free text; matching reads it as intent rather than parsing it"
        },
        "cfg_work_style": {
          "type": "string",
          "enum": [
            "remote_only",
            "mix"
          ],
          "description": "remote_only rejects anything requiring office attendance; mix means local or hybrid near the candidate plus remote in the chosen regions"
        },
        "cfg_want_remote_eu": {
          "type": "string",
          "enum": [
            "yes",
            "no"
          ],
          "description": "Include roles advertised as remote within the EU. Set independently of the other regions; several can be yes"
        },
        "cfg_want_remote_uk": {
          "type": "string",
          "enum": [
            "yes",
            "no"
          ],
          "description": "Include roles advertised as remote within the UK"
        },
        "cfg_want_usa": {
          "type": "string",
          "enum": [
            "yes",
            "no"
          ],
          "description": "Include roles in the USA. Say no unless the job seeker can legally work there or the role is genuinely remote-worldwide"
        },
        "cfg_languages": {
          "default": [
            "english"
          ],
          "description": "Working languages, lower case, e.g. [\"english\", \"german\"]. Roles requiring a language not listed here are dropped",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "cfg_seniority_level": {
          "type": "string",
          "description": "Seniority band as a single label or a contiguous range, e.g. \"Director\" or \"Manager – Head of Department\". Not a free-text mix of titles and industries"
        },
        "cfg_target_titles": {
          "type": "string",
          "description": "Comma-separated target job titles, e.g. \"Head of Production, COO, Product Director\""
        },
        "cfg_local_country": {
          "type": "string",
          "description": "ISO country name for where they live, e.g. \"Germany\". Required so local vs remote gating does not guess from a free-text city line"
        },
        "cfg_uk_onsite": {
          "default": "no",
          "description": "Also include on-site roles in the UK. Defaults to no; UK remote is a separate flag",
          "type": "string",
          "enum": [
            "yes",
            "no"
          ]
        },
        "cfg_industries": {
          "type": "string",
          "description": "Comma-separated sectors of interest, e.g. \"Music, Fintech, Healthcare\". Sectors only — job functions go in cfg_target_titles"
        },
        "cfg_not_interested_in": {
          "default": "",
          "description": "Comma-separated industries or employer types to exclude, e.g. \"gambling, defence\". Applied as a hard filter",
          "type": "string"
        },
        "cfg_advisory_open": {
          "default": "yes",
          "description": "Whether to include advisory, fractional, board and consulting roles alongside employment",
          "type": "string",
          "enum": [
            "yes",
            "no"
          ]
        },
        "cfg_additional_context": {
          "default": "",
          "description": "Anything else that shapes the search and is not covered by the other fields: visa position, notice period, salary floor, companies to avoid",
          "type": "string"
        },
        "cfg_share_with_employers": {
          "default": "no",
          "description": "Consent to share the profile with employers. \"no\" keeps the search entirely one-way",
          "type": "string",
          "enum": [
            "yes",
            "no"
          ]
        }
      },
      "required": [
        "cfg_name",
        "cfg_email",
        "cfg_location",
        "cfg_location_preference",
        "cfg_work_style",
        "cfg_want_remote_eu",
        "cfg_want_remote_uk",
        "cfg_want_usa",
        "cfg_seniority_level",
        "cfg_target_titles",
        "cfg_local_country",
        "cfg_industries"
      ],
      "description": "Who the job seeker is and what they want. Every field shapes matching, so guessing is worse than asking"
    },
    "cv_json": {
      "description": "The job seeker's existing CV as structured data, in the JSON Resume schema (jsonresume.org): basics, work, education, skills. Prefer this when you hold the CV as data — you do not need to render a file. Supply either cv_json or cv_base64",
      "type": "object",
      "properties": {
        "basics": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "maxLength": 120
            },
            "label": {
              "type": "string",
              "maxLength": 200
            },
            "email": {
              "type": "string",
              "maxLength": 200
            },
            "phone": {
              "type": "string",
              "maxLength": 60
            },
            "url": {
              "type": "string",
              "maxLength": 300
            },
            "summary": {
              "type": "string",
              "maxLength": 4000
            },
            "location": {
              "type": "object",
              "properties": {
                "address": {
                  "type": "string",
                  "maxLength": 200
                },
                "postalCode": {
                  "type": "string",
                  "maxLength": 30
                },
                "city": {
                  "type": "string",
                  "maxLength": 120
                },
                "region": {
                  "type": "string",
                  "maxLength": 120
                },
                "countryCode": {
                  "type": "string",
                  "maxLength": 10
                }
              }
            },
            "profiles": {
              "maxItems": 20,
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "network": {
                    "type": "string",
                    "maxLength": 80
                  },
                  "username": {
                    "type": "string",
                    "maxLength": 120
                  },
                  "url": {
                    "type": "string",
                    "maxLength": 300
                  }
                }
              }
            }
          }
        },
        "work": {
          "maxItems": 40,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 200
              },
              "company": {
                "type": "string",
                "maxLength": 200
              },
              "position": {
                "type": "string",
                "maxLength": 200
              },
              "location": {
                "type": "string",
                "maxLength": 200
              },
              "url": {
                "type": "string",
                "maxLength": 300
              },
              "startDate": {
                "type": "string",
                "maxLength": 40
              },
              "endDate": {
                "type": "string",
                "maxLength": 40
              },
              "summary": {
                "type": "string",
                "maxLength": 3000
              },
              "highlights": {
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "string",
                  "maxLength": 2000
                }
              }
            }
          }
        },
        "volunteer": {
          "maxItems": 20,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 200
              },
              "company": {
                "type": "string",
                "maxLength": 200
              },
              "position": {
                "type": "string",
                "maxLength": 200
              },
              "location": {
                "type": "string",
                "maxLength": 200
              },
              "url": {
                "type": "string",
                "maxLength": 300
              },
              "startDate": {
                "type": "string",
                "maxLength": 40
              },
              "endDate": {
                "type": "string",
                "maxLength": 40
              },
              "summary": {
                "type": "string",
                "maxLength": 3000
              },
              "highlights": {
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "string",
                  "maxLength": 2000
                }
              }
            }
          }
        },
        "education": {
          "maxItems": 20,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "institution": {
                "type": "string",
                "maxLength": 200
              },
              "area": {
                "type": "string",
                "maxLength": 200
              },
              "studyType": {
                "type": "string",
                "maxLength": 100
              },
              "startDate": {
                "type": "string",
                "maxLength": 40
              },
              "endDate": {
                "type": "string",
                "maxLength": 40
              },
              "score": {
                "type": "string",
                "maxLength": 60
              },
              "courses": {
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "string",
                  "maxLength": 2000
                }
              }
            }
          }
        },
        "skills": {
          "maxItems": 40,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 120
              },
              "level": {
                "type": "string",
                "maxLength": 60
              },
              "keywords": {
                "maxItems": 60,
                "type": "array",
                "items": {
                  "type": "string",
                  "maxLength": 80
                }
              }
            }
          }
        },
        "languages": {
          "maxItems": 20,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "language": {
                "type": "string",
                "maxLength": 80
              },
              "fluency": {
                "type": "string",
                "maxLength": 80
              }
            }
          }
        },
        "certificates": {
          "maxItems": 30,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 200
              },
              "issuer": {
                "type": "string",
                "maxLength": 200
              },
              "date": {
                "type": "string",
                "maxLength": 40
              }
            }
          }
        },
        "awards": {
          "maxItems": 30,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "title": {
                "type": "string",
                "maxLength": 200
              },
              "awarder": {
                "type": "string",
                "maxLength": 200
              },
              "date": {
                "type": "string",
                "maxLength": 40
              },
              "summary": {
                "type": "string",
                "maxLength": 1000
              }
            }
          }
        },
        "publications": {
          "maxItems": 30,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 300
              },
              "publisher": {
                "type": "string",
                "maxLength": 200
              },
              "releaseDate": {
                "type": "string",
                "maxLength": 40
              },
              "summary": {
                "type": "string",
                "maxLength": 1000
              }
            }
          }
        },
        "projects": {
          "maxItems": 30,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 200
              },
              "description": {
                "type": "string",
                "maxLength": 3000
              },
              "url": {
                "type": "string",
                "maxLength": 300
              },
              "startDate": {
                "type": "string",
                "maxLength": 40
              },
              "endDate": {
                "type": "string",
                "maxLength": 40
              },
              "highlights": {
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "string",
                  "maxLength": 2000
                }
              },
              "keywords": {
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "string",
                  "maxLength": 80
                }
              }
            }
          }
        },
        "interests": {
          "maxItems": 20,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 120
              },
              "keywords": {
                "maxItems": 30,
                "type": "array",
                "items": {
                  "type": "string",
                  "maxLength": 80
                }
              }
            }
          }
        }
      }
    },
    "cv_base64": {
      "description": "The job seeker's existing CV as a file, base64 encoded. PDF, DOCX or plain text, up to 10MB. Use cv_json instead if you have the CV as data rather than a file",
      "type": "string"
    },
    "cv_type": {
      "description": "Format of cv_base64: \"pdf\", \"docx\" or \"txt\". Ignored when cv_json is supplied",
      "type": "string"
    }
  },
  "required": [
    "profile"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

输出模式

{
  "type": "object",
  "properties": {
    "run_id": {
      "description": "Pass this to get_search_status to poll",
      "type": "string"
    },
    "status": {
      "description": "Run state at the moment of starting, normally \"running\"",
      "type": "string"
    },
    "credits_remaining": {
      "description": "Credits left for this product after the spend",
      "type": "number"
    },
    "message": {
      "description": "What happens next and roughly when, or what to do about the error",
      "type": "string"
    },
    "error": {
      "description": "Present only on failure, e.g. \"unauthorized\" or \"payment_required\"",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢quick_job_search(profile, cv_json, cv_base64, cv_type)

The single best current role for a profile, with a tailored CV and cover letter, in minutes rather than an hour. $2.50 in USDC. Use this when you want one answer fast; use start_job_search when you want a shortlist of 7 to choose from. With no credit it returns an x402 PaymentRequired; retry the same call with the signed payment in _meta["x402/payment"].

输入模式

{
  "type": "object",
  "properties": {
    "profile": {
      "type": "object",
      "properties": {
        "cfg_name": {
          "type": "string",
          "description": "Full name of the job seeker, as it should appear on the tailored CV"
        },
        "cfg_email": {
          "type": "string",
          "description": "Must match the email the API key is registered to. Results are emailed here as well as returned by get_search_status"
        },
        "cfg_location": {
          "type": "string",
          "description": "Where the job seeker actually lives, e.g. \"Limassol, Cyprus\". Used for commute and time zone reasoning, not as a filter on its own"
        },
        "cfg_location_preference": {
          "type": "string",
          "description": "Prose description of acceptable locations, e.g. \"anywhere remote in Europe, or on-site in Berlin\". Free text; matching reads it as intent rather than parsing it"
        },
        "cfg_work_style": {
          "type": "string",
          "enum": [
            "remote_only",
            "mix"
          ],
          "description": "remote_only rejects anything requiring office attendance; mix means local or hybrid near the candidate plus remote in the chosen regions"
        },
        "cfg_want_remote_eu": {
          "type": "string",
          "enum": [
            "yes",
            "no"
          ],
          "description": "Include roles advertised as remote within the EU. Set independently of the other regions; several can be yes"
        },
        "cfg_want_remote_uk": {
          "type": "string",
          "enum": [
            "yes",
            "no"
          ],
          "description": "Include roles advertised as remote within the UK"
        },
        "cfg_want_usa": {
          "type": "string",
          "enum": [
            "yes",
            "no"
          ],
          "description": "Include roles in the USA. Say no unless the job seeker can legally work there or the role is genuinely remote-worldwide"
        },
        "cfg_languages": {
          "default": [
            "english"
          ],
          "description": "Working languages, lower case, e.g. [\"english\", \"german\"]. Roles requiring a language not listed here are dropped",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "cfg_seniority_level": {
          "type": "string",
          "description": "Seniority band as a single label or a contiguous range, e.g. \"Director\" or \"Manager – Head of Department\". Not a free-text mix of titles and industries"
        },
        "cfg_target_titles": {
          "type": "string",
          "description": "Comma-separated target job titles, e.g. \"Head of Production, COO, Product Director\""
        },
        "cfg_local_country": {
          "type": "string",
          "description": "ISO country name for where they live, e.g. \"Germany\". Required so local vs remote gating does not guess from a free-text city line"
        },
        "cfg_uk_onsite": {
          "default": "no",
          "description": "Also include on-site roles in the UK. Defaults to no; UK remote is a separate flag",
          "type": "string",
          "enum": [
            "yes",
            "no"
          ]
        },
        "cfg_industries": {
          "type": "string",
          "description": "Comma-separated sectors of interest, e.g. \"Music, Fintech, Healthcare\". Sectors only — job functions go in cfg_target_titles"
        },
        "cfg_not_interested_in": {
          "default": "",
          "description": "Comma-separated industries or employer types to exclude, e.g. \"gambling, defence\". Applied as a hard filter",
          "type": "string"
        },
        "cfg_advisory_open": {
          "default": "yes",
          "description": "Whether to include advisory, fractional, board and consulting roles alongside employment",
          "type": "string",
          "enum": [
            "yes",
            "no"
          ]
        },
        "cfg_additional_context": {
          "default": "",
          "description": "Anything else that shapes the search and is not covered by the other fields: visa position, notice period, salary floor, companies to avoid",
          "type": "string"
        },
        "cfg_share_with_employers": {
          "default": "no",
          "description": "Consent to share the profile with employers. \"no\" keeps the search entirely one-way",
          "type": "string",
          "enum": [
            "yes",
            "no"
          ]
        }
      },
      "required": [
        "cfg_name",
        "cfg_email",
        "cfg_location",
        "cfg_location_preference",
        "cfg_work_style",
        "cfg_want_remote_eu",
        "cfg_want_remote_uk",
        "cfg_want_usa",
        "cfg_seniority_level",
        "cfg_target_titles",
        "cfg_local_country",
        "cfg_industries"
      ],
      "description": "Who the job seeker is and what they want. Every field shapes matching, so guessing is worse than asking"
    },
    "cv_json": {
      "description": "The job seeker's existing CV as structured data, in the JSON Resume schema (jsonresume.org): basics, work, education, skills. Prefer this when you hold the CV as data — you do not need to render a file. Supply either cv_json or cv_base64",
      "type": "object",
      "properties": {
        "basics": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "maxLength": 120
            },
            "label": {
              "type": "string",
              "maxLength": 200
            },
            "email": {
              "type": "string",
              "maxLength": 200
            },
            "phone": {
              "type": "string",
              "maxLength": 60
            },
            "url": {
              "type": "string",
              "maxLength": 300
            },
            "summary": {
              "type": "string",
              "maxLength": 4000
            },
            "location": {
              "type": "object",
              "properties": {
                "address": {
                  "type": "string",
                  "maxLength": 200
                },
                "postalCode": {
                  "type": "string",
                  "maxLength": 30
                },
                "city": {
                  "type": "string",
                  "maxLength": 120
                },
                "region": {
                  "type": "string",
                  "maxLength": 120
                },
                "countryCode": {
                  "type": "string",
                  "maxLength": 10
                }
              }
            },
            "profiles": {
              "maxItems": 20,
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "network": {
                    "type": "string",
                    "maxLength": 80
                  },
                  "username": {
                    "type": "string",
                    "maxLength": 120
                  },
                  "url": {
                    "type": "string",
                    "maxLength": 300
                  }
                }
              }
            }
          }
        },
        "work": {
          "maxItems": 40,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 200
              },
              "company": {
                "type": "string",
                "maxLength": 200
              },
              "position": {
                "type": "string",
                "maxLength": 200
              },
              "location": {
                "type": "string",
                "maxLength": 200
              },
              "url": {
                "type": "string",
                "maxLength": 300
              },
              "startDate": {
                "type": "string",
                "maxLength": 40
              },
              "endDate": {
                "type": "string",
                "maxLength": 40
              },
              "summary": {
                "type": "string",
                "maxLength": 3000
              },
              "highlights": {
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "string",
                  "maxLength": 2000
                }
              }
            }
          }
        },
        "volunteer": {
          "maxItems": 20,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 200
              },
              "company": {
                "type": "string",
                "maxLength": 200
              },
              "position": {
                "type": "string",
                "maxLength": 200
              },
              "location": {
                "type": "string",
                "maxLength": 200
              },
              "url": {
                "type": "string",
                "maxLength": 300
              },
              "startDate": {
                "type": "string",
                "maxLength": 40
              },
              "endDate": {
                "type": "string",
                "maxLength": 40
              },
              "summary": {
                "type": "string",
                "maxLength": 3000
              },
              "highlights": {
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "string",
                  "maxLength": 2000
                }
              }
            }
          }
        },
        "education": {
          "maxItems": 20,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "institution": {
                "type": "string",
                "maxLength": 200
              },
              "area": {
                "type": "string",
                "maxLength": 200
              },
              "studyType": {
                "type": "string",
                "maxLength": 100
              },
              "startDate": {
                "type": "string",
                "maxLength": 40
              },
              "endDate": {
                "type": "string",
                "maxLength": 40
              },
              "score": {
                "type": "string",
                "maxLength": 60
              },
              "courses": {
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "string",
                  "maxLength": 2000
                }
              }
            }
          }
        },
        "skills": {
          "maxItems": 40,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 120
              },
              "level": {
                "type": "string",
                "maxLength": 60
              },
              "keywords": {
                "maxItems": 60,
                "type": "array",
                "items": {
                  "type": "string",
                  "maxLength": 80
                }
              }
            }
          }
        },
        "languages": {
          "maxItems": 20,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "language": {
                "type": "string",
                "maxLength": 80
              },
              "fluency": {
                "type": "string",
                "maxLength": 80
              }
            }
          }
        },
        "certificates": {
          "maxItems": 30,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 200
              },
              "issuer": {
                "type": "string",
                "maxLength": 200
              },
              "date": {
                "type": "string",
                "maxLength": 40
              }
            }
          }
        },
        "awards": {
          "maxItems": 30,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "title": {
                "type": "string",
                "maxLength": 200
              },
              "awarder": {
                "type": "string",
                "maxLength": 200
              },
              "date": {
                "type": "string",
                "maxLength": 40
              },
              "summary": {
                "type": "string",
                "maxLength": 1000
              }
            }
          }
        },
        "publications": {
          "maxItems": 30,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 300
              },
              "publisher": {
                "type": "string",
                "maxLength": 200
              },
              "releaseDate": {
                "type": "string",
                "maxLength": 40
              },
              "summary": {
                "type": "string",
                "maxLength": 1000
              }
            }
          }
        },
        "projects": {
          "maxItems": 30,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 200
              },
              "description": {
                "type": "string",
                "maxLength": 3000
              },
              "url": {
                "type": "string",
                "maxLength": 300
              },
              "startDate": {
                "type": "string",
                "maxLength": 40
              },
              "endDate": {
                "type": "string",
                "maxLength": 40
              },
              "highlights": {
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "string",
                  "maxLength": 2000
                }
              },
              "keywords": {
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "string",
                  "maxLength": 80
                }
              }
            }
          }
        },
        "interests": {
          "maxItems": 20,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 120
              },
              "keywords": {
                "maxItems": 30,
                "type": "array",
                "items": {
                  "type": "string",
                  "maxLength": 80
                }
              }
            }
          }
        }
      }
    },
    "cv_base64": {
      "description": "The job seeker's existing CV as a file, base64 encoded. PDF, DOCX or plain text, up to 10MB. Use cv_json instead if you have the CV as data rather than a file",
      "type": "string"
    },
    "cv_type": {
      "description": "Format of cv_base64: \"pdf\", \"docx\" or \"txt\". Ignored when cv_json is supplied",
      "type": "string"
    }
  },
  "required": [
    "profile"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

输出模式

{
  "type": "object",
  "properties": {
    "run_id": {
      "description": "Pass this to get_search_status to poll",
      "type": "string"
    },
    "status": {
      "description": "Run state at the moment of starting, normally \"running\"",
      "type": "string"
    },
    "credits_remaining": {
      "description": "Credits left for this product after the spend",
      "type": "number"
    },
    "message": {
      "description": "What happens next and roughly when, or what to do about the error",
      "type": "string"
    },
    "error": {
      "description": "Present only on failure, e.g. \"unauthorized\" or \"payment_required\"",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_search_status(run_id)

Progress of a search, and the matched roles with the reason each was picked once it finishes.

输入模式

{
  "type": "object",
  "properties": {
    "run_id": {
      "description": "The run_id returned by start_job_search or quick_job_search. Omit to get the most recent run for this account",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

输出模式

{
  "type": "object",
  "properties": {
    "run_id": {
      "type": "string"
    },
    "status": {
      "description": "running, success, no_matches or failed",
      "type": "string"
    },
    "done": {
      "description": "True once the run has finished, whether or not it found anything",
      "type": "boolean"
    },
    "plan": {
      "description": "Which product this run was: one_off or agent_quick",
      "type": "string"
    },
    "target_jobs": {
      "description": "How many roles this run is meant to deliver",
      "type": "number"
    },
    "started_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "finished_at": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "matches": {
      "description": "The delivered roles, each with its tailored documents. Absent until the run succeeds",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "description": "Job title as advertised"
          },
          "company": {
            "type": "string",
            "description": "Hiring company"
          },
          "url": {
            "type": "string",
            "description": "Link to the live posting"
          },
          "score": {
            "description": "Fit score out of 100, higher is better",
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "rank": {
            "description": "Position in the delivered set, 1 is the strongest match",
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "match_reason": {
            "description": "Why this role was picked for this profile",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "documents": {
            "description": "The tailored documents for this role. Null while the run is still going, and on older runs that predate document return",
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "cv_markdown": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "The CV rewritten for this specific role, as markdown"
                  },
                  "cover_letter_markdown": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "A cover letter written for this specific role, as markdown"
                  }
                },
                "required": [
                  "cv_markdown",
                  "cover_letter_markdown"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "title",
          "company",
          "url"
        ],
        "additionalProperties": false
      }
    },
    "message": {
      "description": "Progress in plain language while running, or what to do about the error",
      "type": "string"
    },
    "error": {
      "description": "Present only on failure, e.g. \"unauthorized\" or \"payment_required\"",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

社区

评价此服务器

证据

最近观测

已验证未记录版本5 个工具
已验证未记录版本5 个工具
已验证未记录版本5 个工具