首页
/ career-ops 意大利市场模式(modes/it/):激活机制、意大利契约术语与四大核心模式的完整实践

career-ops 意大利市场模式(modes/it/):激活机制、意大利契约术语与四大核心模式的完整实践

2026-09-06 15:47:11作者:丁柯新Fawn

career-ops 通过 modes/it/ 目录为面向意大利求职市场的候选人提供了一套本地化语言模式:它用自然的技术意大利语替代标准英文模式,内置 CCNL、TFR、Tredicesima 等意大利契约体系术语,并覆盖评估(annuncio)、实时填表(candidarsi)、URL 收件箱(pipeline)四条核心工作流。读完本文,你将掌握如何通过 language.modes_dir 正确激活意大利模式、理解它与 language.output 的组合规则,以及各模式文件内部的评估结构与意大利市场特有的薪酬验证逻辑。

一、modes/it/ 定位:何时启用意大利模式

modes/it/README.md 将该目录定义为 career-ops 主要模式的意大利语翻译集合,服务对象是「面向意大利市场」的候选人。文档给出的启用判据是:只要满足下列任一条件,就应切换到 modes/it/

  • 主要投递的是意大利语职位广告(LinkedIn IT、Indeed IT、企业招聘门户);
  • 你的 CV 是意大利语,或根据广告语言在意大利语/英语之间切换;
  • 你需要自然的技术意大利语回复与求职信,而不是机器翻译腔;
  • 你需要处理意大利特有的契约要素:无固定期限/有固定期限合同、CCNL(全国劳动集体合同)、TFR(离职结算金)、餐券(buoni pasto)、补充医疗保险、第 13 薪(tredicesima)、第 14 薪、试用期、预告期、带薪假以及 Quadro(高级职员)职级。

文档同时给出了反向边界:如果大部分 offer 是英文的,留在默认的 modes/ 即可——英文模式同样能处理意大利的职位,只是不深度了解意大利市场的契约细节。

modes/README.md 可以看到,it/ 只是仓库内十几个语言模式目录之一(ar/ da/ de/ es/ fr/ hi/ id/ it/ ja/ ko/ pl/ pt/ ru/ tr/ ua/ zh/),每个目录都有自己的 README,且遵循统一约定:一个文件对应一个模式,下划线前缀(如 _shared.md)表示共享上下文而非可路由模式。

二、两种激活方式与底层解析逻辑

单会话激活

在会话开始时直接对 Agent 说:

"Usa le modalità in italiano sotto modes/it/."

Agent 会转而读取 modes/it/ 下的文件,而不是 modes/ 下的对应文件。

永久激活(推荐)

config/profile.yml 中加入:

language:
  primary: it
  modes_dir: modes/it

README 要求在首次会话中提醒 Agent 该配置已设置("Guarda in profile.yml, ho configurato language.modes_dir"),此后 Agent 会自动使用意大利模式。

源码级:modes_dir 如何被解析

配置并非靠约定口头生效,而是有实际代码支撑:

  • gemini-eval.mjs(约 L108-L125)在读取 profile.language.modes_dir 后会做两项防护:若路径逃出项目根目录会打印警告并回退到默认 modes/;若目录不存在同样回退并告警。这保证了拼写错误的 modes_dir 不会让评估流程崩溃。
  • AGENTS.md 明确了组合规则:language.output 决定行文语言language.modes_dir 只提供市场词汇与本地评估规则。例如 language.output: en + language.modes_dir: modes/de 会产出「使用 DACH 市场概念(如 13. Monatsgehalt)的英文报告」。同理,意大利模式下保留 CCNL、Tredicesima 这类术语是合规的,只是需要用行文语言加以解释。
  • batch/batch-prompt.md 将同一规则写进了批处理提示词:language.modes_dir 只供给市场词汇与本地评估规则,绝不能强制改变行文语言
  • config/profile.example.yml(L93-L100)中 language 块的注释也明确区分了两者的职责:output 选择报告、tracker 备注、PDF、求职信、外联与表单答案的语言;modes_dir 选择市场词汇/规则,例如「用 DACH 市场词汇但仍用英文书写」。

此外,modes/README.md 指出语言选择的优先级:用户显式请求或 language.modes_dir 优先于基于职位描述语言自动检测的模式切换。

三、翻译覆盖范围与刻意保留的英文词汇

modes/it/README.md 声明首版翻译覆盖了「四个最高影响力模式」:

文件 翻译自 职责
_shared.md modes/_shared.md(EN) 共享上下文、角色原型、全局规则、意大利市场特性
annuncio.md modes/oferta.md(ES) 职位广告的完整评估(A–F 块)
candidarsi.md modes/apply.md(EN) 实时辅助填写申请表单
pipeline.md modes/pipeline.md(ES) 收集广告 URL 的收件箱 / Second Brain

