在准备求职的过程中,很多同学会忽略 OA 的重要性。实际上,对大多数互联网公司而言,OA 是筛选简历后真正的第一关。如果没能顺利通过 OA,即使简历再亮眼也很难进入面试环节。最近我整理了一份 ZipRecruiter OA 面经,不仅涵盖了流程介绍,还包含了具体真题和题解,给大家一个更直观的参考。
相比一些传统的 OA,ZipRecruiter 的考察点更加偏向实际应用场景,既有算法编程题,也会涉及 SQL、数据处理和逻辑思维类的考察。整体难度中等,但时间限制比较紧,对思路清晰度和熟练度要求较高。

OA 流程概览
ZipRecruiter 的 OA 一般由第三方平台发出,包含以下几个环节:
- Coding Challenge
- 2 道编程题,时长 45 分钟左右
- 题目类型偏基础数据结构与算法,涉及 string、array、hashmap 的操作
- Logic / Numerical Reasoning
- 大约 8–10 道题,时长 20 分钟
- 内容包括表格数据推理、数字规律、逻辑判断
- Work Simulation(工作场景模拟)
- 给出招聘/推荐系统的业务场景,考察如何处理用户需求和数据指标
- 属于 situational judgment test
整体时长在 70–90 分钟,系统会自动监控 tab 切换次数,建议大家一次性坐下认真完成。
OA 真题回忆
以下是真题回忆,题干和解答部分全部用英文呈现,方便大家直观理解:
Question 1: String Transformation
Problem:
Given a string s, return the minimum number of character deletions required so that no two adjacent characters are the same.
Example:
- Input:
"aab" - Output:
1(delete one'a')
Solution:
We can iterate through the string and count how many times consecutive characters are the same.
def minDeletions(s: str) -> int:
deletions = 0
for i in range(1, len(s)):
if s[i] == s[i-1]:
deletions += 1
return deletions
Question 2: Job Application Counter
Problem:
You are given a list of job applications in the form of (user_id, job_id). Return the number of unique jobs each user has applied to.
Example:
- Input:
[(1, 101), (1, 102), (2, 101), (1, 101)] - Output:
{1: 2, 2: 1}
Solution:
We can use a dictionary with sets to track unique job applications per user.
from collections import defaultdict
def countApplications(applications):
user_jobs = defaultdict(set)
for user, job in applications:
user_jobs[user].add(job)
return {user: len(jobs) for user, jobs in user_jobs.items()}
Question 3: Numerical Reasoning
Problem:
If 5 recruiters can review 200 resumes in 4 hours, how many recruiters are needed to review 500 resumes in 5 hours?
Solution:
- Rate: 200 resumes / (5 recruiters * 4 hours) = 10 resumes per recruiter per hour
- Requirement: 500 resumes / 5 hours = 100 resumes per hour
- Recruiters needed: 100 / 10 = 10 recruiters
Answer: 10
Question 4: Business Case (Work Simulation)
Scenario:
ZipRecruiter notices that many job seekers abandon the application process halfway. As a data scientist, how would you investigate and propose solutions?
Answer (outline):
- Analyze funnel data (click → start application → submit → interview invite).
- Identify drop-off stage (e.g., long forms, external redirects).
- Run A/B test with shorter forms or autofill features.
- Measure conversion improvement and user satisfaction metrics.
注意事项
- 时间分配:前面 coding 题可能花费较多时间,建议控制在 20–25 分钟内。
- 逻辑题:很多都是快算题,千万不要卡太久。
- Work Simulation:并没有标准答案,主要看逻辑合理性。
最后想说
整体来说,ZipRecruiter 的 OA 更像是一个综合能力测试,而不是单纯的算法考试。如果你只准备刷 LeetCode,可能会觉得有些不适应。建议大家在准备的时候:
- Coding 部分多练习 array/hashmap 题;
- 逻辑数值题可以刷一些 SHL 或 GMAT 题型;
- 业务场景要有招聘/推荐系统的 sense,答题时突出数据驱动和实验设计思维。
如果你近期也要准备 OA 或者想在最短时间内拿下目标 offer,Programhelp 团队可以提供全程远程助攻,帮你从题目解析到实战演练都做到心里有底。