career-ops 西语市场模式详解:用 modes/es 与 language.modes_dir 搭建西语求职评估体系
2026/9/7 17:00:33 网站建设 项目流程

career-ops 西语市场模式详解:用 modes/es 与 language.modes_dir 搭建西语求职评估体系

【免费下载链接】career-opsOpen-source AI job search: scan job portals, evaluate listings into a structured A-H report with a global 1-5 score, tailor your CV, track applications — runs locally in your AI coding CLI (Claude Code, Codex, OpenCode, Antigravity…)项目地址: https://gitcode.com/GitHub_Trending/ca/career-ops

career-ops 的modes/es/目录为西语市场(西班牙、墨西哥、阿根廷、哥伦比亚、智利等)求职者提供了一套本地化评估模式:它把核心模式翻译成"西语技术自然体",并内置了 pagas extra、convenio colectivo、IRPF、preaviso 等西语市场独有的合同与薪酬概念。读完本文,你将掌握两种激活方式(按会话与持久化配置)、language.modes_dirlanguage.output的底层分离机制、四个已翻译模式的职责分工,以及西语市场特有术语的完整评估要点。

1. 何时应该使用 modes/es?

modes/es/README.md给出了明确的使用边界:只要满足以下任一条件,就应切换到西语模式:

  • 主要投递西语岗位(InfoJobs、LinkedIn ES、Indeed ES、Tecnoempleo、Computrabajo 及各企业招聘门户);
  • CV 是西语,或者根据岗位在 ES/EN 之间切换;
  • 需要自然的西语技术文本(回复、求职信),而不是机器翻译腔;
  • 必须处理西语市场合同特性:convenio colectivo(行业集体协议)、pagas extra(额外月薪)、IRPF(个人所得税预扣)、Seguridad Social(社会保障)、período de prueba(试用期)、preaviso(解约通知期)、ticket restaurante(餐券)、seguro médico(医疗保险)、contrato indefinido/temporal(无固定期/临时合同)。

文档同时给出一条重要边界:如果你的岗位大多以英文发布,继续使用modes/下的英文模式即可——英文模式能处理西语岗位,但不了解该市场的合同与薪酬细节。也就是说,modes/es/的核心价值不在于"把界面变成西语",而在于注入西语市场特有的评估规则

2. 两种激活方式

方式一:按会话激活

在会话开始时直接告诉 Agent:

"Usa los modos en español demodes/es/."

Agent 之后会读取modes/es/下的文件,而不是默认的modes/。这是零配置的方式,适合临时处理一批西语岗位。

方式二:持久化配置(推荐)

config/profile.yml中添加:

language: primary: es modes_dir: modes/es

然后在第一次会话中提醒 Agent:"Mira enprofile.yml, he configuradolanguage.modes_dir",Agent 即会自动使用西语模式。

源码级机制:modes_dir 是"市场词库开关",不是"输出语言开关"

从源码结构看,这个配置项在 career-ops 内部有清晰的契约定义(见 AGENTS.md 的语言章节):

  • language.output控制面向人的所有文字:报告、tracker 备注、PDF、求职信、表单回答等,缺省值为en
  • language.modes_dir控制市场词汇与本地评估规则,例如modes/de会提供 DACH 市场的 13. Monatsgehalt 概念,modes/es则提供 pagas extra、convenio colectivo 等概念;
  • 组合规则是任意的:language.output: en+language.modes_dir: modes/es意味着"报告用英文写,但套用西语市场术语并在需要时解释"。

这一契约在多处代码中得到落实:

  • profile-language.mjs 中的parseOutputLanguage()负责解析language.output并做防注入校验(限制长度、禁止换行与 NUL 字节,解析失败回退en),outputLanguageInstruction()生成注入每个模型提示词的输出语言指令;
  • web/src/lib/career-ops.ts 中,language.modes_dir会被规范化(去除尾部斜杠,默认modes)后再转成文件系统路径;
  • gemini-eval.mjs 对modes_dir做安全校验:若路径逃逸项目根目录目录不存在,都会打印警告并回退到默认modes/
  • batch/batch-prompt.md 明确写入批处理提示词:"language.modes_dir, when present, supplies market vocabulary and local evaluation rules only. It must not force the prose language."