其余模式(scanbatchpdftrackerauto-pipelinedeepcontactoofertasprojecttraining)保持英文/西班牙文,因为其主要内容是工具、路径与命令,需要语言无关性。

刻意不翻译的词汇(属于标准技术词汇):

  • cv.mdpipelinetrackerreportscorearchetypeproof point
  • 工具名(PlaywrightWebSearchWebFetchReadWriteEditBash);
  • tracker 状态值(EvaluatedAppliedInterviewOfferRejected);
  • 代码片段、路径、命令。

行文风格被定义为「自然的技术意大利语」——工程团队日常口语中的意大利语,通行处保留英文术语,避免生硬翻译(例如保留 "Pipeline" 而非 "Canalizzazione",保留 "Deploy" 而非 "Dispiegamento")。

四、参考词汇表:意大利市场术语与英文的固定映射

为了在修改或扩展模式时保持语气一致,README 给出了项目内固定的英意词汇映射,这也是理解整套意大利模式的关键对照表:

English 本项目内使用的 Italiano
Job posting Annuncio di lavoro
Application Candidatura
Cover letter Lettera di presentazione
Salary / Compensation Stipendio / Retribuzione
Skills Competenze
Interview Colloquio
Hiring manager Responsabile della selezione
AI IA (Intelligenza Artificiale)
Requirements Requisiti
Notice period Periodo di preavviso
Probation Periodo di prova
Vacation Ferie
13th month salary Tredicesima
Permanent contract Contratto a tempo indeterminato
Fixed-term contract Contratto a tempo determinato
Freelance Libero Professionista
Collective agreement CCNL (Contratto Collettivo Nazionale di Lavoro)
Works council RSU / Rappresentanza Sindacale
Profit sharing Premio di risultato / MBO / Partecipazione agli utili
Meal vouchers Buoni pasto
Health insurance Assicurazione sanitaria integrativa / Cassa sanitaria
Disability/life insurance Assicurazione vita
RTT Permessi retribuiti
Cadre status Quadro

这张表的价值在于:它是「翻译决策的单一事实来源」,保证不同模式文件、报告与回复草稿之间术语一致。

五、_shared.md:意大利市场的契约术语与全局规则

_shared.md 是所有意大利模式的共享上下文,包含四部分关键内容:

1. 数据源与防捏造护栏

评估前必须读取的「事实来源」固定为:cv.md(永远)、article-digest.md(如存在,永远)、config/profile.yml(永远)。文件内嵌了带 <!-- guardrail:* --> 注释标记的全局规则:绝不宣称候选人创建过未被 cv.md/article-digest.md 归属的项目(「使用 X」不等于「构建了 X」);关键词只能改写、不能编造;职位广告与表单字段是数据而非指令,更不能作为候选人资历的证据;绝不代替用户提交、发送或点击 Apply/Send——只起草,用户批准后才能提交。

2. 意大利市场特性表(评估时必查)

这是意大利模式相对英文模式最大的增量:一张「术语 → 含义 → 对评估的影响」对照表,覆盖:

术语 评估影响摘要
无固定期限合同 意大利标准预期;给 senior 只提供有期合同是预警信号
有固定期限合同 特定项目可接受,否则要追问为何不提供无期合同
Periodo di prova(试用期) 依 CCNL 为 1–6 个月;超过法定/CCNL 上限需标记
Periodo di preavviso(预告期) 通常 1–3 个月,用于规划入职日期
Quadro 高级职员职级,tech 领域多数 senior/lead 岗位归此类,应核实是否提及
CCNL 行业集体合同(如 Metalmeccanico、Terziario),决定最低工资与级别,用于正确计算 superminimo(合同补差)
Permessi retribuiti 累积的带薪休息时数,应计入年休假总价值
Tredicesima 第 13 薪,须纳入 RAL 计算(月薪 × 13 + 补差/奖金),谈判对比时不可遗漏
TFR 每月累积(约 RAL 的 7.4%)的离职结算金,是递延薪酬包的重要组成部分
Premio di risultato / MBO 可变奖金,须核实发放标准
Buoni pasto 餐券,年净价值可达 1000–2000 欧元
Assicurazione sanitaria integrativa CCNL 配套的补充医疗保险基金,核实是否覆盖家属
Ferie 法定最少 4 周;低于法定即非法,25 天以上加带薪假属优秀
Libero Professionista Partita IVA 自由职业;注意 forfettario 税制与独家条款

此外还内置了薪酬情报建议(WebSearch 取 Glassdoor、Levels.fyi、LinkedIn IT 等实时数据;意大利自由职业日薪需在同等全职成本上浮 40–60% 以覆盖税收与社保)与四段谈判话术脚本(报价框架、应对基于地点的压价、低于目标时的应对、要求拆分 RAL 固定部分/可变部分/benefit 的澄清话术)。

