
一項條款是你選擇核對的一句決定用語。例子包括聘用比例、僱用類型、薪酬字句,以及工作地點。聘用比例以一份全職職位為基準,表示該聘用佔這份全職職位的份額,例如刊登字句「100%」或「50%」。
做這 8 個步驟
- 選擇會改變你決定的條款。
閱讀這些條款在刊登中的原文字句。職稱、可選的職級標籤,或搜尋字詞,都不是完整要求。職級可以缺漏。如果所選字句不清楚,就保持不清楚。不要猜測任何值,不論是數字還是非數字。這些步驟只涵蓋公開條款比較。它們不解釋應徵者狀態、推薦人查核,或招聘意圖。
- 先從你的舊儲存開始,再收集一列新資料。
舊正文必須已經在你的檔案中。Indeed Jobs Scraper 是一個 Actor。Actor 是託管的資料收集程式。它收集目前的公開列。它不能重建舊說明。它不提供僱主編輯時間、申請人狀態,或自動條款標籤。這裡所述的比較由你來做。
寫在職位文字裡的日期不是編輯時間。每次儲存都要保留執行識別、來源識別、輸入、scrapedAt、descriptionStatus,以及原始文字。scrapedAt 是收集該列的時間。一次執行是 Actor 運行一次。
- 比較字句之前,先配對同一則刊登。
先配對相同的來源命名空間,以及相同的 jobId。命名空間是擁有該識別碼的網站。然後核對 jobUrl、職位,以及公司。jobId 要以文字保留。如果試算表把它存成數字,長位數可能改變。單靠相同職稱,不能證明兩列是同一個版本。
不同的來源識別碼保持 unresolved。不確定的重新刊登也保持 unresolved。該配對請用已發布的重複與重新刊登指南。在關係確定之前,不要比較文字。把識別衝突留在你的筆記裡。
- 所選條款必須有可比較的文字。
尋找字句差異之前,先讀 descriptionStatus。full 表示來源文字當時可用,並已儲存在 descriptionText。missing 表示該文字當時不可用。這個 Actor 沒有 snippet 狀態。full 不保證是僱主的整份文件。
舊文字 missing 而新文字 full,是新近可用的證據。這不是僱主更改了一項要求的證明。短摘錄對上全文,可以造成虛假差異。多出的字句,可能在你尚未持有它們時已經存在。先儲存可用狀態。然後才比較段落。
- 保留原始文字,並做一份比較用副本。
不要改動原始的 descriptionText。只為空白處理另做第二份副本。在該副本中,當意思保持不變時,合併已聲明的空白。空白是指空格、tab,以及換行。只產生同樣這些分隔的標記,可以視為相同的空白。不要移除百分比、貨幣用字、單位、否定,或其他限定語。「not」這個字可以反轉一項規則。一個百分比數值可以改變決定。
逐字儲存舊段落的原文,以及新段落的原文。如果你知道它們在來源文字中的位置,就儲存這些位置。如果位置未知,寫 unknown。不要寫 0。
- 從所列狀態中,為所選條款指定剛好一個。
使用以下 5 個狀態之一:
- no_observed_change
- formatting_only
- substantive_wording_change
- newly_available_text
- unresolved
當同一則刊登有完整且可比較的文字,而所選字句的意思不同時,使用 substantive_wording_change。只有已聲明的空白不同時,使用 formatting_only。所選條款相同時,使用 no_observed_change。該狀態不包括你沒有閱讀的欄位。舊的來源文字不可用、後來變為可用時,使用 newly_available_text。缺了一項條款,不是缺了文字。舊的完整可比較文字沒有所選條款,而新的全文加入了該條款,可以是 substantive_wording_change。識別尚未確定時,使用 unresolved。
文字差異指向一次覆核。它本身不能證明一項新的僱用條件。在你根據聘用或薪酬字句採取行動之前,先閱讀目前的僱主官方頁面。
- 用簡單清楚的字句報告時間界限。
寫明該變更是在舊 scrapedAt 與新 scrapedAt 之間觀察到的。不要寫僱主在新的 scrapedAt 編輯了刊登。其他來源處理也可以改變你看到的字句。你無法得知兩次儲存之間有多少次編輯。該次數未知。未知不是 0,也不是 1。目前這次執行不提供自動歷史。
你第一次注意到的刊登是另一項工作。那項請用已發布的新提示指南。刊登數量也是另一項工作。數量請用已發布的刊登趨勢指南。
- 交付一筆配對紀錄。
包括識別、原始段落、可用狀態、比較規則、狀態、兩個時間,以及目前的來源核對。目前的來源核對,是你閱讀時僱主官方頁面所說的內容,或一則你尚未閱讀的註記。如果一項重要條款仍然不清楚,透過你自己的流程詢問僱主聯絡人。這些步驟不發送訊息。它們不讀取私人的申請狀態。
儲存這些欄位
使用 Actor 的這些列欄位。可選欄位可以未提供。未提供表示沒有給出該值。這不表示 0,也不表示僱主沒有該項。
| 欄位 | 它是甚麼 |
|---|---|
| jobId | 來源識別。以文字保留。 |
| title | 職位名稱。它不是完整識別。 |
| companyName | 僱主名稱,用於識別核對。 |
| locationRaw | 來源所顯示的地點文字。 |
| descriptionText | 為該列儲存的刊登字句。 |
| descriptionStatus | full 或 missing,表示來源文字是否可用。 |
| jobUrl | 刊登網址,用於識別核對。 |
| query | 該列使用的搜尋字詞。 |
| searchLocation | 搜尋使用的地點。 |
| scrapedAt | Actor 儲存該列的時間。 |
seniority、employmentType、salaryRaw、postedAt 和 postedAtRaw 是可選的。其中任何一項都可以缺漏。postedAt 若存在,是來源提供的刊登時間。它不是僱主的編輯時間。descriptionText 裡的日期也不是編輯時間。
儲存原始列、已運行的輸入,以及執行輸出。同時儲存列上限或失敗執行的證明。上限是達到 maxItems 時停止收集。一次成功但沒有結果列的執行,不能證明沒有職位存在。一次達到上限的執行,不能證明你收集了每一則刊登。
設定一次小規模的首次執行
Task 是已儲存的輸入預設。目前的公開 Task 是起始輸入。它不是比較會自行運行的證明。公開 build 1.2.14 已於 2026-10-13T05:55:51.545104+00:00 核對。它接受 searchTerm、country、location、maxItems、maxPagesPerSearch、postedWithinDays、sortBy,以及 saveOnlyUniqueItems。
已儲存的 Task 輸入如下:
{
"country": "us",
"searchTerm": "software engineer",
"maxItems": 100,
"postedWithinDays": "7",
"sortBy": "date",
"maxPagesPerSearch": 2,
"saveOnlyUniqueItems": true
}首次核對時,設定 1 個目標職位和 1 個市場。為這一對設定 country 和 searchTerm。只有需要 1 個地點時才加入 location。把範圍大的列上限改為 maxItems 2 和 maxPagesPerSearch 1。postedWithinDays 和 sortBy 只限制這次執行向來源要求哪些目前刊登。它們不返回上星期的字句。saveOnlyUniqueItems 可以為 1 個項目保留 1 列目前資料。它不重建較舊的字句。你仍然需要自己較舊的儲存。
對此 build 的一次相容核對返回了 2 個來源識別碼和網址。兩列都包含可用的說明文字,並儲存在 descriptionText。該執行達到了它的上限。該核對顯示文字收集受支援。它不是以下例子的實況發現。它不表示只存在 2 份職位。
演練 5 對虛構例子
下面 5 對是原創虛構。它們用來說明這些狀態。它們不是 Actor 結果,也不是關於僱主的實況發現。這些虛構時間沒有給出年份。不要把它們當作 build 核對時間。
| 配對 | 可用狀態 | 識別 | 差異 | 狀態 | 下一步核對 |
|---|---|---|---|---|---|
| J1 | 兩次都是 full | 相同來源識別碼和職位 | 聘用字句不同 | substantive_wording_change | 覆核這些段落。然後閱讀目前的僱主官方頁面。 |
| J2 | 兩次都是 full | 同一則刊登 | 只有換行 | formatting_only | 不要把空白當作一項新條款。 |
| J3 | 先 missing,後 full | 同一則刊登 | 文字變為可用 | newly_available_text | 保留新文字。不要聲稱條款已變更。 |
| J4 | 未使用 | 不同來源識別碼,相同職稱 | 識別尚未確定 | unresolved | 停止。使用重複與重新刊登指南。 |
| J5 | 兩次都是 full | 同一則刊登 | 所選條款相符 | no_observed_change | 只報告該條款。其他條款分開核對。 |
J1 在 10 月 1 日 10:00 UTC 有 full 文字:「Full-time appointment, 100%.」相同的來源識別碼和職位在 10 月 8 日 10:00 UTC 有 full 文字:「Career appointment, 50%.」兩次儲存都是 full,所以這不是新近可用的文字。空白規則不能解釋這項變更。「Full-time」和「Career」是不同的聘用字句。「100%」和「50%」是不同的比例。狀態是 substantive_wording_change。兩個時間相隔 7 日。報告一項在 10 月 1 日 10:00 UTC 與 10 月 8 日 10:00 UTC 之間觀察到的變更。不要把 10 月 8 日稱為僱主編輯時間。不要解釋字句為何改變。兩次儲存之間的編輯次數未知。
J1 的一筆配對紀錄可以像這樣:
identity: same fictional source jobId both times; role matches; company and jobUrl are not supplied
old scrapedAt: October 1 10:00 UTC
new scrapedAt: October 8 10:00 UTC
descriptionStatus: full / full
old passage: Full-time appointment, 100%.
new passage: Career appointment, 50%.
positions: unknown
comparison rule: raw text kept; spacing rule does not remove percentages or appointment words
state: substantive_wording_change
time reading: change observed between the two scrapedAt values
current source check: not done in the fiction你可能在新的觀察時間閱讀 J1 目前的僱主官方頁面,並看到 50%。該次閱讀仍然不能解釋私人的招聘選擇。它不能證明你較早對聘用內容的閱讀是正確的。該證明需要已儲存的舊來源文字。
J2 在兩個時間都是 full。唯一差異是已聲明空白規則之下的換行。虛構文字如下:
old: "Same words stay."
new: "Same words\nstay."比較用副本合併了換行。兩份副本之後都讀作「Same words stay.」。意思沒有改變。狀態是 formatting_only。不要憑這些換行報告一項新的僱用條件。
J3 的舊列說明為 missing,新列說明為 full。舊的所選條款未被觀察到。狀態是 newly_available_text。你可以保留新段落作為新證據。你不可以說僱主更改了該條款。沒有計算字句差異,因為當時沒有舊字句。
J4 有不同的來源識別碼和相同的職稱。相同職稱不是相同識別。不要把兩份正文比較成同一份職位的兩個版本。在重複與重新刊登指南確定該關係之前,狀態是 unresolved。如果該指南不能確定這一對,就維持 unresolved。
J5 在兩個時間都有 full 文字,所選條款的字句相同。該條款的狀態是 no_observed_change。這不是每個欄位都保持相同的證明。另一項條款仍然可以不同。每項所選條款各自核對。
這 5 對分別是 1 次實質字句變更、1 次格式變更、1 次可用狀態變更、1 次未解決識別,以及 1 項未變更條款。那是 5 個狀態,每個狀態一對。這些計數都不是市場計數。
來源與延伸閱讀
作者 Chronometrica · 更新日期
返回頂端 ↑

