mcpField
M
Magneto

Magneto

本地服务
github.com/Jucamhc商业与营销16 天前更新

关于 Magneto

Magneto 是面向使用哥伦比亚 Magneto 求职平台的候选人的 MCP 服务。它通过共享主档案支持职位搜索、问卷辅助申请和简历维护,投递需明确确认。

主要功能

  1. 01搜索职位并查看详情
  2. 02按档案偏好评估匹配度
  3. 03依据档案草拟问卷答案
  4. 04经明确确认后投递
  5. 05比较并更新简历分区
  6. 06上传简历和照片

适用场景

  1. 01查找 Magneto 上的哥伦比亚职位
  2. 02按薪资和工作偏好评估职位
  3. 03准备有档案依据的筛选问卷答案
  4. 04根据主档案更新 Magneto 简历分区

MCP 相关

向 MCP 客户端提供 Magneto 职位搜索、申请和简历管理工具。投递需明确确认,简历修改可先查看计划再执行。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"jucamhc-mcp-magneto": {
"command": "npx",
"args": [
"-y",
"mcp-magneto"
],
"env": {
"PERFIL_MAESTRO": "<PERFIL_MAESTRO>",
"RAIZ_ARCHIVOS": "<RAIZ_ARCHIVOS>",
"MAGNETO_DATA_DIR": "<MAGNETO_DATA_DIR>",
"CHROME_PATH": "<CHROME_PATH>"
}
}
}
}
启动命令npx -y mcp-magneto
需要配置的环境变量
PERFIL_MAESTRORuta del perfil maestro (JSON) compartido por los MCP de empleo
RAIZ_ARCHIVOSBase para las rutas relativas de la foto y el CV
MAGNETO_DATA_DIRCarpeta de la sesión y respaldos (por defecto ~/.magneto)
CHROME_PATHRuta del navegador Chromium usado para iniciar sesión

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmmcp-magneto0.1.0

工具

18

收录的工具列表 · 更新于 6 天前

此工具无需参数。

详细介绍

mcp-magneto

适用于 Magneto(magneto365.com,哥伦比亚)的 MCP 服务。借助它,你可以:

  • 搜索职位、查看详情,并评估职位是否适合你的个人资料。
  • 回答筛选问卷并申请职位,一次申请一个职位,且需获得你的明确确认。
  • 根据包含你个人资料的单个文件更新简历:即主资料。

适用于任何 Magneto 求职者账户。代码中没有写入任何个人数据:所有数据都来自主资料或你在 Magneto 中已有的简历。

非官方项目。 本项目未与 Magneto 建立关联,也未获得其认可。它使用 Magneto 网站所调用的内部 API,该 API 可能会在没有通知的情况下变更,导致某些工具无法使用。每个人都应自行负责按照 Magneto 的使用条款使用本项目。职位申请都是真实的,且无法撤销。

安装

要求:Node.js 20 或更高版本,以及基于 Chromium 的浏览器(Chrome、Edge、Brave 或 Chromium),浏览器仅用于登录。

将其注册到你的 MCP 客户端中(例如 ~/.cursor/mcp.json 或 Claude Desktop 配置)。npx 会从 npm 下载并保持其更新:

{
  "mcpServers": {
    "magneto": {
      "command": "npx",
      "args": ["-y", "mcp-magneto"],
      "env": { "PERFIL_MAESTRO": "/ruta/a/mi/perfil-maestro.json" }
    }
  }
}

它是独立的:包含主资料标准(src/perfil-maestro.js、perfil-maestro.schema.json 和 PERFIL-MAESTRO.md)。其他求职 MCP 也包含相同副本,因此都共用同一份资料。

你也可以从源代码安装:

git clone https://github.com/Jucamhc/mcp-magneto.git
cd mcp-magneto
npm install

并使用 "command": "node" 和 "args": ["/ruta/a/mcp-magneto/src/index.js"]。

环境变量(均为可选)
变量默认值用途
PERFIL_MAESTRO~/.perfil-maestro/perfil-maestro.json主资料路径(所有 MCP 共用)
RAIZ_ARCHIVOS主资料文件夹foto 和 cv_pdf 相对路径的基准目录
MAGNETO_DATA_DIR~/.magneto会话(令牌)、浏览器配置文件和备份
CHROME_PATH自动检测浏览器可执行文件的路径(当它不在常用位置时)

会话和备份保存在 ~/.magneto/ 中,不会放在同步文件夹内。MCP 绝不会显示令牌、Cookie 或凭据。

