estado-de-sesion
Indica si hay una sesión válida de elempleo y el estado de la hoja de vida. Nunca muestra cookies.
Takes no parameters.

io.github.JucamhcPublished by GitHub account Jucamhcv0.1.0Updated Nov 6, 2026
Busca ofertas, postula y mantiene tu hoja de vida en elempleo.com (Colombia).
MCP server for elempleo.com (Colombia) that lets an assistant search job offers, apply with explicit confirmation, and keep your resume up to date.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Follow the launch instructions in the repository.
Servidor MCP para elempleo.com (Colombia). Con él puedes:
Funciona con cualquier cuenta de elempleo. Ningún dato personal está escrito en el código: todo sale del perfil maestro o de la hoja de vida que ya tengas en elempleo.
Requisitos: Node.js 20 o superior y un navegador basado en Chromium (Chrome, Edge, Brave o Chromium), que solo se usa para iniciar sesión.
Regístralo en tu cliente MCP (por ejemplo ~/.cursor/mcp.json o la configuración de Claude Desktop). npx lo descarga de npm y lo mantiene actualizado:
Es autónomo: incluye el estándar del perfil maestro (src/perfil-maestro.js, perfil-maestro.schema.json y PERFIL-MAESTRO.md). Los demás MCP de empleo traen la misma copia, así que todos comparten el mismo perfil.
También puedes instalarlo desde el código fuente:
y usar "command": "node" con "args": ["/ruta/a/mcp-elempleo/src/index.js"].
La sesión y los respaldos quedan en ~/.elempleo/, fuera de carpetas sincronizadas. El MCP nunca muestra cookies ni credenciales.
iniciar-sesion: abre el navegador en el login de elempleo. Entras a mano (hay reCAPTCHA y verificación en dos pasos) y el MCP guarda la sesión.
Si aún no tienes perfil maestro, construir-perfil-maestro te pide una fuente:
desde_portal: true).Cuando lo apruebes, guardar-perfil-maestro lo valida y lo guarda con la foto y el CV.
comparar-perfil: muestra qué falta, qué está desactualizado y qué sobra en elempleo frente al perfil maestro.
actualizar-perfil por sección: primero sin aplicar, para ver el plan antes → después; luego con aplicar: true.
Es un JSON que sirve como única fuente de verdad y sigue el estándar compartido. El MCP lo lee y nunca inventa datos. Campos que usa elempleo (ver perfil-maestro.ejemplo.json):
elempleo pide elegir cargo equivalente, sector, ciudad, nivel educativo, área de cursos y profesión de sus propias listas. El MCP elige la opción que más palabras comparte con tu dato y la muestra en el plan para que la revises. Si quieres fijarla, agrega el nombre exacto del catálogo en portales.elempleo (los demás MCP ignoran esa clave):
experiencia[].portales.elempleo: cargo_equivalente, sector y ciudad.formacion[].portales.elempleo: nucleo_conocimiento. El nivel y la ciudad usan los campos estándar nivel y ciudad.certificaciones[].portales.elempleo: area; o un area_cursos general en portales.elempleo de la raíz.Toda escritura respalda antes lo que había (en ~/.elempleo/respaldos/) y solo borra los ids que pases en eliminar_ids.
elempleo no tiene API pública; la web usa una API interna (ASP.NET MVC con tokens anti-falsificación).
GET /co/ofertas-empleo/?Trabajo=<palabra> da las cookies y el token de <span class="js-search-api-token">.
POST /co/api/joboffers/findbyfilter con la cabecera __RequestVerificationToken y el cuerpo:
Detalle: GET /co/api/joboffers/getjoboffer?jobOfferId=<id>.
POST /co/JobOffers/JobOfferDetail/SaveQuickApplication?JobOfferId=&CurrentAttachmentCVId= con Attachments.SelectedIds.POST /co/JobOffers/JobOfferDetail/Save?jobOfferId= con ApplicationNote (opcional, máx. 2.000 caracteres).Response: 1 enviada, 2 se postula en la web de la empresa, 3 hoja de vida incompleta, 4 ya postulado, 5 redirige a un paso adicional (por verificar).POST /co/api/jobOffersAplication/filters con el token de .js-application-api-token.Página /co/hoja-de-vida. Los catálogos vienen en atributos data-* de .js-conf (ciudades, cargos, sectores, instituciones, profesiones, áreas de cursos, habilidades, países).
Fechas en dd/mm/aaaa; formularios en x-www-form-urlencoded al estilo jQuery.param.
5 al postular (posibles preguntas de filtro o pruebas).Source: README.md at commit 060d658
Indica si hay una sesión válida de elempleo y el estado de la hoja de vida. Nunca muestra cookies.
Takes no parameters.
Abre un navegador basado en Chromium (Chrome, Edge, Brave o Chromium) en la página de inicio de sesión de elempleo para que el usuario entre a mano (hay reCAPTCHA y verificación en dos pasos). Al detectar la sesión guarda las cookies en la carpeta de datos del MCP y cierra la ventana.
espera_max_segundosBusca ofertas en elempleo.com (Colombia). Funciona sin sesión; con sesión indica si ya te postulaste.
fechapaginapalabrarequiredcontratomodalidadpor_paginasalario_minimo_millonesDevuelve la descripción completa de una oferta: requisitos, salario, contrato, modalidad y ciudad.
idrequiredCompara la oferta con el perfil maestro y sus preferencias (modalidad, salario mínimo según tipo de contrato, tecnologías declaradas y nivel de inglés) y devuelve encaja, encaja_parcial o no_encaja con los motivos.
idrequiredLee el formulario de postulación de la oferta (requiere sesión): tipo de postulación, nota opcional, archivos de CV disponibles y formularios adicionales. No envía nada.
idrequiredRedacta la nota al empleador a partir del perfil maestro y señala lo que requiere confirmación del usuario. Nunca inventa datos ni envía nada.
idrequiredEnvía la postulación. Exige confirmación explícita del usuario para ESA oferta: confirmacion debe ser exactamente "POSTULAR <id>". Una oferta a la vez, sin reintentos automáticos.
idrequirednotaadjunto_idconfirmacionrequiredEnvía el cuestionario de filtro que la empresa pide tras postular (estado "requiere_cuestionario"). Las respuestas deben venir del usuario o estar confirmadas por él; confirmacion debe ser exactamente "CUESTIONARIO <id>".
idrequiredurlrequiredrespuestasrequiredconfirmacionrequiredLista tus postulaciones en elempleo con su estado (en proceso, vencida, eliminada…).
paginapor_paginaCrea el perfil maestro (fuente única de tus datos para todos los MCP de empleo) cuando aún no existe. Sin argumentos, indica qué pedirle al usuario: la URL de su LinkedIn, o su CV en PDF y su foto. Con un PDF devuelve el texto extraído, el esquema estándar y las reglas para armar el JSON; con solo la URL de LinkedIn explica cómo exportar el perfil a PDF. No guarda nada: eso lo hace guardar-perfil-maestro tras la confirmación del usuario.
fototextocv_pdfdesde_portallinkedin_urlValida el perfil maestro contra el esquema estándar y lo guarda (por defecto en ~/.perfil-maestro/perfil-maestro.json). Copia la foto y el CV junto al perfil. Llamar solo después de que el usuario apruebe el contenido. No sobrescribe uno existente salvo sobrescribir: true (y lo respalda).
fotocv_pdfperfilrequiredsobrescribirMuestra el perfil maestro, dónde está, si cumple el esquema estándar y qué queda pendiente de confirmar.
Takes no parameters.
Lee tu hoja de vida actual en elempleo: perfil profesional, experiencia, formación, cursos, idiomas, redes, habilidades y archivos.
Takes no parameters.
Compara tu hoja de vida de elempleo con el perfil maestro y lista lo que falta, lo desactualizado y lo que sobra.
Takes no parameters.
Actualiza una sección de la hoja de vida desde el perfil maestro. Sin aplicar devuelve el plan exacto (antes → después) para mostrarlo al usuario; con aplicar=true respalda en ~/.elempleo/respaldos/ y guarda. Solo borra los ids indicados en eliminar_ids. seguridad_social usa los datos que el usuario dé; nunca los supongas.
aplicarseccionrequiredeliminar_idsSube la foto indicada en datos_personales.foto del perfil maestro (JPG, PNG o GIF, máx. 3 MB). Sin aplicar solo muestra lo que haría.
aplicarSube el CV en PDF del perfil maestro (cv_pdf: una ruta, o un objeto con varias versiones) a tus archivos de elempleo; opcionalmente reemplaza uno existente. Sin aplicar solo muestra lo que haría.
aplicarversionreemplazar_idLista los archivos de CV adjuntos en elempleo.
Takes no parameters.
90% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
{ "mcpServers": { "elempleo": { "command": "npx", "args": ["-y", "mcp-elempleo"], "env": { "PERFIL_MAESTRO": "/ruta/a/mi/perfil-maestro.json" } } }}git clone https://github.com/Jucamhc/mcp-elempleo.gitcd mcp-elempleonpm install{"query":"desarrollador","salaryInfo":[],"contractType":0,"workModality":101, "cities":[],"publishDate":0,"pageIndex":1,"pageSize":20,"sortExpression":"PublishDate_Desc"}