← All Thoughts← 所有思考
BA / DA Job Automation · Shadow MVP
BA / DA 求职自动化 · Shadow MVP

The Best Automation Knows When to Stop

好的自动化,知道什么时候该停下来

How I connected a private bilingual resume assistant with a safety-first application workflow—reducing each targeted remote BA/DA application from 20–30 minutes to under five minutes of attention.

我如何把私人双语简历助手与安全优先的申请流程连接起来,将每次远程 BA/DA 定向投递从 20–30 分钟缩短到 5 分钟以内。

JUL 2026 · CHLOE XU2026年7月 · CHLOE XUAI ProductDecision RulesHuman-in-the-loopAuditabilityAI 产品决策规则人在回路可审计性
A safety-first job review pipeline filtering job postings into pass, review, and stop paths behind a human approval gate
The system can discover, filter, explain, and prepare. It cannot quietly cross the boundary into submission.
系统可以发现、筛选、解释与准备,但不能悄悄跨过提交边界。

My experience does not fit neatly into one recruiting label—and that is both a strength and a practical job-search problem.

My work spans finance, sales operations, business analysis, business intelligence engineering, data analytics, analytics engineering, semantic layers, and ontology-focused AI research. I have worked across traditional manufacturing, trading, procurement, logistics, cloud computing, and FinTech. The same project can be relevant to several roles, but the language that makes that relevance visible changes with the job.

我的职业经历很难被一个招聘标签完整概括——这是优势,也是求职中的实际问题。

我的工作背景横跨财务、Sales Operations、Business Analysis、Business Intelligence Engineering、Data Analytics、Analytics Engineering、Semantic Layer,以及以 Ontology 为重点的 AI Research;行业经历也涉及传统制造、商贸、采购、物流、云计算与 FinTech。同一个项目可以适配多个岗位,但如何让招聘系统看见这种关联,取决于简历里非常细微的用词。

FinanceSales OperationsBABIEDAAnalytics EngineeringSemantic LayerOntology AIManufacturingProcurementLogisticsCloudFinTech
财务Sales OperationsBABIEDAAnalytics EngineeringSemantic LayerOntology AI制造业采购物流云计算FinTech

A finance analytics role may need me to foreground cost allocation and profitability. A sales operations role may care more about pipeline coverage, territory planning, and Salesforce. An analytics engineering role may look for semantic modeling, canonical metrics, and governed data products. Reusing one generic resume would flatten a career whose value comes from connecting these domains.

For a multidisciplinary career, resume tailoring is not cosmetic rewriting. It is context selection: choosing the most truthful vocabulary for the problem the company is hiring someone to solve.

Chloe Resume Tailor solved the quality problem

I first built Chloe Resume Tailor inside ChatGPT MyGPT. It is a private bilingual assistant using the creator-recommended GPT-5.5 Thinking model. Given a job-description link, it researches the company and role, scores my fit with weighted criteria, recommends whether I should apply, identifies wording changes, and generates a polished targeted English resume and Word version.

The assistant works from a verified Career Project Bank and a resume style guide. It knows, for example, when to emphasize logistics profitability, finance controls, AWS partner sales analytics, workforce planning, or semantic-layer ownership—and it is instructed not to invent experience or mechanically copy proprietary JD language.

But a good assistant still left me with a workflow problem

For one role, the sequence was manageable: open the JD, request the analysis, review the score, inspect the suggested positioning, generate the tailored resume, check the Word file, then complete the application manually. It took roughly 20–30 minutes of continuous attention.

After applying to only a few companies, an entire morning could disappear. The deeper problem was not just elapsed time. I could not comfortably do anything else because every step depended on the previous one and required me to stay in the loop continuously.

Finance Analytics 岗位可能要求突出 Cost Allocation 与 Profitability;Sales Operations 更关注 Pipeline Coverage、Territory Planning 与 Salesforce;Analytics Engineering 则寻找 Semantic Modeling、Canonical Metrics 与 Governed Data Products。重复使用一份通用简历,会抹平这段职业经历真正有价值的地方——连接不同业务世界的能力。

对于跨领域职业背景,简历定制并不是表面上的改写,而是上下文选择:为招聘公司正在解决的问题,选择最准确、最诚实的表达方式。

Chloe Resume Tailor 先解决了质量问题

