

# 如何用重複職位快照量度招聘趨勢

要量度招聘趨勢而不把重新刊登計作增長，請保持搜尋範圍固定，把不同的來源職位刊登 ID 與重複觀察分開計算，並在解讀趨勢前標明失敗或已達上限的收集日。職位刊登是廣告，不是已完成的聘用，也不是整個勞動市場。一次收集運行使用 actor（託管的數據程式）和 task（已儲存的輸入預設）。

## 收集設定

開啟 [Indeed Jobs Scraper Actor](https://apify.com/chronometrica/indeed-jobs-scraper) 和 [Indeed Job Market Data Task](https://apify.com/chronometrica/indeed-jobs-scraper/examples/indeed-job-market-data-weekly-hiring-trends)。目前預設使用 5 個查詢、美國來源、最近 7 日、最大項目 500、最大頁數 15、按日期排序，並且只儲存不重複項目為 true。用 1 個查詢和較小上限開始先導測試。最大項目數是共用的。國家、查詢和批次是輸入證據，不是承諾會出現的資料行欄位。保留 jobId、jobUrl、title、companyName、locationRaw、postedAt、postedAtRaw 和 scrapedAt。缺失的 ID 在不同 ID 計數之外保持未解決。同一次運行內的不重複處理，不會跨日去除重複觀察。檢查輸出中的已儲存資料行、重複項、篩選條件和停止證據。目前的對照檢查了來源資料結構，而不是多日趨勢基準。保留失敗日為未知，以及達上限日為受限的狀態。

此 task 使用已儲存的輸入值：`country` 設為 `us`，`searchTerm` 包含 5 個查詢，`postedWithinDays` 設為 `7`，`maxItems` 設為 `500`，`maxPagesPerSearch` 設為 `15`，`sortBy` 設為 `date`，`saveOnlyUniqueItems` 設為 `true`。先導測試會把 `searchTerm` 換成 1 個查詢，並設定較小的資料行和頁數上限。`maxItems` 上限在各關鍵字之間共用。目前這個兩行、一個批次的對照檢查來源資料結構，而不是實際的多日趨勢。

## 收集面板方法

1. 界定一個收集面板。使用相同的職位查詢、來源國家、網站、地點、篩選條件、排序政策、資料行或頁數上限，以及預定的檢查時間。如果你改變問題，就開始一個新的比較面板，或標明範圍變更。不要在沒有說明的情況下延長舊序列。
2. 儲存一份運行清單。記錄批次 ID、預定時間、實際時間、輸入值、運行結果、已儲存資料行、停止狀態和警告。缺失或失敗的收集日保持為缺失，不是零。
3. 以批次、來源和職位 ID 作為觀察的鍵。在每個已接受的批次內，每個來源職位刊登只計一次。跨批次時，保留每次觀察，並更新首次見到的職位表。不要自動把職稱相同的職位算作同一筆。
4. 報告原始返回的資料行、該批次觀察到的不同職位刊登、在面板中首次見到的 ID、先前見過的 ID，以及來源或收集限制。今日首次見到是指你的流程首次收集到，不一定是僱主首次刊登。
5. 只比較能支持你的問題的範圍和收集狀態。受上限限制的樣本可以顯示新 ID 供覆核，但不能確立整體存量上升或下降。失敗日不能用作市場低迷日。
6. 在數字旁顯示帶有缺失或受限標記的序列。保留一份說明表，使分母和單位清楚。不要把線跨過未知的一天連接起來，彷彿你已量度該日。
7. 陳述這個範圍有限的結果。解釋這個固定觀察面板發現了甚麼，以及哪些比較仍然未知。如果你需要更廣的招聘說法，請收集更寬的樣本，或使用官方勞動數據來源。
8. 交付每日面板表、首次見到紀錄冊和覆蓋範圍說明。這個結果支持進一步的來源檢查和一致抽樣。它不量度已完成的聘用或僱主意圖。

## 虛構例子與已核對計數

本節所有職位、時間和結果都是編造的。一個固定面板使用 1 個分析員查詢、1 個來源國家、相同的篩選政策，以及預定在 12:00 UTC 的每日檢查。

- 第 1 日已接受的小型來源測試案例集合有 4 個不同職位刊登：J1、J2、J3 和 J4。首次見到為 4。先前見過為 0。
- 第 2 日已接受集合有 4 個不同職位刊登：J2、J3、J4 和 J5。首次見到為 1，即 J5。先前見過為 3。每日總數相同，並不表示沒有新的來源 ID。
- 第 3 日收集失敗。沒有已接受集合。觀察計數和首次見到計數為未知，不是零。保留第 2 日最後一份已接受紀錄冊。
- 第 4 日已接受集合有 4 個不同職位刊登：J3、J4、J5 和 J6。首次見到為 1，即 J6。先前見過為 3。J6 在第 4 日首次被觀察到，但它可能在缺失的第 3 日已經出現。不要把它的建立時間歸屬到第 4 日。
- 第 5 日上限受限集合有 2 個不同的已儲存項目：J4 和 J7，因為已達到上限 2。首次見到為 1，即 J7。先前見過為 1。它較低的計數由已更改的有效上限造成，因此把它排除在未經限定的下降說法之外。記錄範圍變更，或在它旁邊標上受限。

已接受觀察的聯集包含 7 個不同來源 ID，即 J1 至 J7。觀察到的職位刊登出現次數總和等於 4 加 4 加 4 加 2，即 14。每個鍵在首次觀察之後的重複出現等於 14 減 7，即 7。這些是觀察，不是 7 個重新刊登的空缺。新記入紀錄冊的計數等於 4 加 1 加 1 加 1，即 7。第 3 日排除在算術之外，因為它是未知，不是一次為零的測量。不要把每日不同計數 4、4、4 和 2 相加，然後稱它為 14 個不重複機會。

目前的運行時檢查是 1 個批次，不是實際的多日趨勢基準。這個示意用的已接受第 1 日、第 2 日和第 4 日集合，只對這個虛構面板完整，不是真實平台的保證。

| 日 | 運行結果 | 已儲存資料行 | 不同職位刊登 | 首次見到 | 先前見過 | 備註 |
| --- | --- | --- | --- | --- | --- | --- |
| 第 1 日 | 已接受 | 4 | 4 | 4 | 0 | 完整的小型來源測試案例集合 |
| 第 2 日 | 已接受 | 4 | 4 | 1 | 3 | 新 ID J5 |
| 第 3 日 | 失敗 | 未知 | 未知 | 未知 | 未知 | 數據缺失，不是零 |
| 第 4 日 | 已接受 | 4 | 4 | 1 | 3 | J6 在第 4 日首次被觀察到；在缺失的第 3 日期間，建立時間仍然未知 |
| 第 5 日 | 上限受限 | 2 | 2 | 1 | 1 | 已達到上限 2 |

| 職位 ID | 首次見到日 | 狀態 |
| --- | --- | --- |
| J1 | 第 1 日 | 初始批次 |
| J2 | 第 1 日 | 初始批次 |
| J3 | 第 1 日 | 初始批次 |
| J4 | 第 1 日 | 初始批次 |
| J5 | 第 2 日 | 新觀察 |
| J6 | 第 4 日 | 新觀察 |
| J7 | 第 5 日 | 新觀察 |

## 下一步

開啟 [Indeed Jobs Scraper Actor](https://apify.com/chronometrica/indeed-jobs-scraper) 和 [Indeed Job Market Data Task](https://apify.com/chronometrica/indeed-jobs-scraper/examples/indeed-job-market-data-weekly-hiring-trends)，以選擇一個小型固定面板、儲存其收集清單，並只在記錄該次運行的覆蓋狀態之後比較來源 ID 集合。

## 來源與延伸閱讀

- [美國勞工統計局 JLT 定義](https://www.bls.gov/jlt/jltdef.htm)
- [Indeed Jobs Scraper Actor](https://apify.com/chronometrica/indeed-jobs-scraper)
- [Recruiting Hell 每日樣本討論](https://www.reddit.com/r/recruitinghell/comments/1r3a8jj/i_tracked_63336_us_job_postings_last_week_feb_26/)