Server data from the Official MCP Registry
Busca ofertas, postula y mantiene tu hoja de vida en elempleo.com (Colombia).
About
Busca ofertas, postula y mantiene tu hoja de vida en elempleo.com (Colombia).
Security Report
This is a Spanish-language MCP server for elempleo.com job search and application management, and its code shows no malicious exfiltration or dangerous execution patterns in the visible portion. Its permissions (network access to elempleo, local file reads for the profile and CV, and local session/cookie storage under ~/.elempleo) largely match its purpose, and writes are gated by explicit user confirmation. The analysis is limited because the source was truncated before the remaining files and sections were visible, and the cookie/session storage and the browser-launch path were not fully reviewed. Supply chain analysis found 1 known vulnerability in dependencies (0 critical, 1 high severity). Package verification found 1 issue.
4 files analyzed · 5 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
Permissions Required
This plugin requests these system permissions. Most are normal for its category.
What You'll Need
Set these up before or after installing:
Environment variable: PERFIL_MAESTRO
Environment variable: RAIZ_ARCHIVOS
Environment variable: ELEMPLEO_DATA_DIR
Environment variable: CHROME_PATH
How to Install
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-jucamhc-mcp-elempleo": {
"env": {
"CHROME_PATH": "your-chrome-path-here",
"RAIZ_ARCHIVOS": "your-raiz-archivos-here",
"PERFIL_MAESTRO": "your-perfil-maestro-here",
"ELEMPLEO_DATA_DIR": "your-elempleo-data-dir-here"
},
"args": [
"-y",
"mcp-elempleo"
],
"command": "npx"
}
}
}Documentation
View on GitHubFrom the project's GitHub README.
mcp-elempleo
Servidor MCP para elempleo.com (Colombia). Con él puedes:
- Buscar ofertas, ver su detalle y evaluar si encajan con tu perfil.
- Postular, una oferta a la vez y con tu confirmación explícita.
- Mantener tu hoja de vida al día a partir de un archivo único con tus datos: el perfil maestro.
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.
Instalación
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:
{
"mcpServers": {
"elempleo": {
"command": "npx",
"args": ["-y", "mcp-elempleo"],
"env": { "PERFIL_MAESTRO": "/ruta/a/mi/perfil-maestro.json" }
}
}
}
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:
git clone https://github.com/Jucamhc/mcp-elempleo.git
cd mcp-elempleo
npm install
y usar "command": "node" con "args": ["/ruta/a/mcp-elempleo/src/index.js"].
Variables de entorno (todas opcionales)
| Variable | Por defecto | Para qué |
|---|---|---|
PERFIL_MAESTRO | ~/.perfil-maestro/perfil-maestro.json | Ruta de tu perfil maestro (la misma para todos los MCP) |
RAIZ_ARCHIVOS | carpeta del perfil maestro | Base para las rutas relativas de foto y cv_pdf |
ELEMPLEO_DATA_DIR | ~/.elempleo | Sesión (cookies), caché de catálogos, perfil del navegador y respaldos |
CHROME_PATH | se detecta | Ruta del ejecutable del navegador si no está en la ubicación habitual |
La sesión y los respaldos quedan en ~/.elempleo/, fuera de carpetas sincronizadas. El MCP nunca muestra cookies ni credenciales.
Primeros pasos
-
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-maestrote pide una fuente:- La URL de tu LinkedIn. LinkedIn no deja leer perfiles automáticamente, así que el MCP te indica cómo exportarlo con "Más → Guardar en PDF".
- Tu CV en PDF y tu foto. El MCP extrae el texto y el asistente arma el perfil según el estándar para que lo revises.
- Lo que ya tienes en elempleo (
desde_portal: true).
Cuando lo apruebes,
guardar-perfil-maestrolo 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-perfilpor sección: primero sinaplicar, para ver el plan antes → después; luego conaplicar: true.
Perfil maestro
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):
| Campo | Uso |
|---|---|
datos_personales | ciudad, pais, zona_horaria, enlaces (linkedin, github, portafolio…) y foto (ruta relativa o absoluta) |
titular.es, resumen.es | Perfil profesional y primera línea de la nota al empleador |
profesion | Opcional: nombre exacto en el catálogo de elempleo. Si falta, se usa tu título más alto |
experiencia[] | empresa, cargo, cargo_oficial, inicio/fin (AAAA-MM, fin: null = actual), ubicacion, descripcion_empresa, logros_es[], tecnologias[] |
formacion[] | institucion, titulo_es, inicio, fin, graduado, mostrar_en_cv |
certificaciones[] | nombre, emisor, fecha |
aptitudes, habilidades_clave | aptitudes (grupos libres) y habilidades_clave.tecnicas/blandas (máx. 20 en elempleo, 40 caracteres cada una) |
idiomas[] | idioma y nivel (Nativo, Básico, Intermedio o Avanzado) |
preferencias | modalidad (p. ej. "Solo remoto"), salario_minimo_laboral_cop, salario_minimo_prestacion_cop, acepta_reubicacion, puede_viajar, paises, disponibilidad |
seguridad_social | pension_obligatoria, cesantias, pension_voluntaria, eps, caja_compensacion (nombres como aparecen en elempleo) |
cv_pdf | Ruta del PDF, o un objeto { "version": "ruta" } si tienes varias |
respuestas_frecuentes | Respuestas reutilizables (p. ej. uso_ia) |
Cómo se eligen las opciones de los catálogos de elempleo
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):
- En
experiencia[].portales.elempleo:cargo_equivalente,sectoryciudad. - En
formacion[].portales.elempleo:nucleo_conocimiento. El nivel y la ciudad usan los campos estándarnivelyciudad. - En
certificaciones[].portales.elempleo:area; o unarea_cursosgeneral enportales.elempleode la raíz.
Herramientas
| Herramienta | Qué hace |
|---|---|
estado-de-sesion, iniciar-sesion | Sesión |
buscar-ofertas, detalle-de-oferta | Búsqueda (sin sesión) |
evaluar-encaje | Compara la oferta con tus preferencias (modalidad, salario según contrato, tecnologías declaradas e inglés) |
preguntas-de-postulacion, proponer-respuestas | Lee el formulario de postulación y redacta la nota con datos del perfil maestro |
postular-a-oferta | Exige confirmacion: "POSTULAR <id>". Una a la vez, sin reintentos. Si la empresa pide cuestionario devuelve requiere_cuestionario con las preguntas |
responder-cuestionario | Envía el cuestionario de filtro posterior a la postulación. Exige confirmacion: "CUESTIONARIO <id>" y respuestas aprobadas por el usuario |
mis-postulaciones | Estado de tus postulaciones |
construir-perfil-maestro, guardar-perfil-maestro, ver-perfil-maestro | Herramientas estándar del perfil maestro: crearlo desde LinkedIn, un CV en PDF con foto o elempleo; validarlo y guardarlo; revisarlo |
ver-mi-perfil, comparar-perfil, actualizar-perfil | Hoja de vida. Secciones: perfil_profesional, experiencia, formacion, cursos, idiomas, redes_sociales, habilidades, seguridad_social |
subir-foto, subir-cv, listar-mis-cv | Foto y archivos |
Toda escritura respalda antes lo que había (en ~/.elempleo/respaldos/) y solo borra los ids que pases en eliminar_ids.
Referencia técnica
elempleo no tiene API pública; la web usa una API interna (ASP.NET MVC con tokens anti-falsificación).
Búsqueda (sin sesión)
-
GET /co/ofertas-empleo/?Trabajo=<palabra>da las cookies y el token de<span class="js-search-api-token">. -
POST /co/api/joboffers/findbyfiltercon la cabecera__RequestVerificationTokeny el cuerpo:{"query":"desarrollador","salaryInfo":[],"contractType":0,"workModality":101, "cities":[],"publishDate":0,"pageIndex":1,"pageSize":20,"sortExpression":"PublishDate_Desc"}
| Filtro | Valores |
|---|---|
workModality | 0 todos, 100 presencial, 102 híbrido, 101 remoto |
contractType | 0 todos, 1 indefinido, 2 definido, 3 prestación de servicios, 4 aprendizaje, 5 obra o labor, 6 otro |
salaryInfo (millones COP) | 2 menos de 1 · 3 1–1,5 · … · 10 4,5–5,5 · 23 5,5–6 · 27 6–8 · 28 8–10 · 29 10–12,5 · 30 12,5–15 · 31 15–18 · 32 18–21 · 33 más de 21 |
publishDate | 1 hoy y ayer, 2 una semana, 3 dos semanas, 4 un mes, 6 más de un mes |
Detalle: GET /co/api/joboffers/getjoboffer?jobOfferId=<id>.
Postulación (con sesión)
- Postulación rápida:
POST /co/JobOffers/JobOfferDetail/SaveQuickApplication?JobOfferId=&CurrentAttachmentCVId=conAttachments.SelectedIds. - Normal:
POST /co/JobOffers/JobOfferDetail/Save?jobOfferId=conApplicationNote(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).- Mis postulaciones:
POST /co/api/jobOffersAplication/filterscon el token de.js-application-api-token.
Hoja de vida
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).
| Sección | Endpoint |
|---|---|
| Foto | /co/Persons/PersonalInformation/LoadAsyncPhoto (multipart, campo Image; token del formulario LoadSyncPhoto) |
| Perfil profesional | /co/Persons/ProfessionalProfile/Save |
| Experiencia laboral | /co/Persons/LaboralExperience/Save (borrar: /Delete) |
| Educación formal | /co/Persons/FormalEducation/Save (borrar: /Delete) |
| Cursos y diplomados | /co/Persons/NonFormalEducation/Save (borrar: /Delete) |
| Idiomas | /co/Persons/LanguageKnowledge/Save; idiomas disponibles: /GetAvaibleLanguages |
| Redes sociales | /co/Persons/SocialNetwork/Save con model[i][Id], model[i][Url] |
| Habilidades | /co/Persons/Skills/Save con Skills[i][id], Skills[i][name] (id 0 = texto libre; el catálogo solo trae habilidades blandas) |
| Seguridad social | /co/Persons/SocialSecurity/Save con los SelectedIds de pensión, cesantías, EPS y caja, y ContributeToVoluntaryPensionFund |
| Archivos (CV) | /co/Persons/Attachment/SaveAttachment (multipart, campo File; borrar: /Delete) |
Fechas en dd/mm/aaaa; formularios en x-www-form-urlencoded al estilo jQuery.param.
Pendiente de verificar
- Qué trae el código de respuesta
5al postular (posibles preguntas de filtro o pruebas).
Reviews
No reviews yet
Be the first to review this server!
More Developer Tools MCP Servers
Rea
Freeby Morluto · Developer Tools
Reverse engineer anything from your terminal or agent with one CLI and MCP server.
Paperclip
Freeby Paperclipai · Developer Tools
Trending hip-hop artist momentum scores across four cultural dimensions.
Git
Freeby Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
Toleno
Freeby Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
MCP Marketplace
Freeby mcp-marketplace · Developer Tools
Search and install MCP servers from inside your AI client.
mcp-creator-python
Freeby mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.
