職位卡經用語標註冊連到比較格。
用一條已寫明的規則點算用語。

相關語境指用語周圍的詞顯示,這段文字是關於該技能。一個散落的字母不是相關語境。Actor 是託管的數據收集程式。Task 是已儲存的輸入預設。Actor 收集來源列。你標註技能用語。

1. 先界定樣本組

在標註任何技能之前,先寫下樣本組規則。樣本組是同一職位、同一市場、同一日期規則下的職缺組。把日期規則寫在樣本組筆記中。日期規則是你接受的時間範圍。

在標註之前,先為你要報告的數字命名。你可以報告有多少職缺有該項技能使用。你可以報告有多少僱主有該項使用。你可以報告這些詞出現多少次。這是三個不同的數字。不要把它們混合。

占比是一個計數除以分母。分母就是這個除數。你要在知道哪些職缺有完整文字之後,才設定分母。在你為占比命名之前,不要標註用語。

對於較早的月份,使用你已經儲存的描述快照。Actor 不能收集 2020 或 2021 年的描述。新的一次執行只能開始新的樣本組。它不能重建舊的樣本組。

2. 收集並儲存來源列

使用 Indeed Jobs Scraper Actor。公開組建 1.2.14 接受這些欄位:searchTerm、country、location、maxItems、maxPagesPerSearch、postedWithinDays、sortBy,以及 saveOnlyUniqueItems。已儲存的 Task 於 2026 年 10 月 13 日做過檢查。Task 只是起始輸入。它不會替你完成這次點算。

已儲存的 Task 輸入是:

json
{
  "country": "us",
  "searchTerm": "software engineer",
  "maxItems": 100,
  "postedWithinDays": "7",
  "sortBy": "date",
  "maxPagesPerSearch": 2,
  "saveOnlyUniqueItems": true
}
2. 收集並儲存來源列

這個 Task 把 country 設為 us,把 search term 設為 software engineer。它沒有設定城市。只有當你的市場小於該國家時,才加入 location。當你研究其他對象時,更換職位與市場。同一次執行只保留一個職位與一個市場。

上限就是 maxItems 限制。這個 Task 把上限設為 100 列,並最多讀取 2 個搜尋頁。這個寬上限不是第一次文字檢查。第一次檢查只保留一個職位與一個市場。把 maxItems 設為 2。把 maxPagesPerSearch 設為 1。第一次檢查的輸入是:

json
{
  "country": "us",
  "searchTerm": "software engineer",
  "maxItems": 2,
  "postedWithinDays": "7",
  "sortBy": "date",
  "maxPagesPerSearch": 1,
  "saveOnlyUniqueItems": true
}
2. 收集並儲存來源列

在這個組建上,一次設有上限的執行傳回兩列。每一列都有來源職位 ID 與來源 URL。每一列都有完整描述文字。該次執行達到 maxItems。從你自己的輸出複製 ID 與 URL。不要自行輸入新的 ID。這次執行顯示文字收集可行。它不是技能結果。它也不是下文的虛構樣本組。

已儲存的 Task 把 saveOnlyUniqueItems 設為 true。當 Actor 收集列時,該設定可以減少重複。它不會完成重複審查。再刊登是同一個空缺再次刊登。在標註之前,移除已審查的重複列,以及已審查的再刊登列。該審查使用重複與再刊登指南。把移除數量記在筆記中。

每一來源列是一筆已收集紀錄。職缺是你為點算而保留的一列。把 jobId 存成文字。不要讓試算表把 jobId 轉成數字。

使用這些輸出欄位。執行計數是整次執行的一個數字。它不是職缺列。