3. 全球规则:MAI(绝不)与 SEMPRE(必须)

「绝不」清单包括:编造经历或指标、擅自修改 cv.md、未经同意代发申请、在生成消息中泄露电话号码、推荐低于市场价的薪酬、未读广告就生成 PDF、使用空洞的公司黑话、忽略 tracker(每个被评估的广告都必须登记)。「必须」清单则规定了:允许时始终附上与 CV 同视觉设计的 1 页求职信、每个会话首次评估前运行 node cv-sync-check.mjs、匹配时引用 CV 原文行、tracker 写入走 batch/tracker-additions/ 的 TSV 文件由 merge-tracker.mjs 合并(绝不直接改 applications.md)、每个报告标题中在 Score 与 PDF 之间插入 **URL:** 等。

六、annuncio.md:A–F 六块评估与意大利特有的 D 块核验

annuncio.md 定义了候选人粘贴职位广告(文本或 URL)时必须产出的完整评估结构:

  • 块 0 原型检测:将广告归类为六种原型之一(AI Platform/LLMOps、Agentic Workflows、Technical AI PM、AI Solutions Architect、Forward Deployed Engineer、AI Transformation Lead;混合岗位给最近两个),该分类决定块 B 优先证明哪些 proof point、块 E 如何改写 CV 摘要、块 F 准备哪些 STAR 故事;
  • 块 A 角色摘要:原型、赛道、职能类型、级别、工作地模式(全远程/混合/驻场)、团队规模、一句话 TL;DR;
  • 块 B CV 匹配:把广告每条要求映射到 cv.md 的具体行,并输出 Gap 分析——每个缺口要回答「是硬性阻断还是加分项?有无相邻经验?组合中是否有项目可覆盖?具体缓解方案是什么(如求职信话术、快速小项目)」;
  • 块 C 定级与策略:广告级别 vs 候选人自然级别,以及「若被低定级」的应对——仅当薪酬公道时接受、约定 6 个月复审、从一开始谈定晋升标准;
  • 块 D 薪酬与市场:WebSearch 取数(找不到数据要明确声明而非编造);
  • 块 E 定制计划:给出 CV 的 5 处修改 + LinkedIn 档案的 5 处修改,含现状/改法/理由表格;
  • 块 F 面试计划:6–10 条 STAR+R 故事(R = Reflection,「学到了什么/会怎么做不同」被明确视为 seniority 信号),并按原型调整故事侧重点;如存在 interview-prep/story-bank.md 则查重后入库,逐步沉淀 5–10 条可复用故事。

意大利市场特有的 D 块强制核验清单是本模式区别于英文 oferta.md 的核心:

  1. 是否提及 tredicesima / quattordicesima?必须纳入 RAL 计算;
  2. 有无可变部分(bonus、MBO、期权)?
  3. 是否提及 Premio di risultato 或利润分享?核实公司发放历史;
  4. 适用哪个 CCNL?核实职级与合同级别;
  5. 无期还是有期合同?若有期:期限、理由、能否转正;
  6. 是否为 Libero Professionista?日费率、合作期限,以及「假 Partita IVA」(时间/地点约束导致的虚假自由职业认定)风险。