我先在 ChatGPT MyGPT 中制作了自己的 Chloe Resume Tailor。它是一个私人双语简历助手,使用 Creator 推荐的 GPT-5.5 Thinking 模型。只要提供 JD 链接,它就会研究公司与岗位、通过加权标准计算 Match Score、给出是否投递的建议、识别需要调整的简历用语,并生成专业的英文定制简历与 Word 版本。

这个助手以经过核实的 Career Project Bank 和 Resume Style Guide 为依据。它知道什么时候应该强调物流利润分析、财务控制、AWS Partner Sales Analytics、Workforce Planning 或 Semantic Layer Ownership;同时也被明确要求不能虚构经历,不能机械复制公司特有的 JD 用语。

但一个好助手仍然留下了流程问题

面对一个岗位,这套顺序本身并不困难:打开 JD、请求分析、审核 Match Score、检查定位建议、生成定制简历、检查 Word 文件,然后手动完成申请。但每次都需要大约 20–30 分钟连续操作。

有时只投几家公司,一个上午就过去了。更深的问题不只是总时长,而是每一步都依赖前一步,我必须持续跟着流程,期间很难安心去做其他事情。

20–30 mincontinuous attention per application
< 5 minlight, interruptible human control
20–30 分钟每次申请都需要连续注意力
< 5 分钟轻量、可中断的人工掌控

The application connected the decisions

I built the BA/DA Job Application Automation to turn those separate interactions into a single reviewable flow. The current version is intentionally limited to Business Analyst and Data Analyst roles because their job descriptions and expected capabilities overlap enough to support one bounded policy, matching, and resume-routing system.

Within that scope, it discovers official Greenhouse roles, applies deterministic eligibility rules, records evidence and reason codes, routes the correct BA or DA resume, and prepares the next decision for me instead of making me shepherd every transition.

The result is not a fully autonomous application bot. I still review the company, approve company-specific additional questions, complete the email verification commonly required by Greenhouse, and handle any step that should not be delegated to software. I also retain control over final submission. But my active time falls below five minutes—and, more importantly, that attention no longer needs to be continuous.

I did not automate myself out of the process. I automated the need to babysit the process.

Application 把这些分散的决策连接了起来

我开发 BA/DA Job Application Automation,是为了把原本分散的互动变成一条可以审核的流程。目前这个版本只针对 Business Analyst 和 Data Analyst 类岗位,因为这两类岗位的 JD 与能力要求十分相似,适合先用一套边界清晰的 Policy、Match 与 Resume Routing 体系处理。

在这个范围内,它发现官方 Greenhouse 职位、执行确定性资格规则、记录证据与 Reason Code、选择正确的 BA 或 DA Resume,并把下一项需要判断的内容准备好,而不是让我亲自推动每一次流程切换。

它并不是一个完全自主的 Auto-apply Bot。我仍然会审核公司、批准每家公司特有的附加问题、完成 Greenhouse 通常要求的邮箱验证,并亲自处理那些不应该交给软件代办的步骤;最终投递也仍然由我掌控。但我的实际操作时间缩短到 5 分钟以内;更重要的是,这几分钟不再需要连续投入。

我没有把自己从流程中自动化掉。我自动化掉的是“必须一直盯着流程”的负担。
01

Discover

Find official BA/DA roles.

02

Evaluate

Apply shared BA/DA eligibility rules.

03

Prepare

Store evidence, route the resume, surface questions.

04

Human Gate

Approve questions, Greenhouse email verification, and submission.

01

发现

寻找官方 BA/DA 职位。

02

评估

执行共用的 BA/DA 资格规则。

03

准备

保存证据、匹配 Resume、呈现问题。

04

人工关口

批准附加问题、Greenhouse 邮箱验证与最终投递。

Uncertainty is a product state

A remote label may omit the eligible country. “Occasional travel” may omit the percentage. Compensation may mean base salary, OTE, or total rewards. A system that converts all of those into yes or no is not decisive; it is hiding missing context.

不确定性本身就是一种产品状态

“Remote” 可能没有说明适用国家;“Occasional travel” 可能没有具体比例;Compensation 可能指 Base Salary、OTE 或 Total Rewards。把这些信息强行压成 Yes 或 No,并不是果断,而是在隐藏缺失的上下文。

PASS

The evidence satisfies every hard rule.

NEEDS REVIEW

A relevant fact is missing, ambiguous, or conflicting.

FAIL / BLOCKED

A rule is violated or the workflow reaches a protected boundary.

PASS

