elempleo

io.github.Jucamhc由 GitHub 帳號 Jucamhc 發布v0.1.0更新於 Nov 6, 2026

Busca ofertas, postula y mantiene tu hoja de vida en elempleo.com (Colombia).

概覽

AI 產生的概覽

針對哥倫比亞 elempleo.com 的 MCP 伺服器,讓助理搜尋職缺、經明確確認後投遞,並維護你的線上履歷。

可以做什麼
  • 檢查登入工作階段狀態,並開啟 Chromium 瀏覽器供手動登入
  • 搜尋職缺並查看完整職缺詳情,依主檔案評估契合度
  • 讀取投遞表單、草擬給雇主的說明、一次投遞一個職缺並回答投遞後的篩選問卷
  • 列出你的投遞紀錄與狀態
  • 建立、驗證、檢視主檔案 JSON,並與 elempleo 履歷比對
  • 依區塊更新履歷、上傳照片與 CV 檔案、列出已附加的 CV
適用情境
適合在哥倫比亞透過 elempleo.com 求職、希望助理依薪資、工作型態與技能篩選職缺、準備投遞資料,並以單一主檔案同步履歷的使用者。
執行需求
透過 npx 在本機執行(npm 套件 mcp-elempleo),需要 Node.js 20 以上版本,以及用於登入的 Chromium 系瀏覽器(Chrome、Edge、Brave 或 Chromium)。需有 elempleo 帳號才能執行需登入的操作。選用環境變數:PERFIL_MAESTRO、RAIZ_ARCHIVOS、ELEMPLEO_DATA_DIR、CHROME_PATH。
安裝前請注意
登入須在瀏覽器視窗手動完成(含 reCAPTCHA 與兩步驗證),工作階段 cookie 存於資料目錄(ELEMPLEO_DATA_DIR,預設 ~/.elempleo)。此伺服器可送出真實職缺申請與問卷、上傳照片與 CV、修改 elempleo 履歷;寫入前會備份,但仍會改動線上資料。主檔案包含薪資期望、社會保險與聯絡連結等個人資料。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 elempleo,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

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:

json
{  "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:

bash
git clone https://github.com/Jucamhc/mcp-elempleo.gitcd mcp-elempleonpm install

y usar "command": "node" con "args": ["/ruta/a/mcp-elempleo/src/index.js"].

Variables de entorno (todas opcionales)

VariablePor defectoPara qué
PERFIL_MAESTRO~/.perfil-maestro/perfil-maestro.jsonRuta de tu perfil maestro (la misma para todos los MCP)
RAIZ_ARCHIVOScarpeta del perfil maestroBase para las rutas relativas de foto y cv_pdf
ELEMPLEO_DATA_DIR~/.elempleoSesión (cookies), caché de catálogos, perfil del navegador y respaldos
CHROME_PATHse detectaRuta 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

  1. 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.

  2. Si aún no tienes perfil maestro, construir-perfil-maestro te 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-maestro lo valida y lo guarda con la foto y el CV.

  3. comparar-perfil: muestra qué falta, qué está desactualizado y qué sobra en elempleo frente al perfil maestro.

  4. actualizar-perfil por sección: primero sin aplicar, para ver el plan antes → después; luego con aplicar: 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):

CampoUso
datos_personalesciudad, pais, zona_horaria, enlaces (linkedin, github, portafolio…) y foto (ruta relativa o absoluta)
titular.es, resumen.esPerfil profesional y primera línea de la nota al empleador
profesionOpcional: 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_claveaptitudes (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)
preferenciasmodalidad (p. ej. "Solo remoto"), salario_minimo_laboral_cop, salario_minimo_prestacion_cop, acepta_reubicacion, puede_viajar, paises, disponibilidad
seguridad_socialpension_obligatoria, cesantias, pension_voluntaria, eps, caja_compensacion (nombres como aparecen en elempleo)
cv_pdfRuta del PDF, o un objeto { "version": "ruta" } si tienes varias
respuestas_frecuentesRespuestas 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, sector y ciudad.
  • En formacion[].portales.elempleo: nucleo_conocimiento. El nivel y la ciudad usan los campos estándar nivel y ciudad.
  • En certificaciones[].portales.elempleo: area; o un area_cursos general en portales.elempleo de la raíz.

