George GiosueHablemos
Proyectos

MCP Computrabajo

Servidor MCP que permite a asistentes de IA buscar ofertas laborales, consultar el detalle completo de cada publicación, leer el CV del propio usuario y postular en Computrabajo, la bolsa de empleo más grande de Latinoamérica.

Desde agosto de 2026 corre como servidor remoto en Cloudflare Workers.

Conectar

En Claude Desktop o claude.ai, Configuración → Conectores → Agregar conector personalizado:

https://mcp-computrabajo.georgegiosue.dev/mcp

En Claude Code:

claude mcp add --transport http computrabajo https://mcp-computrabajo.georgegiosue.dev/mcp

Herramientas

Herramienta Qué hace Necesita sesión
search-jobs Busca ofertas por palabra clave y ubicación No
get-job-detail Publicación completa: descripción, sueldo, beneficios, empresa No
get-profile Tu CV: resumen, experiencia, estudios, idiomas, habilidades
list-attached-cvs Tus CVs en Word/PDF y cuál es el predeterminado
apply-to-job Envía tu CV a una oferta

Soporte multi-país: Perú, Colombia, México, Argentina, Chile y Ecuador.

El problema de la autenticación

Postular requiere la cookie de sesión de Computrabajo, que es personal. En un servidor público eso plantea un problema real: guardar una única cookie compartida significaría que cualquiera que encuentre la URL postula suplantando al dueño de esa cookie.

La solución fue convertir el Worker en su propio servidor OAuth 2.1. Al conectar, el usuario llega a una página de consentimiento alojada en el mismo Worker, donde pega su cookie. El proveedor la cifra dentro del grant y la devuelve en cada request; nunca viaja en la URL ni se comparte entre usuarios, y se descarta al desconectar el conector.

Buscar y leer ofertas no necesita cookie, así que la página ofrece un botón para conectarse sin ella y usar solo esas dos herramientas.

Arquitectura

Una sola fábrica createServer() alimenta las dos entradas: serveStdio() para el paquete de npm y createMcpHandler() para el Worker. El repositorio HTTP recibe su configuración por constructor, de modo que la misma clase sirve a un proceso stdio con configuración fija y a un Worker donde la cookie cambia en cada request.

El núcleo quedó libre de APIs de Node: la lectura de variables de entorno y del archivo de cookies vive aislada en un módulo que solo importa la entrada de stdio. El bundle del Worker no arrastra ningún import node:.

Detalles que solo aparecen al usarlo

Tres cosas que no se ven hasta que el servidor está en producción:

  • La palabra clave decide la calidad de los resultados. Computrabajo compara contra el título del puesto, y en Latinoamérica «ingeniero de …» se lee como ingeniería civil, mecánica o minera. Medido sobre búsquedas reales en Lima, ingeniero-de-software devuelve 3 de 20 resultados útiles; desarrollador-de-software, 18 de 20. Las instrucciones del servidor ahora traducen esa intención en lugar de transliterar la frase del usuario.
  • Un HTTP 200 no significa que la postulación entró. El sitio responde con un código propio, OfferAppliedOk, y devuelve 200 igual cuando rechaza la oferta. Reportar éxito por el código de estado era mentir en el peor momento posible.
  • Una cookie inválida no produce un 401, sino una página de 200 sin CV. Devolver un perfil vacío se leería como «tu CV está en blanco», así que ahora eso se trata como el fallo de autenticación que realmente es.

Tecnologías

TypeScript, Bun, Model Context Protocol SDK v2, Cloudflare Workers, Workers OAuth Provider, KV, Zod, Cheerio.

Capturas

Búsqueda de empleos

Búsqueda de empleos de ingeniería de software en Lima

Postulación a un empleo

Postulación a una oferta laboral desde Claude Code

Confirmación en Computrabajo

Confirmación de postulación en el sitio web de Computrabajo

Motivación

Facilitar la búsqueda y postulación de empleo en Latinoamérica mediante agentes de IA, eliminando la fricción de navegación manual en portales de trabajo. Con get-profile, el asistente puede cruzar las ofertas contra la experiencia real del usuario en vez de adivinarla.