Jobven
Search job postings and employers from company career sites; each result returns its REST call.
我該用這個嗎
品質與安全性
發現項目(1)
- LOW在 webhook_example 中
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"jobven": {
"url": "https://api.jobven.com/mcp"
}
}
}遠端端點
https://api.jobven.com/mcpstreamable-http它能做什麼
工具清單
工具(5)
🟢search_jobs(q, descriptionQuery, remoteType, experienceLevel, employmentType, ...)
Search Jobven job postings with the filters of GET /v1/public/jobs. Returns 10 jobs by default (at most 25) with a plain-text excerpt of each description; get_job has the full text. Pass nextCursor back as cursor, with the same filters, for the next page. Each job returned counts toward the monthly allowance.
輸入結構描述
{
"type": "object",
"properties": {
"q": {
"description": "Search job titles by whole word. Words are ANDed in any order; \"double quotes\" match an exact phrase, OR matches either side, and a leading - excludes a word. Case-insensitive. Does not search descriptions (see descriptionQuery).",
"type": "string",
"maxLength": 200
},
"descriptionQuery": {
"description": "Search job descriptions for a whole-word phrase, matched literally, case-insensitive. Slower than the other filters; pair it with postedAfter.",
"type": "string",
"maxLength": 200
},
"remoteType": {
"description": "Remote type, any of",
"minItems": 1,
"maxItems": 10,
"type": "array",
"items": {
"type": "string",
"enum": [
"onsite",
"remote",
"hybrid",
"flexible"
]
}
},
"experienceLevel": {
"description": "Experience level, any of",
"minItems": 1,
"maxItems": 10,
"type": "array",
"items": {
"type": "string",
"enum": [
"entry",
"mid",
"senior",
"lead",
"executive"
]
}
},
"employmentType": {
"description": "Employment type, any of",
"minItems": 1,
"maxItems": 10,
"type": "array",
"items": {
"type": "string",
"enum": [
"full_time",
"part_time",
"contract",
"internship",
"seasonal",
"volunteer",
"temporary",
"per_diem",
"other"
]
}
},
"skills": {
"description": "Skills, any of (up to 10), e.g. [\"typescript\", \"react\"]",
"minItems": 1,
"maxItems": 10,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"industry": {
"description": "Industries, any of (up to 10)",
"minItems": 1,
"maxItems": 10,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"language": {
"description": "Required spoken language, ISO 639-1 code, e.g. \"fr\"",
"type": "string",
"minLength": 2,
"maxLength": 2
},
"location": {
"description": "Free-text location: city, region or country",
"type": "string",
"maxLength": 200
},
"country": {
"description": "ISO 3166-1 alpha-2 country code, e.g. \"US\", \"CA\", \"GB\". \"XX\" matches jobs with no location at all.",
"type": "string",
"maxLength": 2
},
"state": {
"description": "State, province or region, comma-separated: full name (\"Ontario\") or, for the US and Canada, the postal code (\"ON\")",
"type": "string",
"maxLength": 500
},
"city": {
"description": "City, comma-separated; case and accents are ignored",
"type": "string",
"maxLength": 500
},
"minSalary": {
"description": "Minimum stated salary",
"type": "number",
"minimum": 0
},
"maxSalary": {
"description": "Maximum stated salary",
"type": "number",
"minimum": 0
},
"hasVisaSponsorship": {
"description": "true: postings that offer visa sponsorship; false: postings that say they do not",
"type": "boolean"
},
"hasRelocation": {
"description": "true: postings that offer relocation help; false: postings that say they do not",
"type": "boolean"
},
"status": {
"description": "\"active\" (the default) or \"closed\"",
"type": "string",
"enum": [
"active",
"closed"
]
},
"postedAfter": {
"description": "Posted at or after (Unix seconds)",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"postedBefore": {
"description": "Posted before (Unix seconds)",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"listedAfter": {
"description": "Listed at or after (Unix seconds), by listedAt: for incremental sync",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"sortBy": {
"description": "Sort field (default postedAt)",
"type": "string",
"enum": [
"postedAt",
"listedAt",
"title",
"company"
]
},
"order": {
"description": "Default DESC",
"type": "string",
"enum": [
"ASC",
"DESC"
]
},
"includeTotal": {
"description": "Also count every match (slower)",
"type": "boolean"
},
"cursor": {
"description": "nextCursor from the previous search_jobs result, same filters",
"type": "string",
"maxLength": 1000
},
"limit": {
"description": "Jobs per page, default 10, at most 25",
"type": "integer",
"minimum": 1,
"maximum": 25
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}輸出結構描述
{
"type": "object",
"properties": {
"jobs": {
"type": "array",
"items": {
"type": "object",
"properties": {},
"additionalProperties": {}
}
},
"hasMore": {
"type": "boolean"
},
"nextCursor": {
"type": "string"
},
"total": {
"type": "number"
},
"request": {
"type": "object",
"properties": {
"method": {
"type": "string",
"const": "GET"
},
"url": {
"type": "string"
},
"curl": {
"type": "string"
}
},
"required": [
"method",
"url",
"curl"
],
"additionalProperties": false,
"description": "The REST call this result came from. curl reads the key from $JOBVEN_API_KEY."
}
},
"required": [
"jobs",
"hasMore",
"request"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_job(id, descriptionFormat)
One Jobven job posting by id, with the full description (GET /v1/public/jobs/{id}). Counts as one job toward the monthly allowance.
輸入結構描述
{
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "A job id from search_jobs"
},
"descriptionFormat": {
"description": "Description as plain text (default) or markdown",
"type": "string",
"enum": [
"plain",
"markdown"
]
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}輸出結構描述
{
"type": "object",
"properties": {
"job": {
"type": "object",
"properties": {},
"additionalProperties": {}
},
"request": {
"type": "object",
"properties": {
"method": {
"type": "string",
"const": "GET"
},
"url": {
"type": "string"
},
"curl": {
"type": "string"
}
},
"required": [
"method",
"url",
"curl"
],
"additionalProperties": false,
"description": "The REST call this result came from. curl reads the key from $JOBVEN_API_KEY."
}
},
"required": [
"job",
"request"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢search_companies(search, industry, size, status, isVerified, ...)
Search the employers Jobven collects jobs from (GET /v1/public/companies). Free: company searches do not count toward the allowance.
輸入結構描述
{
"type": "object",
"properties": {
"search": {
"description": "Company name or description contains this text",
"type": "string",
"maxLength": 200
},
"industry": {
"description": "Industry, e.g. \"Technology\"",
"type": "string",
"maxLength": 100
},
"size": {
"description": "Company size band, e.g. \"51-200\"",
"type": "string",
"maxLength": 50
},
"status": {
"description": "\"active\" or \"inactive\"; both when unset",
"type": "string",
"enum": [
"active",
"inactive"
]
},
"isVerified": {
"description": "Only verified, or only unverified, companies",
"type": "boolean"
},
"sortBy": {
"description": "Sort field",
"type": "string",
"enum": [
"name",
"foundedYear",
"totalJobsPosted",
"activeJobsCount",
"createdAt"
]
},
"sortOrder": {
"type": "string",
"enum": [
"ASC",
"DESC"
]
},
"page": {
"description": "Page number, from 1",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"limit": {
"description": "Companies per page, default 10, at most 25",
"type": "integer",
"minimum": 1,
"maximum": 25
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}輸出結構描述
{
"type": "object",
"properties": {
"companies": {
"type": "array",
"items": {
"type": "object",
"properties": {},
"additionalProperties": {}
}
},
"request": {
"type": "object",
"properties": {
"method": {
"type": "string",
"const": "GET"
},
"url": {
"type": "string"
},
"curl": {
"type": "string"
}
},
"required": [
"method",
"url",
"curl"
],
"additionalProperties": false,
"description": "The REST call this result came from. curl reads the key from $JOBVEN_API_KEY."
}
},
"required": [
"companies",
"request"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢get_company(id)
One employer by id (GET /v1/public/companies/{id}). Free.
輸入結構描述
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 1,
"maximum": 2147483647,
"description": "A company id from search_companies"
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}輸出結構描述
{
"type": "object",
"properties": {
"company": {
"type": "object",
"properties": {},
"additionalProperties": {}
},
"request": {
"type": "object",
"properties": {
"method": {
"type": "string",
"const": "GET"
},
"url": {
"type": "string"
},
"curl": {
"type": "string"
}
},
"required": [
"method",
"url",
"curl"
],
"additionalProperties": false,
"description": "The REST call this result came from. curl reads the key from $JOBVEN_API_KEY."
}
},
"required": [
"company",
"request"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢webhook_example(event, language)
A sample Jobven webhook delivery for one event: the raw body and headers exactly as a receiver gets them, signed with an example secret, plus the signature verifier from the webhook docs in TypeScript, Python or Go. The verifier accepts the sample, so a receiver can be tested end to end. No API call, no key needed, free.
輸入結構描述
{
"type": "object",
"properties": {
"event": {
"type": "string",
"enum": [
"job.created",
"job.updated",
"job.closed",
"job.deleted"
],
"description": "The event to show a delivery of"
},
"language": {
"type": "string",
"enum": [
"typescript",
"python",
"go"
],
"description": "Language of the signature verifier"
}
},
"required": [
"event",
"language"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}輸出結構描述
{
"type": "object",
"properties": {
"event": {
"type": "string"
},
"language": {
"type": "string"
},
"rawBody": {
"type": "string"
},
"headers": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
"exampleSecret": {
"type": "string"
},
"verifier": {
"type": "string"
},
"note": {
"type": "string"
}
},
"required": [
"event",
"language",
"rawBody",
"headers",
"exampleSecret",
"verifier",
"note"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}社群
證據