Herramientas

HerramientaQué hace
estado-de-sesion, iniciar-sesionSesión
buscar-ofertas, detalle-de-ofertaBúsqueda (sin sesión)
evaluar-encajeCompara la oferta con tus preferencias (modalidad, salario según contrato, tecnologías declaradas e inglés)
preguntas-de-postulacion, proponer-respuestasLee el formulario de postulación y redacta la nota con datos del perfil maestro
postular-a-ofertaExige confirmacion: "POSTULAR <id>". Una a la vez, sin reintentos. Si la empresa pide cuestionario devuelve requiere_cuestionario con las preguntas
responder-cuestionarioEnvía el cuestionario de filtro posterior a la postulación. Exige confirmacion: "CUESTIONARIO <id>" y respuestas aprobadas por el usuario
mis-postulacionesEstado de tus postulaciones
construir-perfil-maestro, guardar-perfil-maestro, ver-perfil-maestroHerramientas 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-perfilHoja de vida. Secciones: perfil_profesional, experiencia, formacion, cursos, idiomas, redes_sociales, habilidades, seguridad_social
subir-foto, subir-cv, listar-mis-cvFoto 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)

  1. GET /co/ofertas-empleo/?Trabajo=<palabra> da las cookies y el token de <span class="js-search-api-token">.

  2. POST /co/api/joboffers/findbyfilter con la cabecera __RequestVerificationToken y el cuerpo:

    json
    {"query":"desarrollador","salaryInfo":[],"contractType":0,"workModality":101, "cities":[],"publishDate":0,"pageIndex":1,"pageSize":20,"sortExpression":"PublishDate_Desc"}
FiltroValores
workModality0 todos, 100 presencial, 102 híbrido, 101 remoto
contractType0 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
publishDate1 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= con Attachments.SelectedIds.
  • Normal: 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).
  • Mis postulaciones: POST /co/api/jobOffersAplication/filters con 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ónEndpoint
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 5 al postular (posibles preguntas de filtro o pruebas).

來源:README.md,提交 060d658

工具

19

estado-de-sesion

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

無需輸入參數。

iniciar-sesion

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_segundos

buscar-ofertas

Busca ofertas en elempleo.com (Colombia). Funciona sin sesión; con sesión indica si ya te postulaste.

輸入參數fechapaginapalabra必填contratomodalidadpor_paginasalario_minimo_millones

detalle-de-oferta

Devuelve la descripción completa de una oferta: requisitos, salario, contrato, modalidad y ciudad.

輸入參數id必填

evaluar-encaje

Compara 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.

輸入參數id必填

preguntas-de-postulacion

Lee 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.

輸入參數id必填

proponer-respuestas

Redacta 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.

輸入參數id必填

postular-a-oferta

Enví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.

輸入參數id必填notaadjunto_idconfirmacion必填

responder-cuestionario

Enví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>".

輸入參數id必填url必填respuestas必填confirmacion必填

mis-postulaciones

Lista tus postulaciones en elempleo con su estado (en proceso, vencida, eliminada…).

輸入參數paginapor_pagina

construir-perfil-maestro

Crea 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_url

guardar-perfil-maestro

Valida 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_pdfperfil必填sobrescribir

ver-perfil-maestro

Muestra el perfil maestro, dónde está, si cumple el esquema estándar y qué queda pendiente de confirmar.

無需輸入參數。

ver-mi-perfil

Lee tu hoja de vida actual en elempleo: perfil profesional, experiencia, formación, cursos, idiomas, redes, habilidades y archivos.

無需輸入參數。

comparar-perfil

Compara tu hoja de vida de elempleo con el perfil maestro y lista lo que falta, lo desactualizado y lo que sobra.

無需輸入參數。

actualizar-perfil

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.

輸入參數aplicarseccion必填eliminar_ids

subir-foto

Sube 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.

輸入參數aplicar

subir-cv

Sube 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_id

listar-mis-cv

Lista los archivos de CV adjuntos en elempleo.

無需輸入參數。

版本歷史

1
  1. v0.1.0最新Oct 23, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分