入门

  1. iniciar-sesion:在 Magneto 登录页面打开浏览器。你手动登录(通过邮件验证码、Google、Microsoft 或 LinkedIn),MCP 会保存令牌。令牌有效期为 24 小时;由于 MCP 浏览器会保留你的会话,再次调用 iniciar-sesion 即可在几秒内自动续期。
  2. 如果你还没有主资料,construir-perfil-maestro 会要求你提供一个来源:你的 LinkedIn URL、带有照片的 PDF 简历,或你在 Magneto 中已有的资料(desde_portal: true)。你批准后,guardar-perfil-maestro 会验证并保存资料。
  3. comparar-perfil:显示 Magneto 中相较于主资料缺少了哪些内容、哪些内容已过时,以及哪些内容多余。
  4. 按部分执行 actualizar-perfil:先不传 aplicar,查看更新前后的计划;然后传入 aplicar: true。

申请职位的流程

  1. buscar-ofertas → detalle-de-oferta → evaluar-encaje。
  2. preguntas-de-postulacion:说明你是否已申请,并列出筛选问卷中的问题(均为必填)。
  3. proponer-respuestas:根据主资料提供建议答案,并将其分类为 respaldada、requiere_confirmacion 或 sin_respaldo。后两类需要与用户确认:绝不会编造答案。
  4. 使用 confirmacion: "POSTULAR <id>" 和已批准的答案调用 postular-a-oferta。在 Magneto 中,问卷和职位申请会在同一个请求中提交。

答复状态:submitted、already_applied、needs_review(问卷不完整、要求提供额外数据,或因资料不完整导致申请被列为预选)、expired、sesion_expirada、limite_de_peticiones 和 error。

工具

工具功能
estado-de-sesion, iniciar-sesion会话
buscar-ofertas, detalle-de-oferta搜索(无需会话;登录后会显示你是否已申请)
evaluar-encaje根据你的偏好(工作方式、按合同类型区分的薪资、申报的技术和英语水平)比较职位
preguntas-de-postulacion, proponer-respuestas读取筛选问卷,并根据主档案中的信息提出答案
postular-a-oferta必须提供 confirmacion: "POSTULAR <id>"。一次只申请一个职位,不重试
mis-postulaciones你在 Magneto 的申请
construir-perfil-maestro, guardar-perfil-maestro, ver-perfil-maestro主档案标准工具
ver-mi-perfil, comparar-perfil, actualizar-perfil履历。各部分:descripcion、idiomas、habilidades、experiencia、formacion、certificaciones、preferencias
subir-foto, subir-cv, listar-mis-cv照片和 CV(Magneto 只保存一份 CV)

职位可通过 ID、slug(desarrollador-backend-1088350)或 URL 识别。未登录时,Magneto 只能通过 slug 提供职位详情。

每次写入前都会备份现有内容(存放在 ~/.magneto/respaldos/),并且只会删除你在 eliminar_ids 中传入的 ID。preferencias 部分会修改职位、最低薪资、远程办公、混合办公、出差和迁居意愿;表单的其余部分(行业、学历、城市、工作时段)会按原样重新提交。个人信息、每段工作经历所在的城市以及“接受职位推荐”需在网站上编辑。

主档案

Magneto 使用的字段(参见 perfil-maestro.ejemplo.json):

字段用途
resumen.es档案描述(最多 2,000 个字符)。如需设置其他描述,请使用 portales.magneto.descripcion
experiencia[]empresa、cargo(最多 120 个字符)、inicio/fin(AAAA-MM,fin: null = 当前)、descripcion_empresa、logros_es[]、tecnologias[]
formacion[]institucion、titulo_es、inicio、fin、graduado、可选的 nivel(“Universitaria”“Tecnológica”“Técnico”“Especialización”…)。如果没有 nivel,则根据学位推断学历类型;国家取自 datos_personales.pais。课程应填写在 certificaciones 中,未完成的学业不会上传(Magneto 不支持该状态)
certificaciones[]nombre、emisor、fecha(AAAA-MM)、可选的 url
habilidades_clave.tecnicas、aptitudes技能(Magneto 最多支持 10 项)
idiomas[]idioma 和 nivel(Básico、Intermedio、Avanzado、Nativo)
anios_experienciatotal 及按领域或工具划分的年限(例如 "react": "3"、"contabilidad": 3、"nomina": 2),用于回答问卷
preferenciasmodalidad(“Solo remoto”“Presencial”“Híbrido”“Remoto o híbrido”)、salario_minimo_laboral_cop、salario_minimo_prestacion_cop、acepta_reubicacion、puede_viajar
portales.magneto.cargo你正在寻找的职位(Magneto 的偏好设置)
respuestas_frecuentes可重复使用的答案:当键名或文本与问题匹配时,会推荐这些答案
datos_personales.foto、cv_pdf照片(JPG 或 PNG)和 PDF 格式的 CV
适用于任何领域的个人资料

