11 个模型阶段。一份诚实的 CV。

First Landed 的付费深挖采用分阶段流程,包含攻防审阅和公开命名的模型。到了 R5,Cannot trace 的内容必须删掉,Needs proof 的内容只能以标明待补证据的空位留下。

一单付费审计跑 11 个模型阶段,从 R0 到 R9b,最后再走一步 R10:不调用任何模型的确定性组装。R9b 是 Code Red 终检,对写完的 CV 和求职信再读一遍,找出前面阶段放过、却拿不出来源的说法。它是最后一个模型阶段,所以中途被安全检查判定阻断的单子会直接跳到 R10,根本走不到 R9b。

流程

免费扫描只调用一次模型,并不会走下面这一串阶段。Get-Ready Pack 和 Active Search Pack 会把下面每一个阶段都跑一遍:R5 是硬否决,R9b 是收尾的 Code Red 复查;中途一旦被判定阻断,剩下的阶段就不再跑,已有的内容直接交给 R10。

R0 - 通读

读你的 CV 和 JD,写下你最强的证据主线、JD 真正点名的要求,以及两边明显对不上的地方。

R1 - 角度生成

围绕这份 CV 怎么撑住这个 JD,给出正好三个候选角度。每个角度一句话,后面跟上它靠的是哪份证据。

R2 - 角度攻击

走 attacker 路由,把三个角度逐个攻一遍:缺哪份证据、哪里有夸大的风险、资深审阅者会在哪里追问。

R3 - 匹配评分

拿最强的那个角度,对着 JD 点名的要求打 0 到 100 分,把加权算法摊开给你看,最后落到 Apply、Stretch、Skip 或 Needs more evidence。

R4 - 风险表述攻击

仍是 attacker 路由。逐条过你的 CV,指出面试官会攻哪一句,并按严重程度把最高的几条排出来。

R5 - Fact-Checker 否决

只依据你的 CV、JD 和前面阶段的输出,给每一条实质性表述打上且只打上一个标签:Defensible、Needs proof、Cannot trace。Cannot trace 必须删掉,Needs proof 只能以 [NEEDS PROOF: ...] 空位的形式留下。这一阶段的 temperature 是 0.1,是我们用到的最低值。

R6 - 全篇 CV 重写

按 JD 把你的 CV 重写成一页,只用 R5 判为 Defensible 的内容,加上 R5 允许留下的空位。它不能写进你原始 CV 里没有的公司、雇主、职位、证书、执照、学位或数字,也不能把你自己写成缩写的名字擅自展开。

R7 - 结论与缺失证据

给重写后的 CV 判 Apply、Stretch、Skip 或 Needs more evidence,附上 0 到 100 的分数和理由,再列出投递前该补齐的三到五项证据。

R8 - 求职信

英文草稿目标为 250 到 350 个按空白分隔的词,硬性上限为 380;简体和繁体中文目标为 450 到 650 个非空白 Unicode 码点,硬性上限为 750。计数不含 # Cover Letter 这个 H1 标题,但包含称呼和落款。证据较少时可以写得更短,绝不为了凑长度填充内容。草稿从重写后的 CV 里引用两三个支点,每个事实都必须已经在那份 CV 里。

R9 - 求职信攻击与逐条攻击图

attacker 路由。最多取 R4 里现有的三条高风险内容,不会为了凑数虚构条目。每条给出三个资深审阅者可能会问的问题,以及一项应带哪份最小证据材料的指引,且只基于你自己选择写出来的内容。

R9b - Code Red 终检

这个最终安全检查只用英文运行。它拿写完的 CV 和求职信,回头对照你的原始材料和 R5 的标签再读一遍,只能返回逐字引用的删除项,再由代码确定性执行;它绝不改写说法。若无法逐字引用或准确定位问题,系统会阻止交付。它是最后一个模型阶段,所以中途被阻断的单子根本走不到这里。

R10 - 交付物组装

完全不调用模型。代码读 R9b 的否决表,把 R9b 判删的内容从 CV 和求职信里删掉,去掉面试准备里引用了确定性检查已经删掉的内容的行,清掉内部编号和阶段代号,再附上一段固定的免责说明。除了这段说明,它自己不写任何一句话。

