104 職缺寫「刊登中」是真的缺人還是幽靈職缺?用 104-scraper 追蹤同一批職缺存活率
一句話: 104 職缺頁寫「刊登中」不代表現在真的在找人——104 職場力自己的部落格就寫過,企業年繳刊登費、忘記關閉職缺都會讓職缺一直掛著。用 104-scraper 排程抓同一批關鍵字,搭配 Google Sheets 記錄每天出現的 job_id,算出「幾週都沒消失過」的職缺清單,投履歷前先篩一輪。
為什麼「刊登中」不能當真
求職者常有的經驗是:職缺條件都符合、履歷也投了,結果已讀不回,甚至連已讀都沒有——同一個職缺卻一直掛在 104 上,看起來從沒關過。這不是錯覺。104 職場力自己的部落格文章寫得很直白:企業在 104 刊登職缺是年繳費用,職缺掛著本身就等於免費打廣告;也有企業其實已經徵到人,只是忘記把職缺關掉。換句話說,「刊登中」這個狀態只代表刊登費用還在有效期內,不保證現在真的在積極招募。
同一篇文章也提到一個具體的時間線索:據人資回饋,「如果一家企業7天內沒有回覆你的履歷,那麼之後回覆的機率就會大減」;另一篇104 職場力談回覆時間的文章裡也有前輩建議「履歷若發出去10天沒有任何公司回覆,代表履歷需要修整」——但這兩個經驗法則都是從單一次投遞的角度看,沒辦法告訴你「這個職缺是不是本來就長期空號」。要看出這一點,得從資料端驗證:同一批職缺,每隔幾天重複抓一次,看哪些 ID 一直在、哪些悄悄消失。這正是本篇要做的事。
三種判斷方式,先看差異
| 相信「刊登中」標籤 | 每則都打電話問 | 自己排程追蹤存活率(本篇教學) | |
|---|---|---|---|
| 判斷依據 | 平台顯示的狀態,不代表企業真的在找人 | 最準,但要一則一則打,很花時間 | 用同一批 job_id 出現的天數算存活率 |
| 覆蓋量 | 全部職缺(但不可靠) | 你打得完的那幾則 | 排程設定的關鍵字,自動全部追蹤 |
| 需要人力 | 零 | 每則職缺都要人工聯絡 | 一次設定 pipeline,之後全自動 |
| 前置門檻 | 零 | 零,但很耗時 | 設定約 20 分鐘 + 等 2–4 週資料累積 |
下面把「自己排程追蹤」這條路的做法攤開。
你會做出什麼
排程觸發(每天一次)
│
▼
Apify:跑 104-scraper(同一批關鍵字,mode: search)
│
▼
Google Sheets:把今天抓到的 job_id 附加寫入「歷史記錄表」
(連續累積 2–4 週)
│
▼
用 COUNTIF 算每個 job_id:出現天數 ÷ 追蹤天數 = 存活率
│
▼
存活率接近 100%、追蹤超過 3 週還沒消失過 → 列入「投遞前多想一步」名單
你需要什麼
- 一個 Apify 帳號 — 免費開始、有免費額度,之後按實際抓到的筆數計費。
- n8n — 自架免費(fair-code 授權),或用 n8n Cloud(有免費試用)。
- 一份 Google Sheet,當作每天抓到的職缺歷史記錄。
Step 1 — 排程觸發(Schedule Trigger)
加一個 Schedule Trigger 節點,設每天跑一次(例如每天早上跑)。這是整個 pipeline 的心跳,之後不用再手動盯。
Step 2 — 用 Apify 節點抓今天的職缺
安裝官方 Apify 節點(@apify/n8n-nodes-apify),把 Apify API token 加成憑證。加一個 Apify 節點,選 「Run Actor and get dataset items」、挑 104-scraper,輸入依它的 input schema:
{
"mode": "search",
"keywords": ["行銷企劃"],
"maxItems": 100
}
回來的每一筆都有 job_id、title、company_name、posted_at(刊登日)、job_url 這些欄位——這裡要注意:104-scraper v1.0 只有 search 模式,沒有職缺詳情頁,也沒有「已關閉」或「已徵到人」這種狀態欄位(詳情模式計畫在 v1.1 才推出,見它的 README)。所以判斷存活率的邏輯不是讀某個欄位,而是看同一個 job_id 今天還有沒有出現在搜尋結果裡。
Step 3 — 把今天的結果附加寫進歷史記錄表
加一個 Google Sheets 節點,操作選 Append row(不是 price-drop 那種 overwrite),把今天的 job_id、title、company_name、posted_at、job_url,再加一欄今天的日期(可以用 n8n 的 {{$now.format('yyyy-MM-dd')}}),一起寫進同一張表的新的一列。這裡故意用附加而不是覆寫——你要的是完整的歷史紀錄,不是只留最新一次的快照。
Step 4 — 累積 2–4 週後,用 COUNTIF 算存活率
排程連續跑個 2–4 週之後,回到 Google Sheet:
- 用
=COUNTIF(job_id欄範圍, 某個job_id)算這個job_id一共被記錄到幾次(等於出現在幾次每日抓取裡)。 - 用
=TODAY() - MINIFS(日期欄範圍, job_id欄範圍, 某個job_id)算這個job_id從第一次被看到到今天經過幾天。 - 兩個相除(出現次數 ÷ 追蹤天數)就是存活率——接近 100% 代表這則職缺幾乎每天都還在,一次都沒消失過。
存活率接近 100%、而且追蹤天數已經超過 3 週的職缺,才列進「投遞前多想一步」的名單——追蹤時間太短(例如只有 3 天)就下結論,容易把「剛好還在正常招募流程中」的職缺也誤標。
Step 5 — 別把存活率當成鐵證
存活率高只代表「這個職缺一直沒有從搜尋結果消失」,不等於這個職缺是假的。它可能只是資深或稀有技能職位,本來就要招很久;也可能真的是 104 官方部落格提到的兩種情況——企業把刊登當廣告在用,或是徵到人卻忘記關閉。這份名單的用途是幫你篩掉盲目海投的對象、決定要不要先打電話確認,不是幫你認定誰在說謊。
不想裝節點?用 HTTP Request 節點打 API
不想裝 Apify 的社群節點,也可以用 n8n 的通用 HTTP Request 節點直接打 REST API:
POST https://api.apify.com/v2/acts/claude_code_reviewer~104-scraper/run-sync-get-dataset-items
Authorization: Bearer <你的_APIFY_TOKEN>
Content-Type: application/json
{ "mode": "search", "keywords": ["行銷企劃"], "maxItems": 100 }
要注意這個同步端點的 run 必須在 300 秒內跑完,逾時會回 HTTP 408(官方文件)——maxItems 別一次開太大。
實際要花多少
104-scraper 是 PPE 計費,search 模式每回傳一筆職缺收 $0.002(search-listing 事件,見它的 store 頁面即時報價),平台另收一次性的 apify-actor-start($0.005/run,官方文件)。
以「1 個關鍵字、每天抓 100 筆、連續追蹤 30 天」估算:$0.002 × 100 × 30 = $6/月的資料費,加上 30 次 apify-actor-start 約 $0.15,一個月總共約 $6.15——比訂閱任何一套 HR 市調工具都便宜。想換成你自己的關鍵字數與追蹤天數,用 Apify 成本計算機直接算。
三條路,挑一條開始
從最省事到最自由
FAQ
104 職缺頁寫「刊登中」代表現在真的在招募嗎? 不一定。104 職場力自己的部落格文章指出,企業刊登職缺是年繳費用制,職缺掛著本身等於免費打廣告,也有企業已經徵到人卻忘記關閉職缺——「刊登中」只代表刊登費用還在有效期內,不保證現在正在積極找人。
104-scraper 抓得到職缺「已關閉」或「已徵到人」的欄位嗎? 抓不到。104-scraper v1.0 只有 search 模式,回傳的是目前還出現在 104 搜尋結果裡的職缺,欄位是 job_id、title、company_name、posted_at 這類資料,沒有狀態欄位。要判斷存活率得自己排程重複抓,比對同一個 job_id 隔幾天、幾週還在不在搜尋結果裡。
這個方法能證明某個職缺是假的嗎? 不能,只能當篩選線索。長期沒消失的職缺,可能是真的很難找到人的資深或稀有技能職位,也可能是拿來衝業績或養履歷庫——104 官方部落格也提到企業有時只是忘記關閉,不是刻意造假。這個方法能做的是把「一直沒消失的職缺」從一堆搜尋結果裡篩出來,值得你投遞前多想一步或先打電話確認,不是取代查證。
國際上「幽靈職缺」真的很普遍嗎? 依 ResumeBuilder.com 2024 年的調查,40%受訪招募主管坦承公司過去一年刊登過假職缺,其中79%目前仍有至少一則掛著;2025 年 Clarify Capital 的研究則發現,20%的雇主承認為了降低成本、同時維持「正在招募」的假象,刻意讓職缺長期空著。這兩份都是美國市場的調查,台灣目前沒有對應的官方統計,僅供對照參考,不能直接套用在104身上。
這樣排程抓合法嗎? 我們只抓104公開的搜尋結果頁面,不登入、不碰會員專屬資訊。104-scraper 的官方說明也註明僅供學術研究與個人資料分析使用,勿過度抓取或用於商業競爭行為;實際用途請自行確認你所在地區的法規與平台條款。
作者 Chad 實際經營 40+ 隻上架 Apify actor(含本文用到的 104-scraper),上面每個數字都直接對照 actor 的 store 頁、104 職場力官方部落格與美國兩份公開調查報告,查不到來源的東西這篇不寫。