隐私与退款

简短、清楚的 beta 政策。如果这里有任何不清楚的地方,请发邮件到 [email protected]

我们处理什么

我们会处理你提交的 CV、职位描述、填写答案和联系方式,用来提供你要求的免费匹配扫描、付费 CV 套餐,以及相关交付消息。

我们不会做什么

  • 我们不会出售你的个人数据。
  • 我们不会编造实习、雇主、学位、职称、证书或指标。免费扫描里这条规则写在提示词本身。付费深挖里由 R5 给每一条重要说法打标签;R5 必须先产出可解析的标签,R6 才能开始。这些标签会写进 R6 的提示词,改写完成后还要过一道不调用模型、按规则执行的来源检查。
  • 我们不会保证面试、offer、招聘方回复、签证或就业结果。
  • 我们不会代你自动填写或提交任何表格。

AI 处理

免费扫描先在你的浏览器里解析 PDF 和 TXT。解析出的 CV 文本和 JD 文本随后发送到我们的 Cloudflare Function,由它用一段提示词向 DeepSeek API(deepseek-v4-flash,api.deepseek.com)发起一次请求,只有这一次。进度条把 R0、R3、R5、R7 当作进度标签,它们不是四次独立的模型调用。R0 会在读取任何模型返回内容之前点亮,后面几个标签会随着对应小节返回而点亮。方法页写的是付费深挖使用的完整阶段架构。

付费 Get-Ready Pack 和 Active Search Pack 最多会依次跑 11 个模型阶段(R0 到 R9,再加收尾复检 R9b)。安全闸可以提前拦停,直接把当时已有的内容交给第 12 步 R10;R10 在我们这边组装成品,不调用模型。模型阶段调用 DeepSeek API(deepseek-v4-flash,api.deepseek.com);其中两个写作阶段,也就是 CV 改写和求职信,调用 Moonshot AI(kimi-k3,api.moonshot.ai)。写作阶段在 Moonshot 上返回空内容,或者返回我们判定可重试的 HTTP 状态码时,会回到 DeepSeek 重试;最初走 DeepSeek 的阶段返回空内容,或者返回我们判定可重试的 HTTP 状态码时,如果配置了 Qwen 密钥,会在阿里云 Model Studio(qwen)上重试一次。从 Moonshot 回到 DeepSeek 的重试不会再接着转去 Qwen。这三家都是第三方模型供应商。发给它们的客户与审核内容可以包括 CV 文本、JD 文本、前面阶段的输出和内部审核 order ID,同时也会带上本次调用所需的系统指令与阶段指令。提交前请删去电话、身份证或护照号码、家庭住址,以及任何不希望模型供应商处理的信息。

一次付费深挖会留下三样东西,全部用 AES-256-GCM 加密:你提交的 CV、JD 和填写答案,最多留 3 小时;各阶段的输出,最多留 24 小时;成品 pack,最多留 7 天。到期不是打个标记就算数:每份加密数据都带着自己的到期时点。系统会按最近的到期时间安排清理;届时会彻底删除所有已到期的数据行。记录这次深挖的数据库不存原始 CV、JD、填写答案、提示词或阶段输出。它存 CV、JD、填写答案和阶段输出的 SHA-256 指纹,也存加密数据引用;提示词只记版本,不保存原文。它还会记录运行信息,例如各类 ID、时间戳、所用供应商、模型及路由、token 用量、延迟、状态,还有经过哈希的安全闸记录。这些记录不会自动到期,我们留着做运行维护和账务。

我们不再抓取职位页面。如果职位那一栏里只有一条链接,扫描会在计入你的每日额度之前、在任何内容发给模型之前被拒绝,并请你改为粘贴文本。如果那一栏里只有一条链接,浏览器就会拒绝,这条链接根本不会发给我们;我们最多只能帮你打开它。如果职位描述文本里顺带提到了一个网址,那属于正文的一部分,会和其余文字一起发送。这项改动发生在 2026-09-11;它替换掉的抓取方式对多数职位页都读不出内容,因为很多雇主的职位描述要在浏览器里才会生成,对其他访问只返回一个空页面。

