OpenAI's process feels different from most big-tech funnels. There's no shared question bank, recruiters rarely send a HackerRank link cold — instead it's "recruiter texts you to schedule → time-windowed take-home → live coding". This guide walks the real chain, the role-line differences, and how the OA assist service plugs into both take-home and live OA formats.

Overall cadence: 4 stages, 6-8 weeks
W0 Recruiter email / LinkedIn → 30min intro chat
W1 Recruiter explains OA format → take-home dispatched / live OA invite
W2 72h take-home window / 60min live OA
W3 Pass → first technical round (45-60 min live coding)
W4 team match / virtual onsite (4-5 rounds)
W6 debrief → offer
OpenAI's overall cycle is fast, especially for ML Engineer and Infra tracks — first email to onsite often compresses into 4 weeks. The OA stage is actually the tightest window: take-homes are usually 72 hours, and a live OA gets one shot.
Three role lines, three different OAs
OpenAI does not dispatch OAs by level — it dispatches by role line:
| Role line | Common OA format | Question focus | Typical effort |
|---|---|---|---|
| Member of Technical Staff (MTS, ML/Infra) | take-home + 1 live | system implementation + perf tuning | 6-10 hours |
| Software Engineer (Product / Platform) | live OA on shared editor | data structures + API simulation | 60-90 min |
| Research Engineer | take-home (research-flavored) | paper reproduction + experiment code | 1-2 days |
| Applied AI / Solutions | live OA + case | LLM pipeline orchestration + prompt design | 60 min |
| Infrastructure / Reliability | take-home (systems-flavored) | Linux / networking / distributed impl | 4-8 hours |
Existing on-site references for real OA questions:
- OpenAI Spreadsheet Engine formula challenge
- OpenAI Memory Manager malloc/free implementation
- OpenAI Credits system design challenge
These are real MTS / SDE OA prompts. Their shared character: "3-5x more code volume than LeetCode, but each step is not algorithmically deep".
What take-home reviewers grade on
OpenAI take-homes are 72 hours, not Airbnb's 5 days. Reviewers grade on four axes:
1) Runs out of the box
Step one for the reviewer is make test or python main.py. If it doesn't run, you're out. Self-check before submission:
- No personal local paths
- README has a one-line run command
- Tests cover at least the happy path + 2 edge cases
2) Correctness + edge cases
OpenAI questions hide corner cases on purpose. Recurring traps:
- Float division → 0 / NaN
- Empty input → IndexError
- Large input → memory blow-up (especially in spreadsheet / memory-manager systems prompts)
3) Code organization & readability
- Single file under 400 lines
- Single-responsibility classes / functions
- Naming a reviewer can grok in 30 seconds
4) Performance & extensibility
- Time complexity stated in the README
- No O(n²) on large inputs
- Data-structure choices justified (in comments or README)
Live OA: a 60-minute engineering rhythm
Live OA usually runs on CoderPad or Codespaces, 60 minutes for one large problem plus follow-ups. Two common failure modes:
Failure 1: typing immediately
OpenAI interviewers expect you to spend 5-10 minutes on design first: input/output, data-structure choice, complexity bounds. Diving into code earns a "didn't clarify before coding" mark.
Failure 2: skipping tests
Hitting AC on 70% of test cases is enough to pass the question, but follow-ups almost always say "now add this requirement / swap this data structure / optimize this slice". Reserve 10-15 minutes for testing and refactoring — that yields a higher score than typing flat-out for the full hour.
# Recommended starting skeleton for "spreadsheet formula evaluation" live OA
class Spreadsheet:
def __init__(self):
self.cells: dict[str, str] = {} # raw formula or value
self.cache: dict[str, float] = {} # evaluated results
def set_cell(self, key: str, expr: str) -> None:
self.cells[key] = expr
self.cache.clear() # simple start: full invalidation; incremental update is a follow-up
def get_cell(self, key: str) -> float:
if key in self.cache:
return self.cache[key]
# recursive evaluation + cycle detection: leave for follow-up
...
Write the skeleton → hit happy path → discuss cycle detection / incremental compute / error handling as follow-ups. That cadence reads best to OpenAI interviewers.
OA assist: two cadences for two formats
Take-home cadence
Inside the 72h window, three checkpoints:
- 0-2h: send the prompt over immediately — we run question-type identification + rubric mapping
- Execution: code progress synced as you go; on stuck points we respond inside 30 min
- T-4h before submit: full code review + README check + test-case coverage pass
Live OA cadence
A one-shot 60-minute window, so live assist is denser:
- First 5 minutes after reading the prompt: prompt synced, we send back question-type tag and starting data structure
- Design phase: we steer the clarifying conversation with the interviewer
- Coding phase: we watch typing progress and signal the shortest correction when you drift
- Follow-up phase: we pre-stage 2-3 likely follow-ups so you're never cold
FAQ
Q1: OpenAI gave me a "design discussion" — not a take-home, not a live OA. What is this? A: Common for Research Engineer / Applied AI. It's an open 60-minute design discussion testing whether you can decompose an LLM-adjacent system into executable modules. Treat it like system design with an ML lens.
Q2: Can I use ChatGPT on a take-home? A: OpenAI's own onboarding email says "we encourage you to use the tools you'd use day-to-day, including AI assistants". The catch: post-submission interviews require you to walk through your code line by line, so "understood enough to defend" is the floor. The OA assist service helps you reach that floor fast.
Q3: How long until I hear back on a take-home? A: 5-7 business days. OpenAI reviewers are rotating engineers, not a dedicated recruiter team — slightly slower than typical pipelines.
Q4: What IDE for live OA? A: Most roles run on CoderPad (run-code support varies by team). Research / Infra sometimes use Codespaces or an internal sandbox. The recruiter sends the link in advance — open it the night before to sanity-check the environment.
Q5: Which language? A: Python is the default. MTS / Infra lines allow Go / Rust / C++. Do not switch language mid-OA — pick one you can write 800 lines in without reaching for docs.
Closing
OpenAI's OA looks flexible but the rubric is sharp: runs + correct + readable + extensible. Take-homes occupy a 72-hour window; live OA occupies 60 minutes; the OA assist cadences are completely different. If you're prepping for an OpenAI OA, message WeChat Coding0201 with your role line and recruiter email screenshot — we'll triage the role line and lay out the timeline first.
Need real-question intel? Reach out on WeChat Coding0201, request the question bank.
Contact
- WeChat: Coding0201
- Email: [email protected]
- Telegram: @OAVOProxy