MCP 不限定职业。已使用开发人员、会计助理(现场办公)和商务高管(混合办公)的个人资料进行测试:

  • buscar-ofertas 未指定 modalidad 时会使用个人资料中的设置:“仅远程”会筛选远程岗位;如果设置为现场办公或混合办公且不迁居,则会搜索你所在的城市。
  • evaluar-encaje 会检查所在城市(在其他城市现场办公或混合办公的岗位)、合同对应的薪资、英语水平;如果个人资料中列出 3 项或更多软件技术,还会检查技术栈;其他个人资料则会在职位描述中查找你的技能和工具。
  • proponer-respuestas 会根据你的职位和工作年限回答经验问题(并选择相应的年限范围选项,例如“超过 3 年”),以月为单位比较是非问题中的最低要求,并在学历或知识问题中使用你的教育背景和技能。个人资料中没有的信息(车辆、驾照、轮班可用性等)会标记为 sin_respaldo;请将这些信息添加到 respuestas_frecuentes,并使用由两个或更多单词组成的键(例如,"licencia_conduccion": "是,B1 有效")。

范围:仅限哥伦比亚(搜索使用 C47,薪资单位为 COP)。

技术参考

Magneto 没有面向求职者的公共 API;网站使用 https://api.magneto365.com,并通过 Authorization: Bearer 传递 JWT(来自 .magneto365.com 的 access_token Cookie,有效期为 24 小时)。如果读取请求收到 429,会重试一次;提交请求不会重试。

职位(/jobs)
用途端点
公开搜索/已登录搜索GET /jobs/v1/public/jobs/search / GET /jobs/v1/jobs/search
公开职位详情(slug)/已登录职位详情(id)GET /jobs/v1/public/jobs/<slug> / GET /jobs/v1/jobs/<id>
地点GET /jobs/v1/public/locations?term=&country_id=47(哥伦比亚:C47,城市 CT…)
问卷GET /jobs/v1/questionnaire/<id> 和 GET /jobs/v1/questionnaire/already-answered/<id>
申请职位使用 {jobId, suggestedByMatcher, sourceOrigins, utmPayload, questionnaires?} 调用 POST /jobs/v1/jobs/apply
我的申请流程GET /jobs/v2/my-processes?page= 和 /jobs/v2/my-processes/counters
要求提供的额外信息使用 {id} 调用 POST /sign-up-forms/v1/schema/apply(包含 templateId 的职位)

搜索参数:paginator[page]、paginator[pageSize](20 或 30)、filters[locations][0]、filters[work_modality][0](remote、hybrid、onSite)、filters[contract_type_id][0](1 固定期限,2 无固定期限,3 临时,4 工程或工作,5 服务提供,6 学徒)、order[field](_score 或 publish_date)、queries[0][field]=all、queries[0][term]。

问卷答案:questionnaires: [{id, questions: [{id, type, openAnswer} | {id, type, answer: [{id, titleAnswer}]}]}]。类型:0 单选,1 多选,2 简短文本(140),3 长文本(2.500)。如果响应包含 applicationId,则申请已提交;如果包含 level 和 missingFields,则因个人资料不完整而被预先筛选。

个人简历(/sign-up)

读取:GET /sign-up/v2/candidate/profile。写入:使用 {...section, step} 和请求头 x-schema-response: profile-v2 调用 PATCH /sign-up/v2/candidate。

部分step请求体
个人简介15{profileDescription}
技能16{skills: [{id?, name, level}]}(完整列表)
照片19{profileImageFileName, originalFileName}
语言20{languages: [{id?, languageId, name, level}]}(完整列表;目录位于 /sign-up/v1/languages)
工作经历37 / 删除 63{experiences: [{id?, position, company, description, atPresent, startDate, endDate}]};删除时添加 clearSection: "experiences"
偏好47{titleOrProfession, salary, currencyPayId, salaryFrequencyId, candidateSectors, educationLevelId, workCityId, availableTo{Move,RemoteWork,Travel,HybridWork}, internshipType, candidateJourneys};仅在 disability 存在时才发送(发送 null 会返回 502)
证书60 / 删除 67{certifications: [{id?, name, institution, expeditionDate, credentialUrl?, attachmentUrl?}]};删除时添加 clearSection: "certifications"
社交网络和链接 / 兴趣爱好24 / 25{socialMediaLinks} / {hobbies}(MCP 未使用)
教育经历76 / 删除 77{studies: [{id?, institute, profession, title, inProgress, startDate, endDate, studyType, countryId}]};studyType 是 /sign-up/v1/education/levels 中的 ID,countryId 是 /sign-up/v1/countries/active 中的 ID。缺少任一项时,Magneto 会将申请标记为预申请(missingFields: studies:<id>)。删除时添加 clearSection: "studies"

语言和技能等级:1 初级,2 中级,3 高级,4 专业或母语水平。日期格式为 AAAA-MM-DD。简历:PUT /sign-up/v1/candidate/upload-cv(multipart,字段 file)。

待验证

  • 照片上传的实现来自网站代码,但尚未在真实账号上测试(简历和个人简历各部分已测试)。
  • 带有 templateId 的职位(注册额外数据)、多选题和长文本问题。
  • 删除工作经历、教育经历或证书(eliminar_ids)。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。