你的履歷可能沒被人讀過:ATS 篩選原則,與一個開源的履歷 skill

投了三十份履歷、沒有半通電話,最容易得出的結論是「我不夠好」。但在很多情況下,真正的答案更難堪也更好解決:那份履歷根本沒有被人類讀過。它在第一道自動篩選就掉了,而掉的原因往往跟你的能力無關。

ATS 到底對你的履歷做了什麼

ATS(Applicant Tracking System,求職者追蹤系統)是企業用來接收與管理履歷的軟體。它對每一份收到的檔案做三件事:

  1. 解析:把你的檔案拆成結構化欄位:姓名、聯絡方式、每段經歷的公司與職稱與起訖、學歷、技能。
  2. 比對:拿職缺說明(JD)的關鍵字,去比對解析出來的結果。
  3. 排序:依相關度排序,人資通常只往下看前面一段。

多數人以為問題出在第二步——關鍵字不夠漂亮。但實務上,失分最慘重的是第一步。一份雙欄排版、用表格排工作經歷、把電話和 Email 放在頁首的履歷,在解析階段就會被拆得七零八落。你寫得再好,系統看到的可能只是一堆順序錯亂的殘句。

解析不出來的內容,等於不存在。

第一層失分:格式讓機器讀不到

這一層最容易修,而且修完不會有任何副作用——為 ATS 優化的履歷,對人類讀者一樣好讀,這裡沒有取捨問題。常見的地雷有這幾個:

  • 多欄排版(雙欄、側邊欄):文字讀取順序被打亂,經歷和日期對不起來。
  • 用表格承載經歷內容:儲存格被拆散,或整段消失。
  • 文字方塊、SmartArt、圖形:多數解析器直接略過。
  • 聯絡資訊放頁首或頁尾:頁首頁尾常被跳過,人資連怎麼聯絡你都不知道。
  • 用圖片呈現技能(星等、進度條):圖片裡的字無法解析,等於白做。
  • 自創職稱:「成長駭客小隊長」比對不到任何關鍵字。寫業界通用職稱,自創的稱呼放括號補充。
  • 日期格式不一致:年資會被算錯。全篇統一成同一種寫法。
那我精心設計的視覺履歷怎麼辦做兩份。視覺版放在你的個人網站或作品集裡,面試時當作談資;投遞時交那份樸素、單欄、機器讀得懂的版本。這不是把履歷做醜,是分清楚兩份文件各自要說服誰。

第二層失分:關鍵字對不上

把完整 JD 攤開,把裡面的技能拆成兩類:Hard Skill(工具、技術、證照、方法論、產業術語)與 Soft Skill(跨部門協作、簡報表達、專案管理、帶人)。很多人只顧著補 Hard Skill,但 Soft Skill 同樣是系統抓取的項目。

接著逐個關鍵字比對,只有三種狀態:

  • 已命中:這個詞出現在履歷裡,而且長在具體事蹟中。
  • 表達不清:你做過,但用了別的說法。JD 寫「行銷自動化」,你寫「發電子報」——同一件事,系統比對不到。這一類是投報率最高的修正標的。
  • 完全缺:真的沒做過。這時候不要編,改看有沒有可遷移的相近經驗,或者誠實留缺。

補關鍵字的方式也有講究。關鍵字要長在句子裡,不是堆在技能列。寫「熟悉 Python、SQL、Excel、Tableau、Power BI」,機器過了,人看到會直接跳過;改成「以 Python 自動化每日報表並串接 Tableau 建置 BI 儀表板,每月節省約 20 小時人工處理」,兩邊都過。

量化:一句話的公式

履歷寫作最常被引用的框架是 STAR,也就是情境(Situation)、任務(Task)、行動(Action)、結果(Result)。但履歷不是面試,四段不必各佔一句。實際落到一條敘述上,比較好用的是這個壓縮版:

透過[方法],以[指標]衡量,達成[結果]。

三個元素缺一就會鬆掉:只有方法是流水帳;只有結果看不出是不是你做的;缺了指標則無法驗證。可用的指標大致五類:人數(帶領團隊、服務客戶、活動到場)、金額(營收貢獻、成本節省、管理預算)、百分比(成長率、轉換率、錯誤率下降)、時間(處理時間縮短、每週節省工時)、排名或規模。一條敘述挑一到兩個最強的就好,堆五個數字反而稀釋重點。

幾組改寫對照。差別只有一個:讀的人能不能判斷你的量級。

  • 「負責社群行銷」 → 「主導 3 個品牌 Instagram 社群經營,單月自然觸及自 2 萬提升至 8 萬,品牌詢問轉換率提升 4 倍」
  • 「負責電商客服回覆」 → 「為 B2C 電商建立客服 SOP,導入常見問答知識庫與自動分流,平均回覆時間自 8 小時降至 1.2 小時」
  • 「使用 ChatGPT 處理 Excel」 → 「以生成式 AI 產出並人工驗證 VBA 巨集,自動化 3 個報表來源的資料核對,人工核對時間自 2 小時降至 15 分鐘,連續 3 個月維持零資料落差」

