OpenAI 招聘体感和大厂不一样。它没有统一题库,也很少先发 HackerRank 链接,更多是「recruiter 短信约时间 → 给一份带时间窗口的 take-home → 通过后约 live coding」。这篇文章把 OpenAI OA 的真实链路、不同岗位线的题型差异、以及 OA辅助 在 take-home 与 live coding 两种形态下的对接方式说清楚。

整体节奏:4 个阶段、6-8 周
W0 Recruiter 邮件 / LinkedIn 约 30min intro chat
W1 Recruiter 介绍 OA 形态 → 发出 take-home / 邀请 live OA
W2 72h take-home 窗口 / 60min live OA
W3 通过 → 约 first technical round(45-60 min live coding)
W4 team match / virtual onsite 4-5 轮
W6 debrief → offer
OpenAI 整体周期偏快,特别是 ML Engineer 与 Infra 岗位线,从第一封邮件到 onsite 经常压缩到 4 周内。OA 阶段反而是窗口期最紧的一环 —— take-home 通常只给 72 小时,live OA 只有一次机会。
三大岗位线的 OA 差异
OpenAI 的 OA 不是按 level 分发,而是按 岗位线:
| 岗位线 | 主流 OA 形式 | 题型重点 | 典型耗时 |
|---|---|---|---|
| Member of Technical Staff (MTS, ML/Infra) | take-home + 1 live | 系统设计实现题 + 性能调优 | 6-10 小时 |
| Software Engineer (Product / Platform) | live OA on shared editor | 数据结构 + API 模拟 | 60-90 分钟 |
| Research Engineer | take-home(研究方向) | 论文复现 + 实验代码 | 1-2 天 |
| Applied AI / Solutions | live OA + case | LLM 流程编排 + prompt 设计 | 60 分钟 |
| Infrastructure / Reliability | take-home(系统题) | Linux / 网络 / 分布式实现 | 4-8 小时 |
参考站内已有具体题解:
这些题都是 MTS / SDE 线的真实 OA 题,特点是「比 LeetCode 实现量大 3-5 倍,但单点算法不难」。
Take-home 的核心评分维度
OpenAI take-home 不像 Airbnb 给 5 天,通常只有 72 小时。评分主要看四点:
1) 完整可运行
reviewer 第一步是 make test / python main.py,跑不通直接挂。Submit 前必须自检:
- 不依赖个人本地路径
- README 里给出最小运行命令
- 测试用例至少覆盖 happy path + 2 个 edge case
2) 正确性 + 边界
OpenAI 出题人喜欢隐藏 corner case。常见陷阱:
- 浮点除法 → 0 / NaN
- 空输入 → IndexError
- 大输入 → memory 爆炸(特别是 spreadsheet / memory manager 这种系统题)
3) 代码组织与可读性
- 单文件不超过 400 行
- 类 / 函数职责单一
- 命名能让 reviewer 30 秒内看懂
4) 性能与扩展性
- 时间复杂度需要在 README 里明示
- 大输入下不能 O(n²)
- 数据结构选择要有理由(写在 comment 或 README)
Live OA:60 分钟的工程节奏
OpenAI live OA 通常用 CoderPad 或 Codespaces,60 分钟一道大题 + 多个 follow-up。最怕两件事:
怕一:上来就写代码
OpenAI 面试官期待你 先聊 5-10 分钟设计:输入输出、数据结构选型、复杂度上限。直接 typing 会被记一笔 "didn't clarify before coding"。
怕二:忽略测试
题目本身只能 AC 70% 测试用例就算合格,但 follow-up 几乎都涉及「再加一个需求 / 改一个数据结构 / 优化某段」。提前留 10-15 分钟做测试与重构,比一开始全速 typing 通过更高。
# OpenAI live OA "spreadsheet 公式求值" 推荐起手模板
class Spreadsheet:
def __init__(self):
self.cells: dict[str, str] = {} # 原始公式或值
self.cache: dict[str, float] = {} # 求值结果
def set_cell(self, key: str, expr: str) -> None:
self.cells[key] = expr
self.cache.clear() # 简单起步:全清,后续讨论增量更新
def get_cell(self, key: str) -> float:
if key in self.cache:
return self.cache[key]
# 递归求值 + 循环检测留给 follow-up
...
写出这个骨架 → 跑 happy path → 再讨论循环依赖 / 增量计算 / 错误处理 follow-up。这个节奏面试官最舒服。
OA辅助:take-home 和 live OA 两种节奏
oavoservice 的 OA辅助 在 OpenAI 上的对接分两种:
take-home 节奏
72h 窗口期内,分三段介入:
- 0-2h:拿到题目立刻同步给我,做题型识别 + 评分维度对照
- 执行期:随时同步代码进度,遇到卡点 30 分钟内给方向
- 提交前 4h:完整代码 review + README 检查 + 测试用例补全
live OA 节奏
60 分钟一次性窗口,需要更密的实时辅助:
- 题目读完前 5 分钟:同步题面,给出题型判定与起手数据结构建议
- 设计阶段:辅助你和面试官的 clarifying 对话方向
- 写代码阶段:监听 typing 进度,在你打错或思路偏离时给出最短信号
- follow-up 阶段:提前推演 2-3 个常见 follow-up 并备好答案要点
FAQ
Q1: OpenAI 给我的不是 take-home 也不是 live OA,是 "design discussion",这是什么? A: 这是 Research Engineer / Applied AI 线常见形式。本质是 60 分钟的开放设计讨论,重点考察你能不能把 LLM-related 系统拆成可执行模块。准备方法和 system design 一致,但要有 ML 视角。
Q2: 我可以用 ChatGPT 自己做 take-home 吗? A: OpenAI 在面试 onboarding 邮件里明确写「we encourage you to use the tools you'd use day-to-day, including AI assistants」。但提交后的 follow-up 面试会让你 逐行解释自己的代码,所以"理解到能讲清楚"是底线。OA辅助 的角色是帮你「快速达到能讲清楚的水准」。
Q3: take-home 提交后多久知道结果? A: 一般 5-7 个工作日。OpenAI reviewer 是工程团队 rotation 评审,速度比专职 recruiter team 慢一点。
Q4: live OA 用什么 IDE? A: 多数岗位是 CoderPad(不能跑代码 / 只能跑代码视团队而定)。Research / Infra 偶尔用 Codespaces 或自家 sandbox。recruiter 会提前发链接,建议 OA 前一晚把环境点开试一次。
Q5: 面试用什么语言? A: Python 是默认选项。MTS / Infra 线允许 Go / Rust / C++。不要在 OA 现场切换语言 —— 选一个你 800 行内不会查文档的。
写在最后
OpenAI 的 OA 看起来灵活,实则评分维度非常清楚:跑通 + 正确 + 可读 + 可扩展。Take-home 占 72 小时窗口期,live OA 占 60 分钟,两种形态的 OA辅助 节奏完全不同。如果你正在准备 OpenAI 的 OA,可以微信 Coding0201 联系,把岗位线 + recruiter 邮件截图发过来,先做岗位线判定再排时间表。
需要面试真题? 立刻联系微信 Coding0201,获取真题。
联系方式
- 微信:Coding0201
- Email: [email protected]
- Telegram: @OAVOProxy