2. 收集並儲存來源列
輸出名稱種類用法
jobId列欄位以文字儲存。
title列欄位保留它。不要把職銜當作完整要求。
companyName列欄位保留它,供僱主點算使用。
locationRaw列欄位保留來源地點文字。
descriptionText列欄位從這段文字標註技能。
descriptionStatus列欄位只使用 full 或 missing。
jobUrl列欄位保留來源 URL。
query列欄位保留該列的搜尋文字。
searchLocation列欄位保留該列的搜尋地點。
scrapedAt列欄位這是收集時間。
seniority可選列欄位它可以缺漏。它不是完整要求。
employmentType可選列欄位它可以缺漏。
salaryRaw可選列欄位它可以缺漏。缺漏不是薪金為零。
postedAt可選列欄位它可以缺漏。不要編造刊登月份。
postedAtRaw可選列欄位它可以缺漏。
rowsExcludedByCompany執行計數單獨保留這個計數。
rowsExcludedByDate執行計數單獨保留這個計數。
rowsExcludedBySalary執行計數單獨保留這個計數。

當 descriptionText 存在時,descriptionStatus 為 full。當文字不存在時,它為 missing。不要另加 snippet 狀態。這裡的完整文字是來源給出的文字。它不是僱主整份文件的保證。

scrapedAt 是 Actor 收集該列的時間。它不是僱主刊登職位的月份。如果 postedAt 缺漏,刊登月份保持未知。

rowsExcludedByCompany 是因公司原因而排除的列的執行計數。rowsExcludedByDate 是因日期原因而排除的列的執行計數。rowsExcludedBySalary 是因薪金原因而排除的列的執行計數。不要把這三個計數加成一個總數。不要把計數器變成職缺列。這次對照給出每個計數。三者都沒有省略。rowsExcludedByCompany 是 0。rowsExcludedByDate 是 0。rowsExcludedBySalary 是 0。不要為被省略的計數器寫零。這三個計數器都存在,所以每個零都是該計數。執行對照表列出每個欄位及其值。這次對照沒有給出的欄位是未知。日後缺席的欄位是未知。目前這個兩列、設有上限的 Indeed 對照有這些輸出值:requestedMaxItems: 2, candidateItemsSeen: 100, jobsSaved: 2, pagesParsed: 1, blockedPages: 0, failedRequests: 0, stopReason: "max_items_reached", rowsExcludedByCompany: 0, rowsExcludedByDate: 0, rowsExcludedBySalary: 0。這次執行不是未知。日後缺席的欄位仍然未知。

儲存實際執行的輸入、原始列與輸出。寫下你設定的 maxItems,以及傳回的列數。如果兩個數字相等,該次執行已達到上限。達到上限並不表示傳回的列涵蓋所有相符職位。如果執行沒有傳回任何列,寫明該次執行是空的。空的執行不能證明沒有職位存在。如果執行失敗,儲存失敗紀錄。不要用技能零去填補失敗的執行。

把 descriptionText 缺漏的列留在已標註集合之外。每一這樣的列,把缺文計數加 1。缺文不是技能不存在的職缺。

Actor 給出目前的公開列。它不給出舊的描述文字。它不給出僱主編輯時間。它不給出申請人狀態。它不給出學習計劃。它不為技能用語加標籤。你用以下規則為它們加標籤。

3. 配對之前先寫技能清單

在搜尋文字之前,先寫技能清單。技能鍵是你為一項技能儲存的那一個名稱。別名是同一技能的另一種寫法。語元是整個詞,或一個獨立符號。它不是較長詞語的一部分。排除項是文字中找到、但標註規則拒絕的配對結果。

配對 SQL、Structured Query Language 及以下其他鍵時,忽略字母大小寫。當這些詞指該語言時,讓 SQL 與 Structured Query Language 共用一個鍵。Java 與 JavaScript 保持分開。只在相關文字中,把 R 配對為完整的技能語元。不要配對另一個詞裡面的字母 R。

版本標籤,例如語言版本,需要一條寫明的規則。產品名稱需要一條寫明的規則。在標註之前決定規則。閱讀時不要猜測。

這份技能清單用於本文的虛構樣本組。它不是 Actor 提供的清單。你自己的樣本組需要你自己的鍵。

3. 配對之前先寫技能清單
技能鍵允許的別名語元規則排除項
SQLSQL; Structured Query Language當文字指該語言時,兩個別名共用此鍵。不要把此鍵用於不同片語。
PythonPython配對整個詞。不要把非必需片語標註為必需。
RR在相關技能文字中配對完整語元。不要配對詞語裡面的字母。
JavaJava配對整個詞。不要配對 JavaScript。
JavaScriptJavaScript配對整個詞。不要把 Java 計成 JavaScript。

