ZipRecruiter 是美國最大的 AI 招聘平台之一,SDE / ML Eng 團隊拆分到 Matching、Search、Recommendations、Trust & Safety 四條業務線。OA 題面多從招聘平台業務衍生:JD 關鍵字匹配、候選人技能圖推薦、文字去噪 / 標準化。
ZipRecruiter OA 概覽
| 維度 | 詳情 |
|---|---|
| 平台 | HackerRank / CoderPad |
| 時長 | 60–90 分鐘 |
| 題量 | 2–3 道(含 1 道偏字串) |
| 難度 | LC Medium 為主 |
| 評分 | 自動判題 + 隱藏 stress test |
主線一:JD 關鍵字匹配
import re
def match_skills(jd, skills):
norm = jd.lower()
text = re.sub(r'[^a-z0-9+/# ]', ' ', norm)
tokens = set(text.split())
found = []
for s in skills:
ks = s.lower()
ks_alt = ks[:-1] if ks.endswith('s') else ks + 's'
if ks in tokens or ks_alt in tokens:
found.append(s)
return found
注意:「c++」、「c#」要保留特殊字元,所以正規要謹慎。
主線二:技能圖推薦
from collections import deque, defaultdict
def min_learn(skills_graph, owned, required, theta):
adj = defaultdict(list)
for u, v, w in skills_graph:
if w >= theta:
adj[u].append(v)
adj[v].append(u)
def closure(seed):
seen = set(seed)
q = deque(seed)
while q:
x = q.popleft()
for y in adj[x]:
if y not in seen:
seen.add(y)
q.append(y)
return seen
have = closure(owned)
missing = [r for r in required if r not in have]
learned = 0
while missing:
best, best_gain = None, -1
for s in adj:
if s in have:
continue
gain = len(closure(list(have) + [s]) & set(missing))
if gain > best_gain:
best, best_gain = s, gain
if best is None or best_gain <= 0:
return -1
have = closure(list(have) + [best])
missing = [r for r in required if r not in have]
learned += 1
return learned
暴力貪心是 O(V² · E),能過 V ≤ 200 的樣例;進階版要求 set cover 近似演算法。
主線三:文字去噪 / 標準化
import re
PREFIX = {'sr.': 'Senior', 'jr.': 'Junior', 'sr': 'Senior'}
def normalize_title(t):
t = re.sub(r'\s+', ' ', t.strip())
parts = re.split(r'[–\-]', t, maxsplit=1)
head, tail = parts[0].strip(), parts[1].strip() if len(parts) > 1 else ''
paren = re.findall(r'\(([^)]+)\)', head)
head_clean = re.sub(r'\s*\([^)]+\)\s*', ' ', head).strip()
words = head_clean.split()
out = []
for w in words:
out.append(PREFIX.get(w.lower(), w.title()))
return {
'title': ' '.join(out),
'modifier': [p.strip() for p in paren],
'location': tail,
}
一畝三分地高頻題速查
| 題型 | 頻率 | 核心模板 |
|---|---|---|
| JD 關鍵字匹配 | ★★★★★ | 正規 + 集合 + 簡單變體 |
| 技能圖推薦 | ★★★★ | BFS closure + 貪心 |
| 履歷標準化 | ★★★★ | re.split + 字典對映 |
| Trie 自動補全 | ★★★ | Trie + DFS |
| LRU / Top-K | ★★★ | LinkedHashMap / heapq |
VO輔助 實戰路徑
針對 ZipRecruiter SDE 這種「業務向 + 字串重 + 自動判題嚴」的特點:
- OA輔助:當天思路核對 + 邊界 case 複盤
- VO輔助 mock:mentor 出 4–5 輪 onsite,針對 search 系統設計、ML pipeline 等 ZipRecruiter 風格題
- VO代面:當天即時輔助
- 行為面劇本:ZipRecruiter 重視 "Bias for Action"、"Customer Obsession"
加微信 Coding0201 溝通方案與報價。
從字串題翻車到順利通過 ZipRecruiter OA
這次很高興幫這批同學順利通過 ZipRecruiter SDE OA。很多同學反饋,字串題看著 LC Easy,但 ZipRecruiter 的隱藏測試涵蓋了 emoji、unicode、複數變體、HTML 標籤 等多種現實資料噪聲,光刷 LC 完全不夠用。
如果你也在準備 ZipRecruiter、LinkedIn、Indeed、Greenhouse 這類招聘平台 SDE 的 OA / VO,感覺一個人複習字串邊界 + 業務包裝方向模糊,歡迎聯絡 oavoservice。我們會根據你的具體水平和弱點,提供專業的 OA / VO 實戰輔助服務和一對一 VO輔助 指導。
FAQ
ZipRecruiter OA 必須用什麼語言?
可選 Python / Java / Go / TypeScript。社區面經反饋:~75% 候選人用 Python(字串處理順)。
Matching team 和 Search team 的 OA 一樣嗎?
題型主線一樣,但 Matching 偏 ML pipeline + 推薦圖,Search 偏倒排索引 + 排序信號。兩者都會給一道字串題。
ZipRecruiter VO 幾輪?
通常 4–5 輪:1 演算法 + 1 系統設計 + 1 ML / data + 1 行為 + 1 HM。
OA 沒過冷卻期?
通常 6 個月。Matching / Search / T&S 三條線 OA 池子是分開的,可以更早換職位再投。
正在準備 ZipRecruiter SDE OA / VO?
👉 立即加微信:Coding0201,獲取 ZipRecruiter 高頻題與 VO輔助 方案。
聯絡方式
Email: [email protected]
Telegram: @OAVOProxy