关于 Magneto
Magneto 是面向使用哥伦比亚 Magneto 求职平台的候选人的 MCP 服务。它通过共享主档案支持职位搜索、问卷辅助申请和简历维护,投递需明确确认。
主要功能
- 01搜索职位并查看详情
- 02按档案偏好评估匹配度
- 03依据档案草拟问卷答案
- 04经明确确认后投递
- 05比较并更新简历分区
- 06上传简历和照片
适用场景
- 01查找 Magneto 上的哥伦比亚职位
- 02按薪资和工作偏好评估职位
- 03准备有档案依据的筛选问卷答案
- 04根据主档案更新 Magneto 简历分区
MCP 相关
向 MCP 客户端提供 Magneto 职位搜索、申请和简历管理工具。投递需明确确认,简历修改可先查看计划再执行。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y mcp-magnetoPERFIL_MAESTRORuta del perfil maestro (JSON) compartido por los MCP de empleoRAIZ_ARCHIVOSBase para las rutas relativas de la foto y el CVMAGNETO_DATA_DIRCarpeta de la sesión y respaldos (por defecto ~/.magneto)CHROME_PATHRuta del navegador Chromium usado para iniciar sesión本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
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 或凭据。
入门
iniciar-sesion:在 Magneto 登录页面打开浏览器。你手动登录(通过邮件验证码、Google、Microsoft 或 LinkedIn),MCP 会保存令牌。令牌有效期为 24 小时;由于 MCP 浏览器会保留你的会话,再次调用iniciar-sesion即可在几秒内自动续期。- 如果你还没有主资料,
construir-perfil-maestro会要求你提供一个来源:你的 LinkedIn URL、带有照片的 PDF 简历,或你在 Magneto 中已有的资料(desde_portal: true)。你批准后,guardar-perfil-maestro会验证并保存资料。 comparar-perfil:显示 Magneto 中相较于主资料缺少了哪些内容、哪些内容已过时,以及哪些内容多余。- 按部分执行
actualizar-perfil:先不传aplicar,查看更新前后的计划;然后传入aplicar: true。
申请职位的流程
buscar-ofertas→detalle-de-oferta→evaluar-encaje。preguntas-de-postulacion:说明你是否已申请,并列出筛选问卷中的问题(均为必填)。proponer-respuestas:根据主资料提供建议答案,并将其分类为respaldada、requiere_confirmacion或sin_respaldo。后两类需要与用户确认:绝不会编造答案。- 使用
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_experiencia | total 及按领域或工具划分的年限(例如 "react": "3"、"contabilidad": 3、"nomina": 2),用于回答问卷 |
preferencias | modalidad(“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)。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。