证据满足所有硬规则。

NEEDS REVIEW

相关事实缺失、模糊或互相冲突。

FAIL / BLOCKED

违反规则,或流程触及受保护边界。

That middle state changed the product. Instead of pretending to know, the system can say what it found, what it could not establish, and why a person must decide. Conservative classification is not a fallback here; it is the trust mechanism.

Personal preferences become testable policy

“Find good roles for me” sounds intuitive to a person and is unusable as a product requirement. I had to turn preferences into explicit, versioned policy.

这个中间状态改变了产品。系统不再假装知道,而是可以说明:找到了什么、无法确认什么、为什么必须交给人判断。在这里,保守分类不是失败策略,而是信任机制。

把个人偏好变成可测试的政策

“帮我找合适的岗位”对人来说很自然,对产品需求却几乎不可执行。我必须把偏好转化成明确、可版本化的 Policy。

title
Only six exact BA/DA title variants pass; “Business Systems Analyst” is not silently treated as “Business Analyst.”
remote scope
Remote must be positively confirmed for the United States or Washington—not inferred from the word alone.
employment
Full-time permanent roles pass; contract duration, travel, and relocation have explicit boundaries.
compensation
Annual base and hourly contract pay are evaluated separately; OTE and unclear figures require review.
history
Requisition ID, canonical URL, description hash, and company cooldown reduce duplicate applications.
职位名称
只允许六个精确 BA/DA 职位变体;不会把 “Business Systems Analyst” 偷偷当成 “Business Analyst”。
远程范围
必须明确确认适用于美国或华盛顿州,不能只凭 “Remote” 一词推断。
雇佣类型
全职长期岗位通过;合同期限、出差与搬迁都有明确边界。
薪资
年度 Base 与时薪合同分别判断;OTE 与含义不明的数字进入人工审核。
历史记录
通过 Requisition ID、Canonical URL、描述哈希与公司冷却期降低重复投递风险。

Once the policy became code, it also became testable. Boundary cases—90% remote, a six-month contract, a salary exactly at the threshold, a changed resume hash—could be named and verified. The product no longer depended on a vague prompt remembering my preferences.

PREFERENCE → POLICY → EVIDENCE → DECISION → AUDIT EVENT

Trust needs provenance, not just a score

A match score cannot tell me whether a decision came from the title, location, salary, authorization language, or a missing fact. Each evaluation therefore stores a status, reason codes, evidence quotes, the rule version, and a timestamped audit event.

This makes a decision inspectable and reproducible. If I later change a threshold, I can distinguish a new policy from a silently changed model judgment. The local SQLite database becomes the system of record; the dashboard and reports are only views of the same history.

The action boundary should be designed first

Every future submission path must pass one centralized gate. Shadow mode and a global kill switch prevent unapproved action. Non-passing rules, unanswered company-specific questions, Greenhouse email verification, CAPTCHA or MFA, missing human confirmation, and the daily cap each create an explicit stop reason. In the current MVP, no live submitter can bypass that review boundary.

A safety control is strongest when the architecture makes bypass difficult—not when a prompt merely asks the model to be careful.

当 Policy 成为代码,它也就变得可测试。90% Remote、六个月合同、刚好等于薪资阈值、Resume 哈希发生变化——这些边界都可以被命名和验证。产品不再依赖一个模糊 Prompt 去“记住”我的偏好。

偏好 → 政策 → 证据 → 决策 → 审计事件

信任需要来源,而不只是一个分数

一个 Match Score 无法告诉我:决定来自职位名称、地点、薪资、Authorization 文本,还是某项事实缺失。因此,每次评估都保存 Status、Reason Code、证据引用、规则版本与带时间戳的 Audit Event。

这样,决策才可以被检查和复现。如果之后调整阈值,我能够区分“政策发生变化”与“模型判断悄悄漂移”。本地 SQLite 是事实系统,Dashboard 与 Report 只是同一段历史的不同视图。

应该先设计行动边界

所有未来提交路径都必须经过同一个中央 Gate。Shadow Mode 与 Global Kill Switch 会阻止未经批准的动作;硬规则未全部通过、公司附加问题尚未回答、需要 Greenhouse 邮箱验证、遇到 CAPTCHA/MFA、缺少人工确认或达到每日上限,都会产生一个明确的停止原因。在当前 MVP 中,没有任何 Live Submitter 可以绕过这条人工审核边界。