我们实际在跑的模型

没有隐藏路由,也没有还在规划中的档位:以下是 2026-09-01 从引擎代码里读出来的默认配置。每个阶段带一个 defender 或 attacker 的路由标签,但路由只是分工,不是第二家供应商。用 DeepSeek 时,这两条路由指向的是同一个模型;真正走出去的只有 R6 和 R8。

这里原本印着每次扫描和每单审计的基础设施成本,现在删掉了:代码里用来估算成本的价目表仍然指向已经停用的 OpenRouter 线路,照它算出来的数字一定是错的,而修价目表是改代码,不是改文案。客户价格以新加坡元(S$)计。

免费 fit scan

一次流式调用

deepseek-v4-flash(直连 API)

对你的 CV 和一个 JD 发一次请求,边写边流式返回,temperature 0.1,输出上限 2,200 tokens。2026-09-04 用同一份合成 CV 跑了三次,每次 11 到 14 秒。这是三次、一个输入的实测,不是服务承诺。

付费深度审计

所有阶段的默认模型

deepseek-v4-flash(直连 API)

defender 和 attacker 两条路由指向的都是这一个模型。只有 R6 和 R8 可能走出去,而且只有在配了 Moonshot 密钥时才走。thinking 模式发出去时是关闭的,所以这些阶段按普通补全计价,而不是按推理计价。

写作阶段(R6 简历重写、R8 求职信)

R6 与 R8

kimi-k3(月之暗面直连 API)

CV 改写和求职信这两个阶段,是唯一走出主供应商的阶段,而且只有在环境里配了 Moonshot 密钥时才走。没配的话,它们和其他阶段一样跑在 deepseek-v4-flash 上。Moonshot 那一侧如果返回空内容,或者返回我们判定可重试的状态码,这一阶段会回到主供应商重试一次。

兜底

按阶段故障转移

qwen(阿里 DashScope)

某个 DeepSeek 阶段返回空内容,或者返回 HTTP 400、401、402、403、408、409、429、500、502、503、504 时,这一阶段会在 Qwen 上重试一次,前提是配置了 Qwen 密钥。连接被断开、DNS 解析失败这类网络层故障不在这份清单里:那种情况下这一单会直接失败,不会切换供应商。与其说一句供应商故障影响不到我们,我们宁可把边界讲清楚。

为什么这与你有关:诚实来自流水线,而不是模型品牌。同一份硬规则会附在十一个阶段里的九个的提示词后面,其中一条是:不要编造雇主、职位、日期、资质、数字或职责范围;余下的 R8 和 R9 有自己的一套等价规则。R5 的否决清单是在代码里解析并强制执行的,R6 没拿到它就不会启动。R6 和 R8 写完之后,还有一道完全不调用模型的检查,把输出里的说法重新对照你的 CV、JD 和 R5 的标签核一遍。这些都跟哪家供应商接这一通请求无关。

Fact-Checker 否决,细节

LLM 写 CV 最常见的失败模式是编造:不存在的实习、灌水的 metric、根本没有过的 AUM。R5 就是为了拦住这件事而存在的阶段,而它后面的阶段没有绕开它的路。

R5 会读你 CV 和前面阶段输出里的每一条实质性表述,给它打上而且只打上三个标签中的一个:

  • Defensible:这条说法能追回到你自己提供的材料,重写阶段可以用。
  • Needs proof:它很可能是真的,但你还没拿出证据。它只能以 [NEEDS PROOF: ...] 空位的形式留下来,等你用自己的记录补上。
  • Cannot trace:你给的材料里没有任何东西撑得住它,重写阶段必须删掉。

还有第四条规则,管的是学生最担心的那种情况。如果挂在同一个雇主下面的职责和结果全都是 Needs proof 或 Cannot trace,R5 会把这个雇主名和职位本身也标成 Needs proof。底下没有一条站得住的内容,这段经历就不该被当成既成事实写出去。