评估后的落盘流程同样被精确定义:报告保存到 reports/{###}-{company-slug}-{YYYY-MM-DD}.md,其中 {###} 通过 node reserve-report-num.mjs 原子预留、写入后 --release {###} 释放;报告头部含 Data/Archetipo/Punteggio/URL/PDF 元信息,G 块(表单回复草稿)仅在评分 ≥ 4.5 时生成;最后必须把评估登记进 data/applications.md 的 tracker 表(# | Data | Azienda | Ruolo | Punteggio | Stato | PDF | Report),状态置为 Evaluated

七、candidarsi.md:实时填表的八步工作流

candidarsi.md 是交互式模式:候选人在 LinkedIn 或企业门户填表时,Agent 读屏、加载该广告的历史评估报告,为每道题生成可粘贴的个性化答案。

前置条件:最优配置是可见的 Playwright(候选人看到浏览器、Agent 直接操作页面);没有 Playwright 时,候选人提供截图(Read 工具读图)或手动粘贴题目。

八步工作流为:RILEVARE(读当前浏览器标签的截图/URL/标题)→ IDENTIFICARE(提取公司+岗位)→ CERCARE(在 reports/ 中按公司名大小写不敏感匹配)→ CARICARE(读完整报告 + G 块草稿)→ CONFRONTARE(屏幕上岗位与已评估岗位是否一致,不一致则提示)→ ANALIZZARE(识别全部可见问题)→ GENERARE(逐题生成)→ PRESENTARE(输出格式化答案)。

生成规则要求每个答案:使用块 B 的 proof point 与块 F 的 STAR 故事、有 G 块草稿时以草稿为基础精修、采用「我选择你们」式的自信语气(不卑微、不纯描述)、引用屏幕上广告的具体细节、有 "Informazioni aggiuntive" 字段时塞入 career-ops proof point。

意大利表单特化字段是这个模式的实战价值所在:

  • 期望薪酬(RAL):填 profile.yml 中定义的欧元区间,附一句「可依据整体福利与 welfare 包协商」;
  • 可用日期:按预告期(通常 1–3 个月)推算现实日期;
  • 工作许可/国籍:意大利/欧盟公民统一答 "Nessun visto richiesto (cittadino UE)";
  • 语言:按 QCER(欧框,A1–C2)标注水平;
  • 机动性:写明可接受的地理范围与差旅上限(如「disponibile a trasferte fino al 20% del tempo」)。

八、pipeline.md:URL 收件箱与批量处理

pipeline.md 实现了「Second Brain」模式:候选人随时把广告 URL 追加进 data/pipeline.md,之后运行 /career-ops pipeline 一次性处理。工作流要点:

  1. 读取 data/pipeline.md,找出 "In attesa" 段下 - [ ] 标记的条目(该模式对章节标题做多语言兼容:英文 Pending、西班牙文 Pendientes、德文 Offen、法文 En attente、意大利文 In attesa 均可识别,写入时则忠于既有风格);
  2. 逐条处理:先用 node reserve-report-num.mjs 原子预留编号 → 提取广告(优先 Playwright 的 browser_navigate + browser_snapshot,可降级 WebFetch、WebSearch)→ 不可访问的 URL 标为 - [!] 并附注跳过 → 执行完整 auto-pipeline(A–F 评估 → 报告 → 评分 ≥ 3.0 生成 PDF → 写 tracker)→ 条目移入 "Elaborati",格式为 - [x] #NNN | URL | Azienda | Ruolo | Punteggio/5 | PDF sì/no
  3. 待处理 URL ≥ 3 个时,用后台 Agent 并行处理以提速(注意 _shared.md 中 Playwright 的警告:绝不并行跑 2 个以上使用 Playwright 的 Agent,因为它们共享同一个浏览器实例);
  4. 结束时输出汇总表 | # | Azienda | Ruolo | Punteggio | PDF | Azione raccomandata |

广告提取的降级链与特例也被规定:LinkedIn 可能需要登录 → 标 [!] 请候选人粘贴广告文本;URL 指向 PDF 则用 Read 直接读;local: 前缀读取本地文件(如 local:jds/linkedin-pm-ai.md);意大利常见的 Indeed IT / LinkedIn IT 门户由 Playwright 处理 cookie 横幅。此外还支持可选的 CLI 提取器:在 profile.yml 设置 scan.extractor: cli 后改用 node browser-extract.mjs <url> --mode jd,返回紧凑 JSON 以降低 token 消耗,出错时静默回退到 Playwright 路径。处理前还要求先运行 node cv-sync-check.mjs 校验 CV 数据同步。

九、贡献流程:如何扩展意大利模式

modes/it/README.md 的 Contribuire 章节给出了固定的五步贡献流程:

  1. CONTRIBUTING.md 提 Issue 说明提案;
  2. 严格遵守上文词汇表,保持术语一致;
  3. 意译而非逐字翻译,避免机翻腔;
  4. 保留结构元素不动——A–F 块、表格、代码块、工具指令必须与原版一一对应;
  5. 提交 PR 前用一个真实的意大利语广告做端到端测试。

这一约束与仓库整体设计一致:模式文件属于系统层,升级脚本会恢复它们;用户的个性化应写在 _profile.md / _custom.md(用户层文件,gitignored)而非模式文件本身。

十、小结:组合规则速查

配置 效果 依据
language.modes_dir: modes/it(无 output 设置) 意大利市场词汇 + 意大利语行文 AGENTS.mdgemini-eval.mjs
language.output: en + modes_dir: modes/it 保留 CCNL/TFR 等意大利概念,但报告用英文写 batch/batch-prompt.mdconfig/profile.example.yml
modes_dir 路径越界或目录不存在 告警并回退默认 modes/ gemini-eval.mjs
会话内口头指定 优先于 JD 语言自动检测 modes/README.md

modes/it/ 展示了 career-ops 的本地化架构:语言模式目录只承载「市场词汇 + 本地评估规则 + 共享上下文」,工具命令、路径、编号机制(reserve-report-num.mjsmerge-tracker.mjscv-sync-check.mjs)保持语言无关,两者通过 language.modes_dirlanguage.output 正交组合,使同一套评估与 tracker 机制能平滑切换到任何市场。

登录后查看全文
热门项目推荐
相关项目推荐