這份清單沒有版本規則,也沒有產品名稱規則。虛構文字沒有版本,也沒有產品名稱。如果你的文字有其中一項,先把規則加進清單。

4. 標註每一段

找出包含技能名稱的段落。然後閱讀它周圍的詞。類別是提及的種類。使用這些類別:

  • 必需指文字說明申請人必須具備該技能。
  • 優先指文字要求該技能,但沒有說明申請人必須具備它。
  • 情境指文字說明工作使用該技能,但並不要求申請人具備它。
  • 明文非必需指文字說明申請人不需要該技能。
  • 未能判定指你無法從詞語判斷類別。

字面提及指技能名稱出現在文字中。即使類別不是必需,仍保留字面提及。不要捨棄該句。

下文的虛構樣本組包含「no Python experience required.」這些詞。這些詞是 Python 的字面提及。類別是明文非必需。類別不是必需。

同一樣本組包含「we use R for reports.」這些詞。這些詞是 R 的字面提及。類別是情境。除非文字同時說明申請人必須具備 R,否則不要把 R 標為必需。

「reports」裡面的字母 r 不是技能 R。「required」裡面的字母 r 不是技能 R。

如果一份職缺對同一技能有兩個類別,每個類別都要標。如果同一類別在一份職缺中重複,該類別只標一次。

5. 建立職缺矩陣

用語對職缺矩陣是一張表,每個已標註職缺佔一列。每個技能類別有自己的欄。完整文字有該類別時填 1。你讀過完整文字而該類別不存在時填 0。0 表示你讀過該文字。它不表示文字缺漏。

同一鍵在一份職缺中重複提及,在該類別仍然只做成一個職缺標記。該類別在職缺中的出現標記就是那個 1。需要時,把原始出現次數放在另一張表。一次原始出現是該鍵出現一次。不要把原始出現次數加進職缺欄。

一份職缺可以在優先為 1、在必需為 0。一份職缺可以在明文非必需為 1、在必需為 0。一份職缺可以在情境為 1、在必需為 0。不要合併這些欄。

不要把缺漏的描述放進矩陣,成為一列零。把它留在缺文計數。

6. 設定分母

分母是同一樣本組中,不同的完整文字職缺的數目。不同指同一職缺只計一次。只計算重複審查之後仍然留下的職缺。只計算 descriptionStatus 為 full 的職缺。

職缺占比等於類別計數除以分母。把占比寫成「分母中的若干計數」。在旁邊報告缺文計數。在旁邊報告不確定 ID 計數。不確定 ID 是空白、已更改,或與另一列衝突。把不確定 ID 留在分母之外。

也要報告標註不確定。標註不確定指審查者對類別不一致。在紀錄寫明議定類別之前,把有爭議的職缺留在必需計數之外。不要把爭議悄悄變成零。

僱主覆蓋是具有該類別的不同僱主數目。把該僱主計數除以分母中的不同僱主數目。一名僱主可以撰寫多份職缺。職缺占比可以很高,但這些職缺仍可能只來自少數不同僱主,僱主占比因而偏低。兩個占比都要報告。

這些占比只描述你的樣本組。它們不是全國技能需求。它們不是申請人能力的量度。

7. 用相同規則比較樣本組

只在樣本組規則相符時,才比較兩個月。保持相同的職位、市場、查詢、日期範圍、上限與技能清單版本。技能清單版本是你給予一份已儲存技能清單的名稱。

如果你更改別名或類別規則,職位文字不變,占比仍可以改變。該改變是標註改變。在解讀新占比之前,先報告這項標註改變。

如果上限、查詢、市場或日期範圍改變,樣本已改變。來源文字缺漏也是覆蓋改變。在解讀占比改變之前,先報告樣本改變。不要把標註改變當作樣本改變。

搜尋樣本不顯示改變的原因。它不顯示整個市場有增長。技能占比的改變不是職缺數目的改變。職缺數目隨時間的變化,使用招聘趨勢指南。

