Intuit 旗下 TurboTax / QuickBooks / Mint / Credit Karma 的 OA 是「take-home + SQL case + Karat 面試程式碼」三件套,DS 職和 SDE 職題型差異顯著但都偏「真實業務決策」而非純演算法。
Intuit OA 概覽(2026)
| 維度 | 詳情 |
|---|---|
| 平台 | Karat(live coding)+ self-hosted take-home |
| 時長 | take-home 24–48 小時 + Karat 1 小時 |
| 題量 | take-home 1 case + Karat 2–3 題 |
| 難度 | LC Medium 節奏 + 業務決策 |
| 評分 | 自動判題 + 業務結論品質 |
主線一:Take-home Case(DS 職)
題目
給一份 TurboTax 用戶行為 CSV(10 萬行),要求:
- EDA + 資料品質評估
- 提出一個 hypothesis 解釋「為什麼 H1 退稅申報轉化率比 H2 高 8%」
- 設計實驗驗證你的 hypothesis
import pandas as pd
def eda(df):
print(df.shape, df.dtypes)
print(df.isnull().sum().sort_values(ascending=False).head(10))
print(df.describe(include='all').T)
for col in ['half_year', 'is_returning', 'device', 'tax_year']:
rates = df.groupby(col)['filed'].mean()
print(col, rates.to_dict())
return df
主線二:SQL Business Case
WITH active_months AS (
SELECT
s.user_id,
s.plan,
DATE_PART('month', AGE(COALESCE(s.churned_at, CURRENT_DATE), s.started_at))
+ DATE_PART('year', AGE(COALESCE(s.churned_at, CURRENT_DATE), s.started_at)) * 12
AS months_active
FROM subscription s
WHERE s.started_at >= DATE '2025-01-01'
), revenue AS (
SELECT user_id, SUM(amount) AS total_rev
FROM charge
WHERE ts >= DATE '2025-01-01'
GROUP BY user_id
), per_user_ltv AS (
SELECT
a.plan,
a.user_id,
CASE
WHEN a.months_active = 0 THEN COALESCE(r.total_rev, 0)
ELSE COALESCE(r.total_rev, 0) / a.months_active * LEAST(a.months_active, 12)
END AS ltv12
FROM active_months a
LEFT JOIN revenue r ON a.user_id = r.user_id
)
SELECT plan, AVG(ltv12) AS ltv_avg, COUNT(*) AS n
FROM per_user_ltv
GROUP BY plan
ORDER BY ltv_avg DESC;
關鍵點:AGE 轉月數 + LEAST(months_active, 12) 截斷到 12 月視窗 + 處理 NULL。
主線三:Karat Live Coding(SDE 職)
def validate_tax_fields(form):
rules = {
'income': lambda v: isinstance(v, (int, float)) and v >= 0,
'ssn': lambda v: isinstance(v, str) and len(v) == 11 and v[3] == '-' and v[6] == '-',
'filing_status': lambda v: v in {'single', 'mfj', 'mfs', 'hoh', 'qw'},
'dependents': lambda v: isinstance(v, int) and 0 <= v <= 20,
}
errors = []
for field, check in rules.items():
if field not in form:
errors.append(f'missing: {field}')
elif not check(form[field]):
errors.append(f'invalid: {field}={form[field]}')
return errors
5 天衝刺方案
| 天數 | 任務 |
|---|---|
| D1 | EDA 模板 + Pandas groupby + missing data 5 題 |
| D2 | SQL 多表 JOIN + DATE_TRUNC + LTV / cohort 4 題 |
| D3 | Karat live coding:LC 200 / 207 / 215 / 994 |
| D4 | take-home 完整 mock(4 小時) |
| D5 | 複盤 take-home 業務結論 + 準備口述 craft demo |
FAQ
Intuit DS 一定要有 TurboTax 經驗嗎?
不強制。但 take-home 涉及稅務術語(AGI、itemized deduction、refundable credit),最好提前搜一下名詞解釋。
Karat 面試可以用什麼語言?
Python / Java / Go / JavaScript / Ruby。社區反饋:DS 候選人 95% 用 Python,SDE 候選人 70% 用 Python,~25% Java。
take-home 多少分能過?
社區反饋:技術正確性 > 業務直覺 > 表達。70% 候選人 take-home 通過即可進 onsite。
Intuit OA 之後多久出結果?
通常 7–14 天。take-home 提交後會有 1–2 個 reviewer 打分 + 綜合 Karat 表現。
正在準備 Intuit OA / VO?
這次很高興幫這批同學順利通過 Intuit Data Scientist OA。很多同學反饋,take-home 的難點不在程式碼,而在 "在 4 小時內給出一個讓 PM 信服的業務結論" ——這件事光靠刷 LeetCode 完全練不出來。
如果你也在準備 Intuit、TurboTax、QuickBooks、Mint、Credit Karma 的 DS / SDE OA / VO,感覺一個人複習方向模糊、business case 表達沒把握,歡迎聯絡 oavoservice。我們會根據你的具體水平和弱點,提供專業的 OA / VO 實戰輔助服務和一對一指導,把 take-home + SQL + Karat 三套模板完整打通。
👉 立即加微信:Coding0201,獲取 Intuit 高頻題與備考方案。
聯絡方式
Email: [email protected]
Telegram: @OAVOProxy