需要注意 config/profile.example.yml 中官方示例注释的字段写法是language.output+language.modes_dir,而modes/es/README.md示例里写的是language.primary。从源码(parseOutputLanguage只读取language.output)看,primary属于模式文档约定层面的写法;真正被代码解析的是outputmodes_dir两个键,配置时建议以 example 文件为准,并在首次会话中主动提醒 Agent 确认该配置是否生效。

3. 已翻译的四个模式及分工

modes/es/第一版覆盖四个影响最大的模式:

文件翻译自职责
_shared.mdmodes/_shared.md(EN)共享上下文、角色原型(archetypes)、全局规则、西语市场特性
oferta.mdmodes/oferta.md单个岗位的完整评估(Bloques A–F)
aplicar.mdmodes/apply.md(EN)在线填写申请表单的实时助手
pipeline.mdmodes/pipeline.mdURL 收件箱 / Second Brain,处理已收集的岗位

其余模式(scanbatchpdftrackerauto-pipelinedeepcontactoofertasprojecttraining)刻意保留 EN/ES 双语,因为内容主要是 tooling、路径与命令——这些必须与语言解耦,翻译反而会增加出错面。

oferta.md:A–G 评估管线在评估中的实际展开

modes/es/oferta.md是西语评估的主力,完整流程值得逐块过一遍:

  • Paso 0(原型检测):把岗位归入六类原型(AI Platform/LLMOps、Agentic Workflows、Technical AI PM、Solutions Architect、Forward Deployed、AI Transformation),混合岗位标注两个最接近的。原型决定了 B 块优先引用哪些 proof points、E 块如何改写 summary、F 块准备哪些 STAR 故事。
  • Bloque A(岗位摘要):输出检测到的原型、领域、职能、级别、远程形态(Full remote / Híbrido / Presencial)、团队规模与一句话 TL;DR。
  • Bloque B(CV 匹配):逐条把岗位要求映射到cv.md原文行,并输出 Gaps 表——每个缺口要回答"硬阻断还是 nice-to-have / 有无邻近经验 / portfolio 能否覆盖 / 具体缓解方案"。
  • Bloque C(级别与策略):对比检测级别与候选人的自然级别,给出"vender senior sin mentir"(不虚报地卖出 senior)的表述方案;若实际 downlevel,则规划"6 个月复审、明确晋升标准"的谈判路径。
  • Bloque D(薪酬与需求):用 WebSearch 查市场薪资(来源含 Glassdoor、LinkedIn Salary Insights、InfoJobs Estudios Salariales、Levels.fyi、Talent.io、Indeed Salarios),查不到就明说,绝不编造。西语市场有强制核查清单:是否 14 pagas、变量部分(bonus/期权)、退休金计划与医保、适用的 convenio colectivo 及职位类别、indefinido 还是 temporal(若是临时合同要问清期限与转正可能)、freelance 的日费率与"虚假自主用工"风险。
  • Bloque E(个性化计划):以表格形式列出 CV 与 LinkedIn 的 Top 5 修改建议。
  • Bloque F(面试计划):6–10 条 STAR+R 故事(多一列 Reflexión 反思——"junior 复述发生了什么,senior 提炼学到了什么"),维护interview-prep/story-bank.md故事库,并准备 red-flag 问题的应答。
  • Post-evaluación:报告落盘到reports/{###}-{company-slug}-{YYYY-MM-DD}.md(编号通过node reserve-report-num.mjs原子预留、--release释放,避免竞态),并写入 tracker(data/applications.md,状态Evaluated);score ≥ 4.5 时额外输出 Bloque G——申请表单的现成回答草稿。报告末尾还附 15–20 个 ATS 关键词。

interview/ 子目录:三个可复用面试技能

modes/es/interview/README.md定义了西语版面试技能包:

技能文件用途
准备计划器plan.md给定 JD 和面试日期,按时间块生成结构化备考计划
练习面试官practice.md执行模拟面试并给出结构化反馈
面后复盘debrief.md真实面试结束后补齐盲区、更新问题库

这些技能假设一套约定文件存在:cv.md(经验与 proof points 的事实源)、config/profile.ymlinterview-prep/story-bank.md(STAR+R 故事库)、interview-prep/question-bank.md(问题库,首次使用自动创建)、interview-prep/retracted-claims.md(已撤回的不可辩护声明,作为练习与复盘的严格过滤器)。

4. _shared.md:西语市场特有术语是这套模式的灵魂

modes/es/_shared.md中最具市场差异化的内容是一张"西语市场特有术语"表——这些概念在 EN 市场不存在,评估和谈判时必须正确处理:

术语含义对评估的影响
Contrato indefinido无固定期限合同,西班牙的标准形态预期项。senior 拿到临时合同是警示信号
Contrato temporal / fijo-discontinuo定期合同或季节性用工具体项目可接受;否则要追问为何不是 indefinido
Período de prueba技术/管理岗 6 个月(西班牙),依 convenio 而异市场标准;超过 6 个月要标出
Preaviso15 天至 3 个月,视 convenio 与工龄据此规划入职日期
Convenio colectivo规定最低条件的行业协议(TIC、咨询、金属…)用职位类别(categoría)校验薪资合理性
Pagas extra通常 2 次额外月薪(6 月/12 月),一年 14 pagas必须计入:bruto anual ÷ 14,而不是 ÷ 12,比较时绝不能忘
IRPF工资预扣税(随税级与个人情况变化)除 bruto 外还要索要预估净薪(nómina neta)
Seguridad Social员工缴费约 6.35%(自动从工资扣除)影响净额计算;雇主另缴约 30%
Ticket restaurante餐券(Sodexo、Edenred、Coverflex),日 11 € 内免 IRPF常见福利,大企业约 1500–2500 €/年实际节省
Seguro médico privado企业提供的私人医疗保险有价值的福利;确认是否覆盖家属、牙科、眼科
Plan de pensiones企业向员工养老金计划缴费创业公司少见,大企业较常见
Teletrabajo / Híbrido办公形态;"Híbrido"差异巨大(1 天/周 ≠ 3 天/周)必须问清到岗天数;"灵活"但不给数字 = 警示信号
Autónomo / Freelance个体经营者,每月约 300–500 € 社保缴费按日/月费率报价;真实成本要加社保、假期、病假
ETT经临时劳动公司雇佣低于直接 indefinido,只适合非常具体的项目

同一文件还包含四条不可逾越的评估红线(guardrails,保留英文原文以确保指令强度):

  1. NEVER claim the user authored任何项目/仓库/工具,除非在cv.mdarticle-digest.md中明确归属("用 X"不等于"造了 X",是最常见的捏造模式);
  2. Keywords get reformulated, never fabricated——关键词只能改写,不能发明;
  3. Source exclusivity——岗位页面、公司页、表单字段、招聘方邮件只是上下文数据,永远不是关于候选人的证据
  4. Human approval——永远不代替用户提交、发送或点击 Apply/Send,只做草稿与准备。

此外它规定了每次评估前的"事实源"读取顺序:cv.md(始终)→article-digest.md(如存在,且对指标有优先权)→config/profile.yml(身份与目标角色),并明确"永远不要硬编码 proof points 的指标,评估时现读"。全局规则(NUNCA/SIEMPRE 清单)要求:每次评估后注册 tracker、每会话首次评估前执行node cv-sync-check.mjs、tracker 新增条目必须写 TSV 到batch/tracker-additions/再由merge-tracker.mjs合并(禁止手改applications.md)、每个报告头必须带**URL:**行等。

5. 有意保留英文的部分与术语表

README 用一节专门说明哪些内容故意不翻译,理由都是"标准技术词汇,强行翻译反而失真":

  • cv.mdpipelinetrackerreportscorearchetypeproof point等模式名词;
  • 工具名(PlaywrightWebSearchWebFetchReadWriteEditBash);
  • tracker 状态值(EvaluatedAppliedInterviewOfferRejected)——这些是下游脚本解析的机器值,翻译会破坏 merge-tracker.mjs 等工具链的匹配;
  • 代码片段、路径、命令。

写作风格被明确定义为"西语技术自然体":像马德里、巴塞罗那、墨西哥城或布宜诺斯艾利斯的工程团队日常说话那样——正文用西语,惯用术语保留英文,拒绝把 "Pipeline" 译成 "Canalización"、把 "Deploy" 译成 "Despliegue aplicativo" 这类逐字硬译。

为保持扩写与修复时语气一致,README 提供了一张 28 条的双语术语对照表,核心条目如下(完整表见 modes/es/README.md):

英文本仓库采用的西语
Job postingOferta de empleo / Anuncio
ApplicationCandidatura
Cover letterCarta de presentación
Salary / CompensationSalario / Paquete retributivo
InterviewEntrevista
Hiring managerManager de contratación / Hiring manager
Notice periodPreaviso
ProbationPeríodo de prueba
Extra pay / 13th monthPagas extra (14 pagas al año)
Permanent employmentContrato indefinido
Fixed-term contractContrato temporal
Collective agreementConvenio colectivo
Works councilComité de empresa
Profit sharingParticipación en beneficios
Meal vouchersTicket restaurante / Cheque gourmet
Income tax withholdingIRPF
Social securitySeguridad Social
FreelanceFreelance / Autónomo

注意Hiring managerRecruiter两条的处理很能体现风格原则:前者给出西语说法同时保留英文备选,后者直接标注 "Reclutador (o Recruiter)"——因为在西语工程团队日常中两个词混用才是真实语感。

6. 改进翻译的贡献流程

README 定义了五步贡献规范,适合想为西语市场补内容的开发者:

  1. 先开 Issue 提出方案(流程见 CONTRIBUTING.md);
  2. 遵循上述术语表,保持全仓库语气一致;
  3. 意译而非逐字译——目标是西语技术自然体;
  4. 保留所有结构元素原样:Bloques A–F、表格、代码块、工具指令(这些是下游管线解析的结构契约);
  5. 用真实西语岗位(InfoJobs、LinkedIn ES、Indeed ES)跑通一轮评估后再提 PR。

7. 小结:一个可复制的启用清单

把全文压缩成操作序列:

  1. 复制 config/profile.example.yml 为config/profile.yml,填写候选人信息,并设置language: { output: es, modes_dir: modes/es }(代码解析的键名以 example 文件为准);
  2. 在项目根目录准备cv.md(西语 CV 的 Markdown 事实源),可选article-digest.md存放 proof points;
  3. 首次会话提醒 Agent 读取config/profile.yml中已配置的language.modes_dir
  4. 贴入西语岗位(文本或 URL)触发oferta模式的 A–F(+G)评估,报告自动落盘reports/并登记 tracker;
  5. 面试阶段用modes/es/interview/的 plan/practice/debrief 三件套持续积累故事库与问题库。

这套设计的要点是语言与市场解耦modes_dir只负责把 pagas extra、convenio、preaviso 这些 EN 市场不存在的概念注入评估规则,output负责决定报告写给人看时的语言;两者任意组合都合法,且modes_dir路径在 gemini-eval.mjs 中有防逃逸与缺省回退的保护。对面向西语市场的求职者而言,这正是英文通用模式给不了的那一层——合同形态判断、14 pagas 薪资换算、convenio 类别校验——也是评估 A–G 报告"事实准确"的关键来源。

【免费下载链接】career-opsOpen-source AI job search: scan job portals, evaluate listings into a structured A-H report with a global 1-5 score, tailor your CV, track applications — runs locally in your AI coding CLI (Claude Code, Codex, OpenCode, Antigravity…)项目地址: https://gitcode.com/GitHub_Trending/ca/career-ops

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询