Job Opportunities API (JOA)

Una API de ofertas de empleo directa de empleadores: cada campo marcado como publicado o inferido, los roles cerrados conservan su historial, estadísticas gratuitas para verificar la cobertura, MCP para agentes de IA.

Servidor MCP alojado

npx add-mcp 'https://api.jobopportunitiesapi.org/mcp'

Se instala en Claude Code, Codex, Cursor y más

Documentación

Servidor MCP de JOA

Servidor remoto de Model Context Protocol para la Job Opportunities API (JOA) — busca ofertas de empleo en vivo publicadas directamente por empleadores en sus propios sitios de carrera, consulta la señal de contratación de una empresa, lee estadísticas agregadas del mercado y sigue el feed de cambios incrementales, directamente desde un agente de IA.

Las seis herramientas

HerramientaQué hace¿Requiere clave?
search_jobsFiltra el registro en vivo por país, ciudad, estado de EE. UU., categoría, nivel de seniority, tipo remoto, tipo de empleo, salario, empleador, tipo de fuente, texto libreSí
get_jobDetalle completo de una oferta de empleo, incluido el texto completo del anuncio e información de cierreSí
company_hiringPerfil de un empleador y tendencia de roles abiertos en varias ventanas de tiempoLa tendencia no requiere clave; el perfil completo/lista de roles requiere clave
market_signalsPercentiles de salario agregados y tiempo de contratación por familia de empleo × país × seniorityNo
coverageTamaño del conjunto de datos, frescura, auditoría de cobertura por país y principales empleadoresNo
changes_sinceFeed de cambios incrementales: creados/actualizados/retirados/eliminados desde un cursorSí, plan Growth o superior

Una herramienta de servicio de filas llamada sin clave nunca toca la base de datos — devuelve un rechazo estructurado que indica la página de clave gratuita, nunca un 401 simple. Cualquier texto de descripción de empleo o empresa devuelto por cualquier herramienta es texto de terceros extraído de un sitio de empleador externo: la descripción de cada herramienta indica al modelo que lo trate como datos, nunca como una instrucción a seguir.

Autenticación

Exactamente una puerta: un encabezado HTTP Authorization: Bearer <key> en la conexión MCP — nunca un parámetro de consulta ?key=, nunca un argumento de herramienta. Una clave gratuita Explore (1,000 registros/mes, sin tarjeta) es suficiente para probar cada herramienta con clave: https://jobopportunitiesapi.org/login?ref=mcp

Cada llamada de herramienta se mide de forma idéntica al endpoint REST que envuelve — mismo plan, misma asignación mensual, mismo límite de tasa. changes_since requiere el plan Growth o superior, igual que /v1/changes.

Configuración del cliente

Claude Desktop / Claude.ai (conector personalizado)

Configuración → Conectores → Agregar conector personalizado, o pega en claude_desktop_config.json:

{
  "mcpServers": {
    "joa": {
      "type": "streamableHttp",
      "url": "https://api.jobopportunitiesapi.org/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  }
}

Cursor

.cursor/mcp.json de proyecto o global:

{
  "mcpServers": {
    "joa": {
      "url": "https://api.jobopportunitiesapi.org/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  }
}

Windsurf

Cascade → Plugins → MCP Servers → agrega un servidor personalizado con la URL y el encabezado anteriores, o edita ~/.codeium/windsurf/mcp_config.json directamente (misma forma JSON que la de Cursor).

VS Code

Paleta de comandos → "MCP: Add Server" → HTTP, o agrega a .vscode/mcp.json usando la misma forma JSON que se muestra para Cursor arriba.

Cline

MCP Servers → Configure MCP Servers, misma forma JSON que la de Cursor arriba (Cline lee el bloque mcpServers idéntico).

ChatGPT (modo desarrollador / Apps)

El directorio unificado de plugins de OpenAI requiere un envío ZIP con una cuenta de desarrollador verificada por identidad y un desafío de propiedad de dominio — aún no enviado. Hasta entonces, cualquier cliente de modo desarrollador de ChatGPT compatible con MCP que acepte una URL HTTP Streamable sin procesar con un encabezado estático puede usar la configuración mostrada arriba.

JSON-RPC sin procesar (curl)

Protocolo de enlace:

curl -s https://api.jobopportunitiesapi.org/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize",
       "params":{"protocolVersion":"2025-06-18","capabilities":{},
                 "clientInfo":{"name":"curl","version":"1.0"}}}'

Una llamada de herramienta:

curl -s https://api.jobopportunitiesapi.org/mcp \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call",
       "params":{"name":"search_jobs","arguments":{"country":["DE"],"category":["Engineering"]}}}'

Metadatos del registro

mcp/server.json es la entrada publicada en el Registro MCP oficial bajo el espacio de nombres verificado por DNS org.jobopportunitiesapi/mcp.

Acerca de JOA

Job Opportunities API — ofertas de empleo en vivo publicadas directamente por empleadores tomadas de los propios sitios de carrera y sistemas de seguimiento de candidatos, con ofertas cerradas conservadas con fechas de cierre. Cada campo está etiquetado como publicado/inferido/ausente (procedencia); las brechas de cobertura se publican, no se ocultan (cifras en vivo: https://jobopportunitiesapi.org/facts). API REST, estadísticas sin clave, páginas web de empleos/empresas, exportación CSV, especificación OpenAPI.

Licencia

El contenido de este repositorio (documentación, fragmentos de configuración y server.json) está licenciado bajo la Licencia MIT. Este repositorio no contiene código fuente de la API de JOA ni de la implementación del servidor MCP — esos viven en el monorepo privado de JOA y se distribuyen como parte del binario de la API de producción.