Jobven
Search job postings and employers from company career sites; each result returns its REST call.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (1)
- LOWen webhook_example
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"jobven": {
"url": "https://api.jobven.com/mcp"
}
}
}Puntos de conexión remotos
https://api.jobven.com/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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.
Esquema de entrada
{
"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"
}Esquema de salida
{
"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
}Comunidad
Evidencia