8. 儲存紀錄

儲存技能清單及其版本名稱。儲存你標註的每一段,連同職缺 ID、技能鍵與類別。儲存矩陣。儲存分母紀錄。

分母紀錄應包括:

  • 職位、市場、查詢、日期範圍與上限。
  • 實際執行的輸入與 Actor 組建。
  • 傳回的列數,以及該次執行是否達到 maxItems。
  • 任何失敗紀錄。
  • rowsExcludedByCompany、rowsExcludedByDate 與 rowsExcludedBySalary;每個被省略的計數器則記為未知。
  • 你移除的重複列。
  • 缺文計數。
  • 不確定 ID 計數。
  • 標註不確定計數。
  • 分母。
  • 該分母中的僱主計數。

第二個人應能從已儲存的段落出發,到達同一個矩陣格。如果不能,紀錄並不完整。

停在用語點算。重複的職責可以引導後來的學習選擇。該選擇不是這次點算。這次點算也不是個人準備程度分數。

點算一個虛構樣本組

本節五段描述都是虛構。它們不是 Actor 結果。它們不是真實的技能發現。J1 至 J5 是標籤。它們不是真實來源 ID。上面的技能清單是這個樣本組的規則。

點算一個虛構樣本組
標籤僱主descriptionTextdescriptionStatus
J1ASQL required. SQL reports run daily. Python preferred.full
J2AStructured Query Language required; no Python experience required.full
J3BJavaScript required; we use R for reports.full
J4CJava required; R preferred.full
J5D`""`missing

這些標籤沒有 scrapedAt 值,也沒有 postedAt 值。不要為它們指定刊登月份。

J1 與 J2 使用僱主 A。它們的文字不同。這段虛構保留兩份職缺。它不把 J2 稱為 J1 的再刊登。如果真實審查把 J2 作為再刊登而移除,分母會改變。這段虛構不作該判定。

J5 有已知標籤,沒有完整文字。J5 留在矩陣之外。缺文計數是 1。不確定 ID 計數是 0,因為標籤已知,而文字才是缺文。不要為 J5 編造文字。

段落紀錄是:

點算一個虛構樣本組
職缺段落技能鍵類別
J1SQL required.SQL必需
J1SQL reports run daily.SQL情境
J1Python preferred.Python優先
J2Structured Query Language requiredSQL必需
J2no Python experience requiredPython明文非必需
J3JavaScript requiredJavaScript必需
J3we use R for reportsR情境
J4Java requiredJava必需
J4R preferredR優先
J5沒有完整文字無未標註

一次出現是技能文字出現一次。出現標記是一個類別在一份職缺上的一個標記。每份職缺的每個類別只標一次。第二句有相同的鍵與相同的類別,會增加一次原始出現。它不會增加第二個出現標記。第二句有相同的鍵但不同的類別,會得到自己的出現標記。不要因為該鍵也有必需文字,就捨棄該類別。

J1 的第一句 SQL 是必需。它是一次必需出現。J1 的必需出現標記是 1。句子「SQL reports run daily.」是情境。它是一次情境出現。J1 的情境出現標記是 1。J2 計入 SQL,因為 Structured Query Language 是允許的別名。這些詞指該語言,而且該句說明它是必需。該別名是一次必需出現。J2 的必需出現標記是 1。

矩陣只對四段完整文字使用 1 與 0。J5 在這裡不是一列。

點算一個虛構樣本組
職缺僱主SQL 必需SQL 情境Python 必需Python 優先Python 明文非必需R 必需R 情境R 優先Java 必需JavaScript 必需
J1A1101000000
J2A1000100000
J3B0000001001
J4C0000000110
職缺計數`""`2101101111

J1 至 J4 中的每個 0,表示已讀完整文字,而該類別不存在。沒有已標註段落是未能判定,所以未能判定是 4 份中的 0。該零來自一次閱讀。它不是 J5 的缺文。沒有類別在爭議中,所以標註不確定計數是 0。

原始計數留在另一張表。