岗位板上的 CV 匹配面板对文件的处理方式相同:PDF 和 TXT 在你的浏览器里解析,只有提取出的 CV 文本会发送到我们的 jobs API,同时带上你设置的城市、类别和层级筛选。服务会从这段文本的前 8,000 个字符生成向量查询。一个 Cloudflare Workers AI 模型(@cf/baai/bge-m3)把查询转成向量,与 Cloudflare Vectorize 里的在招岗位比较。我们再请另一个 Workers AI 模型(@cf/baai/bge-reranker-base)用查询的前 2,000 个字符和每个岗位的简短信息重新排序;如果这次调用失败,服务会按共同词数量、原来的向量召回顺序,再以稳定的岗位 key 和标题处理同分。匹配不使用其他模型服务商。岗位服务什么都不写:没有数据库写入,没有存储写入,也没有任何带上你文本的日志。如果你把某个岗位从岗位板带到扫描页,浏览器 session storage 里的 fl.handoff 记录会包含版本、一个随机导航 id、来源、两个时间戳、CV 文本、我们此前已保存的这个岗位的职位描述文本,以及岗位标题、雇主、城市和招聘链接。它不包含文件、PDF 字节,也不包含账号身份。扫描页只读取一次,无论能否使用都会删除;这条记录十分钟后过期。只有地址栏里 id 与之相符的那一次跳转才会使用它,所以一次被放弃的点击不会被之后的访问捡起来。

扫描页还会在这个标签页里保存你正在填写的内容,键名 fl.scan.draft,这样刷新或切换语言不会让你丢掉文本。这条记录包含 CV 文本、职位描述文本、你当时用的输入方式,以及你是从哪个岗位过来的。它会在你最后一次编辑、应用 handoff 或开始扫描之后 30 分钟过期,读取它不会延长这个时间。扫描页上的清除我的材料会立刻把它和 handoff 记录一起删掉。关闭标签页也会结束它,不过浏览器自身的会话恢复功能,以及你自己复制或导出的副本,我们无法保证一并清除。存储的副本过期后,如果这个页面还开着,屏幕上的文本和结果会继续留着让你看完;过期的是那份刷新后还能恢复的副本。

公开页面使用 Plausible Analytics 统计访问量和产品操作。对于从岗位板进入扫描页这一步,操作事件会记录页面语言、从哪里进入,以及两个固定的状态词:CV 是随这次点击带来的、本来就在这个标签页里,还是仍然需要;职位描述是带过来了,还是没带过来以及没带过来的具体原因。这些事件不会带上 CV 文本、JD 文本、岗位名称、雇主名称、职位链接或域名、扫描结果或邮箱。

会发送给模型供应商的内容

免费扫描会发送你粘贴的 CV 文本,或从 PDF/TXT 提取出的文字、你粘贴的 JD 文本、结果语言指令,以及要求模型输出结论、缺失证据、风险表述、一个改写示例和下一步的产品提示词。浏览器解析后,我们不会再发送原始文件,也不会发送支付卡信息。

我们自己存储的内容更窄:免费扫描不存 CV 内容、不存 JD 内容、不存扫描 markdown,也不建立账号记录。一次成功扫描在我们的键值存储里只留下这些字段:一个匿名 order ID 和时间戳;毫秒延迟和美元成本估算;页面语言和输入模式;如果你用了扫描前那两个可选下拉,还有你的层级和目标赛道;三个改写控制项和它们的来源,以及旧版缓存页面发来的滑块坐标换算出的两个整数百分比;结果部分是结论词、0 到 100 的匹配分、算分走的哪条路径,以及各维度的分项得分。如果在生成 order ID 后,服务要为供应商、网络或流式传输故障写入失败记录,那条记录只含 order ID、时间戳和一个错误类别值。如果你回答了结果之后的可选问题,同一个匿名 order ID 下还会多出一条记录,存的是你的求职状态、最近 30 天投了多少份,以及你觉得最难的是什么。上面提到的选择、控制项、算分路径和错误字段,都是固定选项里的值。延迟、匹配分、各维度得分和旧版页面的两个百分比,只要有值就是整数;其余字段是系统生成的标识、时间戳和数字成本数据。这些字段都装不下 CV 文本、JD 文本或其他自由文本,也都不会和你的 CV 或 JD 关联。

为了让免费扫描保持可用,每个连接每天最多计 50 次免费扫描尝试,UTC 零点重置。请求通过输入检查后、调用模型之前,计数器就会加一,所以后面失败的尝试也会计入。如果那一栏里只有一条链接,会在计数器加一之前就被拒绝,不会消耗你的额度。计数器的 key 是连接 IP 加盐 SHA-256 哈希的前 16 位,只存一个数字,48 小时内过期。因为 key 被截断,互不相关的地址偶尔也会共用一个计数器;如果你用的是学校或公司的共享 wi-fi,这个计数器是和同一个出口地址后面所有人共用的。响应使用 HTTPS 和 cache-control: no-store