最强的安全控制,不是 Prompt 提醒模型“小心一点”,而是让架构本身难以绕过边界。

A small architecture with explicit responsibilities

I kept the application dependency-free and separated discovery, policy, application preparation, storage, notifications, and reporting. This makes the boundaries visible: a connector can discover a job, but it cannot change a policy decision; a report can explain history, but it cannot submit an application.

规模不大,但职责明确的架构

我让 Application 保持零运行时依赖,并将职位发现、Policy、申请准备、存储、通知与报告分开。这样,每条边界都清晰可见:Connector 可以发现职位,却不能改变 Policy 决策;Report 可以解释历史,却不能提交申请。

Reports turn automation into a reviewable history

The workflow should not disappear after it runs. Every evaluated job is stored in the local SQLite system of record with its decision, evidence, reason codes, and rule version. Reports then translate that history into formats I can actually review.

Reports 让自动化留下可以复盘的历史

流程运行结束后,不应该连同它的判断一起消失。每个被评估的职位都会进入本地 SQLite 事实系统,保存 Decision、Evidence、Reason Code 与 Rule Version;Reports 再把这段历史转化成我真正可以检查的形式。

History

Application CSV

A portable record for sorting, filtering, and reviewing application history across dates and companies.

reports/application_history.csv
Daily Brief

Markdown Summary

A dated view of what passed, failed, or needs intervention, written for quick human review.

reports/daily/YYYY-MM-DD.md
Live Review

Local Dashboard

A queue showing status, company, role, location, official source, and the reasons behind each decision.

Local review queue
历史记录

申请历史 CSV

一个便于排序、筛选和跨日期、跨公司复盘申请历史的可移植记录。

reports/application_history.csv
每日摘要

Markdown Report

按日期汇总哪些职位通过、失败或需要介入,方便快速人工审核。

reports/daily/YYYY-MM-DD.md
即时审核

本地 Dashboard

展示 Status、公司、职位、地点、官方来源,以及每项决策背后的原因。

本地审核队列

Reports also make silence meaningful. A skipped role is not simply absent; it has a reason. A repeated job is recognized through historical identifiers. A change in policy is visible through its rule version. The result is not merely a list of applications, but a trace of how each decision was made.

Reports 也让“没有投递”变得有意义。一个被跳过的岗位不会只是消失,而会留下原因;重复职位会通过历史标识被识别;Policy 的变化会通过 Rule Version 留下记录。最终得到的不只是一张申请清单,而是每次决策如何产生的轨迹。

01

Deterministic rules before AI ranking

LLMs can help interpret language later, but they should not override non-negotiable eligibility policy.

02

Local context is part of the product

Resume versions, application history, sensitive answers, and approvals need governed storage—not an ever-growing prompt.

03

Human review needs good explanations

A queue is useful only when it shows the evidence and the unresolved question, not just a colored badge.

04

Human-in-the-loop can feel better than full autonomy

Approving company-specific questions and completing Greenhouse email verification gives me meaningful control without forcing me to remain continuously attached to the workflow.

01

先有确定性规则,再谈 AI 排序

LLM 以后可以帮助解释语言,但不应覆盖不可妥协的资格政策。

02

本地上下文本身就是产品的一部分

Resume 版本、申请历史、敏感答案与审批记录需要受治理的存储,而不是不断膨胀的 Prompt。

03

人工审核需要好的解释

只有当队列展示证据与未解决问题,而不只是彩色标签时,它才真正有用。

04

Human-in-the-loop 可能比完全自主更舒服

批准公司特有问题并完成 Greenhouse 邮箱验证,让我保留真正有意义的掌控,同时不必持续黏在整个流程上。

Building this product changed my definition of automation. The goal is not zero human involvement. It is to make human involvement brief, well-timed, and consequential.

Chloe Resume Tailor helps me express a complex career accurately for one role. The application helps me carry that quality through a repeatable workflow. Together they save time without trading away context, consent, or accountability.

这个产品改变了我对自动化的定义。目标不是让人的参与变成零,而是让人的参与变得短暂、及时,而且真正重要。

Chloe Resume Tailor 帮助我针对一个岗位准确表达复杂的职业经历;Application 则把这种质量带入可重复的流程。两者结合,节省了时间,却没有牺牲上下文、同意与责任。

Written by Chloe Xu · More notes at Thoughts.
作者:Chloe Xu · 在 Thoughts 阅读更多。