點算一個虛構樣本組
職缺技能鍵類別原始出現次數
J1SQL必需1
J1SQL情境1
J2SQL必需1
J2SQL情境0
J1Python優先1
J2Python明文非必需1
J2Python必需0
J3R情境1
J4R優先1
J3R必需0
J4R必需0
J3Java必需0
J4Java必需1
J3JavaScript必需1
J4JavaScript必需0

四份有效的完整文字職缺構成分母。職缺是 J1、J2、J3 與 J4。分母中的僱主是 A、B 與 C。該僱主總數是 3。僱主 D 在其外,因為 J5 沒有完整文字。

J1 有 2 次原始 SQL 出現。必需類別有 1。情境類別有 1。J2 有 1 次原始 SQL 出現,該類別是必需。SQL 必需的原始計數是 1 加 1,等於 2。SQL 情境的原始計數是 1。2 加 1 等於 3 次原始 SQL 出現。字面 SQL 總計數保持 3。必需的原始總數是 2。必需的職缺計數也是 2。相同的數字不會使兩個量度變成一個量度。情境出現在必需原始總數之外。SQL 必需的職缺計數是 2。SQL 必需占比等於 2 除以 4。它不等於 3 除以 4。它不等於 2 除以 5。多出的原始提及是情境。它不是多出的職缺。J5 不進入分母。

SQL 情境的職缺計數是 1。SQL 情境占比等於 1 除以 4。不要把 1 份情境職缺加到 2 份必需職缺。J1 會被計兩次。類別保持分開。

兩份 SQL 必需職缺都屬於僱主 A。SQL 必需的僱主占比等於 1 除以 3。那一份 SQL 情境職缺屬於僱主 A。SQL 情境的僱主占比等於 1 除以 3。僱主 A 也撰寫了 4 份職缺中的 2 份。在職缺占比旁邊報告該覆蓋。在這段虛構中,一名僱主就可以改變 SQL 占比。

Python 文字出現在 J1 與 J2。那是兩次字面提及,兩者都留在紀錄上。Python 優先等於 1 除以 4。Python 明文非必需等於 1 除以 4。Python 必需等於 0 除以 4。不要把優先提及加到非必需提及,然後把總和稱為必需。非必需片語仍然是字面提及。

R 文字出現在 J3 與 J4。R 情境等於 1 除以 4。R 優先等於 1 除以 4。R 必需等於 0 除以 4。字面 R 的職缺出現占比等於 2 除以 4。不要把這兩份職缺報告為必需。

Java 必需只有 J4。該占比等於 1 除以 4。JavaScript 必需只有 J3。該占比等於 1 除以 4。J3 的 Java 計數是 0,因為 JavaScript 是不同的鍵。

報告的占比是:

點算一個虛構樣本組
類別職缺職缺占比僱主僱主占比
SQL 必需J1, J24 份中的 2A3 間中的 1
SQL 情境J14 份中的 1A3 間中的 1
Python 必需無4 份中的 0無3 間中的 0
Python 優先J14 份中的 1A3 間中的 1
Python 明文非必需J24 份中的 1A3 間中的 1
R 必需無4 份中的 0無3 間中的 0
R 情境J34 份中的 1B3 間中的 1
R 優先J44 份中的 1C3 間中的 1
Java 必需J44 份中的 1C3 間中的 1
JavaScript 必需J34 份中的 1B3 間中的 1

詞語計數器是一種工具,它找到一個字母序列就加一。兩個詞語計數器結果不符合這條虛構規則。把它們用作規則測試。它們不是軟件產品的分數。

詞語計數器見到 JavaScript 時會標上 Java。它會把 J3 標為 Java。該標記不符合語元規則。Java 保持 4 份中的 1,只來自 J4。

詞語計數器把「no Python experience required」當作 Python 需求,或當作 Python 必需。該標記不符合類別規則。Python 必需保持 4 份中的 0。J2 該句保持明文非必需。

搜尋字母 SQL 也會漏掉 J2。別名規則仍然標上 J2。SQL 必需計數保持 4 份中的 2。

來源與延伸閱讀

作者 Chronometrica · 更新日期

返回頂端 ↑