第三組值得多說一句。現在履歷上寫「會用 ChatGPT」已經不構成技能,因為它不區分任何人。真正有訊號的是三件事:你用 AI 改善了什麼流程(附前後對照)、你怎麼驗證 AI 的輸出(抓出哪類錯誤、建立什麼查核機制)、以及你能多快把新工具用到不同的場景上。中間那一項最能區隔深淺,卻最少人寫。

沒有數字的時候,不要編

量化的最大阻力是:大部分人根本不記得當年的數字。三個補位方法:翻舊資料(年度報告、KPI 表、結案報告、專案週報)、問前主管或同事一起回憶量級、或者用合理估算並明說是估算:「協助處理約 50 名客戶」「每週約節省 10 小時」。加一個「約」字是誠實表述,不是灌水。

三個方法都不行,就把那句話改寫成不需要數字也成立的版本,或者留白等你查到。用 AI 寫履歷最大的風險就在這裡:模型很樂意幫你補一個「看起來合理」的數字,而那個數字會在面試被追問時原地爆炸,或在背景查核時變成職涯傷害——那比落選嚴重得多。

誠實的量化比華麗的虛構耐查。

三個平台,要三份不同的履歷

同一份基底經歷,投到不同平台應該長得不一樣,因為讀的人在做的事不一樣:

  • 104:台灣本土人資的主場,多半在後台一次瀏覽大量履歷。條列要清楚、區塊界線分明、每段經歷附一行產業與團隊規模,讓人資快速判斷你的量級。
  • Cake:容許第一人稱、有個性的自述,技能以標籤呈現,作品連結是主要加分項。但關鍵資訊仍要能被純文字讀懂,別只放在圖裡。
  • LinkedIn:這裡不是「投履歷」,是「被找到」。Headline 決定獵頭搜尋時看到什麼,置頂的三項技能決定你出不出現在結果裡,每段經歷動詞開頭、控制在五條以內。

我把這套流程做成了一個 skill

上面這些原則不難懂,難的是每次求職都要重新執行一遍,而且趕著投遞的時候,最先被省略的往往就是健檢這一步。所以我把它寫成一個 agent skill 並開源出來:resume-ats。Claude Code 與 Codex CLI 都能安裝,它們吃同一套 SKILL.md 格式。

它的流程刻意分成三段,不讓你跳過第一段:

  1. 健檢:對照 JD 產出關鍵字比對表、格式可解析性問題、內容品質檢查、逐段改寫建議,以及一份待補資料清單。
  2. 你補資料:所有缺的數字都被標成待補,等你查證後填回來。
  3. 產檔:輸出 104/Cake/LinkedIn 三種版本的可編輯 Word 檔,單欄、無表格、無文字方塊、聯絡資訊寫在內文首段。

另外附一支不靠模型判斷的計分腳本:把 JD 關鍵字整理成清單後,它會確定性地算出三態比對與適配度百分比。同一份履歷跑兩次結果一樣,不會因為模型當下的心情而飄。

安裝

curl -fsSL https://raw.githubusercontent.com/AndyJuang/resume-ats-skill/main/install.sh | bash

會自動偵測 ~/.claude 與 ~/.codex 並安裝到對應目錄,偵測到舊版會先備份。若你習慣走 Claude Code 的 plugin 機制:

/plugin marketplace add AndyJuang/resume-ats-skill
/plugin install resume-ats@ahadigit-skills

裝好之後,直接說「幫我做履歷健檢,這是我的履歷和目標職缺 JD」就會啟動。

它刻意不做的事

一個工具的價值有時候在於它拒絕做什麼。這個 skill 寫死了四條護欄:

  • 不編造數字、職稱、公司、年份。缺的一律標成待補,不填「看起來合理」的值。
  • 不替你宣稱未經確認的經歷。客製是換角度呈現同一組事實,不是換一組事實。
  • 敏感資訊主動抽象化。前公司客戶名、內部財務絕對值改寫成「某大型 B2B SaaS 客戶」「三位數成長率」。這同時讓履歷更通用——寫「某大型電商客戶」,讀的人會自己代入自家情境。
  • 不做無人監督的大量投遞。批次模式每批上限十家、不繞過驗證碼或登入牆、每一筆送出前都要你確認。

最後一件事,寫在工具的交付訊息裡,這裡也再說一次:產出的 Word 檔是母版,不是成品。交出去之前請自己再改一輪,把語氣改回你講話的樣子。AI 寫得太順,看過大量履歷的人資分辨得出來;而一份連履歷都外包給模型的人,給人的印象,未必比一份寫得樸素的履歷好。

工具能幫的,是把你已經做到的事,翻譯成對方聽得懂的話。剩下那部分——你真的做過什麼——沒有任何模型能代勞。

想拿這篇的純文字原稿?網址結尾加上 .md 即可: /blog/resume-ats-skill.md

想把這些方法帶進你的團隊?

無論是一場主題講座,或完整的 AI 導入規劃,歡迎與我們聊聊你的需求。

預約課程洽詢