这道否决是靠代码执行的,不是靠嘴上要求模型自觉。R5 的标签会从它的表格里解析出来,原样塞进重写阶段的提示词,当作一份否决清单;如果 R5 没有产出可解析的标签,整单会抛出 r5_labels_missing_before_r6,重写根本不会开始。CV 和求职信写完之后,还有一道完全不调用模型的检查,把两份文件里的说法重新抽出来,逐条比对你的 CV、JD 和 R5 的标签;对不上的会被删掉,或者直接拦下这次交付。之后 R9b 再读一遍成品,对每一条落不到来源上的说法记一条明确否决,R10 把这些删改执行掉,同样不调用模型。

被否掉的说法不会被软化,这里也没有一堆备选稿可以替换:我们只在写的那一份 CV 上把它拿掉。所以输出常常比一次性 LLM 给你的更短。

改写的三个选项

这一节说的是免费扫描,不是付费深审。多数免费扫描的最后,我们会挑你 CV 里一条偏弱的 bullet 做改写。扫描页上有三个具名选项决定这一条怎么写:JD 语言、改写幅度、行文风格。每个选项只管一件事,各有三档。它们是三个独立选项,不是一个风格滑杆,因为引擎读到的本来就是三个独立选项。

每个选项管什么:

  • JD 语言:保留你自己的用词和顺序;在你的顺序里融入 JD 的关键词;或者按 JD 的优先级来组织。无论选哪一档,只有在你的证据确实对得上时,才会借用 JD 的词。
  • 改写幅度:保持原句的动词强度、不多提任何东西;用你的证据能支撑的最强动词,留一到两个补证空位;或者在你补齐缺失部分的前提下,给出这条 bullet 能达到的最强形态。
  • 行文风格:保留你的语感和句子节奏;收紧成动词开头的短句;或者改成机构化语气的完整句子。

改写内部的优先级是固定的,也不由你调:先是证据规则,然后是 JD 语言,再是改写幅度,最后是行文风格。选项赢不了证据规则。

指令要求任何一档都不会做的事:

  • 影响扫描的其余部分:选项的作用范围只有这一条示例改写。结论、匹配分、分数拆解、缺失证据、风险表述和下一步,都应当在没有它们参与的情况下产生。
  • 给你「升职」:partnered with 不会变成 designed and ran,supported 不会变成 owned,contributed to 不会变成 led。
  • 搬运 JD 的要求:JD 里的要求不会被写成你做过的事。
选项能做什么、不能做什么:这些档位选的是形态,不是事实。你 CV 里没写到的内容,要么直接不写(最小改动),要么写成明确的 [NEEDS PROOF: ...] 空位,等你用自己的材料补上(平衡、最强形态)。这些是给一次模型调用的指令,不是硬性拦截,所以使用前请对照你的 CV 检查这条改写。补不上的空位就是诚实的答案,这也正是这份扫描要给你的东西。

我们仍在改进什么

截至 2026-09 的诚实限制:

  • 第一人称证据循环:intake form 仍会漏掉一些类别,包括志愿者领导力。我们正在迭代表单字段。
  • 免费扫描的中文输出:你从中文页面发起扫描时,请求里会带一条明确指令,要求用简体或繁体中文作答。八个小节标题,以及 Apply、Stretch、Skip 和 [NEEDS PROOF: ...] 这类产品标签,是我们有意保留的英文。其余部分模型不一定照做,扫描结果仍可能部分甚至整篇是英文。我们只做英文、简体中文、繁体中文三种,没有粤语输出。
  • 交付语言:简历和求职信草稿会在支持的范围内使用你选择的语言;部分名称、专业术语和记录可能保留原文。事实始终关联你的原简历。AI 译文会核对原文中的数字、日期、等级及清单内的限定语,再由另一个 AI 模型复核。这些检查不能证明译文与原文含义完全一致。展开‘原文’即可对照。标题、证据标记、最终安全检查和系统指引仍为英文。
  • 受支持的改写:使用经过审核的模板改善受支持的教育、任职和活动表述,并将受支持的事实译为你选择的语言。无法进行受支持的改写时保留原文。我们不会新增成果、夸大职责或推断已取得资格。你可以将改动后的记录与原简历对照。
  • 原文回退:部分记录因暂无受支持的译文而保留原始语言。提交前请检查已标出的记录。