还有谁会经手你的数据

除了上面的模型供应商,下面这些公司也会在提供相应服务时收到数据。

  • Cloudflare 承载网站、扫描函数、岗位服务和付费深挖引擎。这些 First Landed 服务跑在 Cloudflare 上。
  • Stripe 负责结账。卡号是你在 Stripe 自己的页面上输入的,我们看不到,也不保存。我们发给 Stripe 的是金额、币种、产品名称、你买的是哪个 pack 和哪一档,以及你已登录时我们内部的账号 ID。访客结账时,Stripe 会把你付款用的邮箱回传给我们,那个邮箱就是你的登录邮箱。
  • Resend 负责发登录邮件。它会收到你的邮箱地址、登录链接,以及发送邮件所需的投递信息。不含 CV 文本、JD 文本或结果。
  • Cloudflare Turnstile 用来确认索取登录链接的是真人。登录页会加载它的脚本,这时它会收到普通网页请求信息。你提交表单时,Turnstile 令牌和你的连接 IP 还会发到 Cloudflare 的校验接口。Turnstile 只出现在登录页,免费扫描页没有。
  • Fontshare 和 Google Fonts 提供网页字体;使用这些字体的页面加载时,它们会收到你的 IP 和浏览器信息。jsDelivr 提供 PDF 阅读程序;你打开 PDF 时,它会收到同类网络信息。它们都拿不到你的 CV、JD 或结果。
  • Plausible Analytics 统计访问量和产品操作,细节见上文。

浏览器端 portal 预填

当你从已完成的免费扫描启动付费结算时,浏览器会把 CV 文本和 JD 文本保存为 fl_handoff_cvfl_handoff_jd。带时间戳的副本保存在 localStorage,让你从邮件登录链接的新标签页打开 portal 时仍可预填;同一标签页也会在 sessionStorage 保留副本。这个浏览器存储步骤本身不会把文本发送到我们的服务器。

付款并登录后,新审核页面会读取快照来预填付费审核表单,然后删除这些 handoff keys。Portal 只接受七天内的 localStorage 快照;更旧的快照会在下次打开该页面时删除。关闭标签页会清除 sessionStorage 副本。在 portal 读取、新扫描覆盖,或你清除本站浏览器数据之前,本地副本可以在浏览器重启后继续存在。

只有当你提交预填后的付费审核表单时,CV 和 JD 才会发送到付费审核流程。

可选邮箱留存

如果你在扫描结果页填写邮箱,或者在 JD 拆解结果里加入 CV Foundation 等候名单,我们会把该邮箱、时间戳、页面语言,以及你加入的是哪一个名单写入 Cloudflare KV,用来在对应功能上线时联系你。这是自愿加入等候名单。我们不会把 CV 文本、JD 文本、扫描 markdown、付款数据或模型输出附加到 subscriber 记录里。

你可以发邮件到 [email protected] 要求删除这些 subscriber 记录。

删除请求

你可以联系 [email protected] 要求删除已提交材料。除非付款、防欺诈或法律记录需要保留,我们会删除 beta 工作文件。

退款政策

结账和交付都是自助的。已登录的买家会直接回到 portal,但 credit 要等我们的 Stripe webhook 处理完付款确认才会出现,所以页面可能先跳回来。访客购买时,我们会在这次 webhook 里加入 credit,然后发送登录链接。

如果一次深挖最终因安全问题被拦下(blocked_safety)、因无法安全解析而停止(blocked_parse_failure),或因模型阶段没跑完而失败(system_failed),引擎会自动释放预留的 credit,你可以把它用于另一次深挖。如果最终状态是需要更多证据(needs_user_evidence),credit 会继续被占用;目前没有自助方式可以释放或重新使用这个 credit。释放 credit 不是退钱。

要退钱,请在付款后 14 天内,用你付款的那个邮箱发信到 [email protected],说明出了什么问题。没用掉的 credits 我们退。如果你拿到的 pack 和本站描述的不一样,或者明显低于这里写的水准,我们退,不管这个 credit 有没有用掉。退款由我们手动通过 Stripe 原路退回,一般两个工作日内回复。我们不提供改稿或返修;产品就是你跑出来的那份深挖。

求职结果不作保证。面试和 offer 取决于你和雇主。

你的责任

提交前,你需要审核最终措辞,并确认每一个 claim 都准确,也能在面试中说清楚。引擎的设计目标是保持 claim 真实,但提交材料的最终责任仍然属于你。

问题、删除请求或退款请求:[email protected]