
Actorは、ホスティング環境で動作するデータ収集プログラムです。Taskは、保存された入力プリセットです。プリセットとは、名前を付けて再利用できる入力設定の組み合わせです。ここで使うActorは、Indeed Jobs Scraperです。公開求人サイトのIndeedから、求人レコードを行単位で収集します。経験要件の分類は、すべて自分で行います。Actorは、この分類を行いません。
公開Taskは、入力設定の出発点にすぎません。Actorが代わりに求人を判定するという意味ではありません。
最初に判定基準を書く
このActorには、エントリーレベルを定める統一基準はありません。行を読む前に、基準を書く必要があります。対象に含める基準とは、どの求人が目的に合うかを決める1文です。
この記事では、対象に含める基準を1つ使います。関連する仕事の経験が不要であることが、説明文に明記されているという基準です。ここでいう関連する経験とは、同じ種類の仕事の経験です。
「必須」は、その経験が必要だと求人に書かれていることを意味します。「必須」「必要」といった言葉が、その判断材料です。「歓迎」は、経験を求めているものの、必須とは書かれていないことを意味します。「不要と明記」は、その経験が不要だと求人に書かれていることを意味します。「研修あり」は、研修を提供すると求人に書かれていることを意味します。「不明」は、こうした判断材料がないことを意味します。「明記」とは、その内容が求人の文言ではっきり示されていることです。
「2年の経験がある方歓迎」と「2年の経験必須」は、同じ意味ではありません。数字だけでは判断できません。職種名だけでも判断できません。その前後の文言を読んでください。
別の基準を設けることもできます。例えば、給与が支払われる研修の明記です。その基準を選ぶ場合は、その基準だけで集計してください。1つの集計に2つの基準を混ぜないでください。後に示す架空の集計では、関連する仕事の経験が不要という基準だけを使います。
検索上のラベルは、雇用主の要件全体を表すものではありません。求人に「ジュニア」と書かれていても、専門職の免許を必須とする場合があります。免許は、経験とは別の条件です。研修があっても、求人で求められる免許、試験、学位、その他の証明が不要になるわけではありません。
読み切れるサンプルを収集する
現在の公開ビルドは1.2.14です。受け付ける入力項目は、searchTerm、country、location、maxItems、maxPagesPerSearch、postedWithinDays、sortBy、saveOnlyUniqueItemsです。他の入力名も使えるとは考えないでください。
保存済みの公開Taskは、2026-10-13時点で最新でした。その入力設定は広い範囲を対象にしています。読み込むサンプルの設定としてそのまま使わず、設定の出発点として使ってください。
{
"country": "us",
"searchTerm": "software engineer",
"maxItems": 100,
"postedWithinDays": "7",
"sortBy": "date",
"maxPagesPerSearch": 2,
"saveOnlyUniqueItems": true
}この保存済み入力では、countryの`us`は米国を意味します。searchTermは`software engineer`です。maxItemsは100です。maxPagesPerSearchは2です。postedWithinDaysは文字列の`7`なので、過去7日間を指定しています。sortByは`date`なので、日付順を指定しています。saveOnlyUniqueItemsはtrueです。
職種とは、読みたい仕事の種類です。市場とは対象国のことで、locationを設定した場合はその地域も含みます。最初の確認では、職種と市場を1つずつ設定してください。maxItemsを2に設定します。maxPagesPerSearchを1に設定します。`software engineer`を、その1つの職種に置き換えます。特定の地域が必要な場合だけ、locationを設定してください。
上限とは、Actorに保存を依頼する最大数です。maxItemsは行数の上限です。maxPagesPerSearchは、各検索のページ数の上限です。上限を2にすると、保存した説明文をすべて読めます。この上限から、実際に存在する求人の数は分かりません。過去7日間を対象に実行しても、取得できない求人がある可能性があります。実行とは、Actorを1回動かすことです。
現行版に対応した対照実行では、小さい上限を使いました。結果は2行でした。各行のIDとURLは、同じ求人を指していました。descriptionTextは全文を取得できていました。実行は上限に達して停止しました。この結果が裏付けるのは、本文を収集できたことだけです。以下の架空の行についての調査結果ではありません。市場全体を網羅した結果でもありません。
加工前の行を保存してください。実際に使った入力設定も保存します。OUTPUTと、上限や失敗についての注記も保存します。OUTPUTは、保存された結果ファイルです。結果が空でも、求人が存在しない証拠にはなりません。上限に達しても、すべての求人を確認できた証拠にはなりません。
Actorが提供するのは、現在公開されている本文です。過去の説明文は提供しません。雇用主が本文を編集した時刻も提供しません。応募者の状況も提供しません。研修計画も提供しません。経験要件の分類も行いません。
以下の架空の台帳は、ソフトウェアエンジニアの検索結果ではありません。2行の対照実行でもありません。保存済みTaskと架空の例は、目的が異なります。
これらのフィールドを残す
フィールドとは、行の中にある名前付きの値です。行とは、収集した求人レコード1件です。jobId、title、companyName、locationRaw、descriptionText、descriptionStatus、jobUrl、query、searchLocation、scrapedAtを使ってください。
jobIdは文字列のまま保持してください。数値として保存すると、表計算ソフトが値を変える場合があります。IDは、収集したときと同じ文字列を保つ必要があります。
descriptionTextは、収集した説明文です。descriptionStatusは、その本文を取得できたかどうかを示します。`full`は、説明文を収集できたことを意味します。`missing`は、収集できなかったことを意味します。抜粋を示す状態値があるとは保証されていません。本文を収集できても、雇用主の文書全体を取得したとは限りません。
seniority、employmentType、salaryRaw、postedAt、postedAtRawは、欠損する場合があります。欠損は不明を意味します。不明は0ではありません。seniorityが空欄でも、エントリーレベルという表示があることにはなりません。
title、seniority、queryはラベルです。名称や検索内容を示します。descriptionTextの代わりにはなりません。postedAtは、そのフィールドがある場合に、出典が示した公開日時を表します。scrapedAtは、Actorがその行を収集した日時です。どちらの日時も、その後に雇用主が編集したことの証拠にはなりません。
行を比較する前に、公開済みの重複・再掲載ガイドを使ってください:求人の重複と再掲載。再掲載された求人が、別の求人に見える場合があります。同じ求人の2つのコピーを、雇用主の異なる2つの要件として扱わないでください。Taskの重複除外設定を使っても、この確認は必要です。
8つの確認を行う
- 収集前に、対象に含める基準を1文で書いてください。この記事の基準は、関連する仕事の経験が不要であることです。給与が支払われる研修が明記されていれば、それも記録できます。ただし、その記録を同じ集計に混ぜないでください。後から職種名に影響されて基準を変えないよう、最初に基準を書きます。Actorは、求人サイトの検索を修正するものではありません。確認できるのは、収集した行だけです。
- 行を判定する前に、求人の同一性と本文を確認してください。jobIdとjobUrlが一致するか確認します。descriptionStatusを読みます。状態がmissingなら、説明文は取得できなかったと記録し、そこで止めます。titleと、値があればseniorityは、ラベルとして残します。そのうえで、descriptionTextの要件を読みます。検索に表示された行でも、自分の基準に合わないことがあります。検索結果に載っていることは、雇用主による保証ではありません。
- 経験に関する各文と、その前後にある条件を示す言葉を探してください。条件を示す言葉には、「必須」「必要」「歓迎」「不要」「研修」があります。その文を正確にコピーし、jobIdとjobUrlを一緒に残します。「必須と明記」「歓迎と明記」「不要と明記」「研修あり」「不明」のいずれかに分類します。研修と経験の両方が書かれている場合は、両方を記録してください。1つの言葉にまとめないでください。数字だけでは足りず、条件を示す言葉も必要です。
- 学歴、証明、同じ種類の仕事に関する条件は、別々の行に記録してください。学位、免許、試験、ツールのスキルは、経験要件の分類ではありません。研修についての記載を理由に、それらの条件も満たすと判断しないでください。1つの求人に異なる2つの経験要件が書かれている場合は、両方の文を残し、矛盾ありと記録します。より満たしやすい文だけを残さないでください。この手順のために示す次の2文は、追加の架空例です。以下の6行のいずれにも含まれません。ある行に「経験不要」と書かれています。その後の行に「3年の経験必須」と書かれています。この2文は矛盾しています。結果は「基準を満たす」ではなく、「矛盾あり」です。
- 収集した求人ごとに、台帳の行を作ってください。台帳とは、正確な文言と分類を記録する確認表です。表示されたラベル、経験要件の分類、その他の条件、研修の記載、本文の取得状態、確認結果を含めます。確認結果とは、書いた基準に照らして自分で付けるラベルです。説明文が基準を裏付ける場合は、`supported_label_under_rule`を使います。ラベルと説明文が一致しない場合は、`label_conflict`を使います。文言だけでは基準を満たすか決められない場合は、`unclear`を使います。この3つの状態は、自分で付けるものです。Actorのフィールドではありません。
- jobIdが分かり、説明文の全文があり、サンプルの対象に入る行だけを集計してください。説明文を取得できなかった行は、別に集計します。IDを特定できない行も、別に集計します。未解決のIDとは、1件の求人に対応付けられないIDです。経験についての文がないことを、経験年数0年と読まないでください。このサンプルから、雇用主がそのラベルを使った理由は分かりません。検索でそのラベルが使われた理由も分かりません。
- 詳しく読むための小さな候補リストを作ってください。歓迎条件がある求人も、そのリストに残せます。自動的に除外する理由にはなりません。必須とする文は、求人に書かれた根拠です。あなたに対する例外を示すものではありません。応募時に例外を認められるのは、雇用主だけです。後で自分の職歴を1つの職種と比較するときは、スキル適合性ガイドを使ってください。採用されやすさのスコアは付けないでください。
- 各出典のIDとURLを付けて、台帳を提出してください。応募する前に、応募ページにある雇用主の指示を読みます。収集した説明文と、そのページの内容が一致しない場合があります。
6件の架空求人を分類する
以下の6行は、すべて架空です。Actorの出力ではありません。2行の対照実行でもありません。実在する雇用主についての結果を示すものではありません。IDは説明用の文字列です。実際のURLはありません。companyNameとlocationRawは提示されていません。不明のままにしてください。作り足さないでください。
サンプルの基準は、2段階です。まず、エントリーレベルの行を残します。シニア職は対象外です。次に、残った全文のある行に、関連する仕事の経験が不要という基準を適用します。
J1の職種名は「ジュニアアナリスト」です。説明文には、「分析業務の経験不要。研修あり」と書かれています。また、表計算の試験も必須です。分析業務の経験が不要と書かれているため、経験要件の分類は「不要と明記」です。これは書いた基準に合うので、確認結果は`supported_label_under_rule`です。同じ文には、研修の提供も書かれています。「研修あり」は、別の注記として記録します。研修中に給与が支払われるとは書かれていません。給与の支払いがあると付け加えないでください。表計算の試験は、引き続き必須です。試験は経験ではありません。経験の基準を満たしても、試験は不要になりません。次に、研修の記載を頼りにする前に、試験の内容を読んでください。
J2の職種名は「エントリーレベルのアナリスト」です。説明文には、「分析業務の実務経験2年必須」と書かれています。職種名はエントリーレベルとしています。しかし、文中に「必須」とあるため、2年の経験は必須です。書いた基準は、関連する仕事の経験が不要であることを求めています。説明文は、その基準に合いません。職種名によって説明文の意味が変わることはありません。確認結果は`label_conflict`です。次に、2年の経験を明確な根拠として残してください。例外を認めるのは雇用主であり、この台帳ではありません。
J3には、「1年の経験がある方歓迎。新卒歓迎」と書かれています。この例では職種名は示されていません。「歓迎」と書かれ、「必須」とは書かれていないため、分類は「歓迎と明記」です。基準では、経験が不要であることを示す文言を求めています。J3には、その記載がありません。歓迎条件は、必須の応募条件ではありません。一方で、歓迎条件は「経験不要」という文でもありません。J3を基準に合う求人として数えないでください。ただし、1年の経験が歓迎されていることだけで除外しないでください。「新卒歓迎」は、別の記載です。それによって、ここに書かれていない条件が不要になるわけではありません。J3は詳しく読む候補リストに残します。次に、判断する前に説明文全体を読んでください。
J4には、「レポート業務の経験」と書かれています。職種名は示されていません。この文には、「必須」「必要」「歓迎」「不要」のいずれもありません。研修の提供も書かれていません。経験に触れた表現だけでは分類できません。確認結果は`unclear`です。次に、「必須」と補わず、「0年」とも補わないでください。
J5は、検索で返されたシニア職です。エントリーレベルのサンプルには、シニア職を含めません。J5は対象外です。除外し、その注記を残してください。注記を削除すると、収集した全体の件数が実際より少なく見えます。次に、J5の経験に関する文言を、エントリーレベルの集計に含めないでください。
J6には、説明文の全文がありません。descriptionStatusはmissingです。取得していない文言は分類できません。必要な経験は不明です。不明は経験年数0年ではなく、基準を満たすという意味でもありません。次に、J6を分類済みの集計から外してください。
| 行 | 表示されたラベル | 経験に関する正確な文言 | 経験要件の分類 | その他の条件 | 研修 | 本文の取得状態 | 書いた基準に照らした確認結果 | 次に読む内容 |
|---|---|---|---|---|---|---|---|---|
| J1 | ジュニアアナリスト | 分析業務の経験不要 | 不要と明記 | 表計算の試験必須 | 研修あり | full | supported_label_under_rule | 試験の内容を読む。無視しない。 |
| J2 | エントリーレベルのアナリスト | 分析業務の実務経験2年必須。 | 必須と明記 | 記載なし | 記載なし | full | label_conflict | 職種名をうのみにしない。 |
| J3 | 記載なし | 1年の経験がある方歓迎。新卒歓迎。 | 歓迎と明記 | 新卒歓迎 | 記載なし | full | 歓迎条件あり。詳しく読む候補として残す | 1年の経験を必須と扱わない。 |
| J4 | 記載なし | レポート業務の経験 | 不明 | 記載なし | 記載なし | full | unclear | 「必須」や「0年」と補わない。 |
| J5 | シニア職 | 除外後は使用しない | 分類しない | サンプルの基準により除外 | 使用しない | 今回の集計では使用しない | 対象外。除外の記録を残す | 除外の注記を残す。 |
| J6 | 記載なし | 説明文なし | 不明。0ではない | 不明 | 不明 | missing | 本文を取得できず | この行は分類しない。 |
この表は架空のものです。実際の求人では、その行に実際のjobIdとjobUrlを追加してください。この分類を実在する雇用主にそのまま当てはめないでください。
架空の行を集計する
架空のデータセットには、収集した6行があります。J1、J2、J3、J4、J5、J6です。
対象に合い、全文があって分類できるのは、J1、J2、J3、J4の4行です。
対象外は、J5の1行です。
本文を取得できていないのは、J6の1行です。
4 + 1 + 1 = 6。
このデータセットには、未解決のIDはありません。もしあれば、4行の集計には含めず、J6と一緒に分けておきます。
4行の内訳は次のとおりです。
- J1は、関連する仕事の経験が不要という基準を満たします。該当数は1です。
- J2は、基準と矛盾します。該当数は1です。
- J3には、歓迎される経験が記載されています。該当数は1です。
- J4は、不明のままです。該当数は1です。
1 + 1 + 1 + 1 = 4。
4件中1件という数字を、成功率と呼ばないでください。1つの率にまとめると、矛盾、歓迎条件、不明な文言の違いが見えなくなります。それぞれの結果には、異なる次の対応が必要です。この基準を、エントリーレベルの普遍的な定義とも呼ばないでください。この集計が示すのは、1つの明文化した基準に照らした、これらの架空の文だけです。
1件の求人を文言から判断する
実際の求人を1件選んでください。経験に関する文をコピーし、そのjobIdとjobUrlを一緒に記録します。その文を、必須、歓迎、不要、研修あり、不明のいずれかに分類します。試験、免許、学歴は、別々の行に書きます。経験に関する2つの文が一致しない場合は、両方を残し、矛盾ありと記録します。descriptionStatusがmissingなら、不明と書きます。台帳のその行を完成させてから、文言をエントリーレベルの表示と比較してください。
台帳に正確な文言、分類、その他の条件、本文の取得状態がそろったら、確認は完了です。職種名にジュニアやエントリーレベルと書かれているだけでは、確認は完了しません。
出典と参考資料
著者 Chronometrica · 更新日
ページの先頭へ ↑

