linkedin-job-scraper について
linkedin-job-scraper は、JobSpy を利用する Python ラッパーで LinkedIn の求人を検索するスキルです。条件で絞り込み、結果を CSV と概要テーブルに出力します。
主な機能
- 01職種やキーワードで検索
- 02勤務地や掲載時期で絞り込み
- 03企業や雇用形態で絞り込み
- 04求人の全文を取得
- 05結果を CSV に出力
活用シーン
- 01最近のエンジニア求人を検索
- 02特定企業の募集状況を追跡
- 03リモートの契約求人を検索
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ gooseworks-ai/ goose-skills --skill linkedin-job-scraperインストール後、Claude Code で/linkedin-job-scraperを入力して読み込まれたか確認します。
同梱ファイルscripts/jobspy_scraper.pyskill.meta.json
詳細
LinkedIn スクレーパー
概要
このスキルは、JobSpy ライブラリを薄くラップした tools/jobspy_scraper.py を実行して、LinkedIn の求人情報を検索します。インストール、パラメーターの設定、実行、結果の解釈を行います。
クイックスタート
依存関係を一度インストールします(Python 3.10 以降が必要です):
python3.12 -m pip install -U python-jobspy --break-system-packages
スクレーパーを実行します:
python3.12 tools/jobspy_scraper.py \
--search "software engineer" \
--location "San Francisco, CA" \
--results 25 \
--output .tmp/jobs.csv
結果は CSV として保存され、概要テーブルが出力されます。
ワークフロー
ステップ 1 — リクエストを理解する
ユーザーのメッセージから、次の項目を特定します:
- 検索語 — 職種名、役割、キーワード(必須)
- 場所 — 都市、州、または「Remote」(任意ですが、指定を推奨)
- 希望する件数 — 指定がなければ 25 件を使用
- 新しさ — ユーザーが最近の求人(例:「過去 48 時間」)を希望する場合は、
hours_oldフィルターを使用 - 企業フィルター — 特定の企業を対象とする場合は
linkedin_company_idsを使用 - 求人の詳細な説明 — 求人説明のテキストが必要な場合は
--fetch-descriptionsを設定
不明確な点(例:「AI の求人を探して」)があれば、妥当なデフォルト値を選び、使用した値をユーザーに伝えます。
ステップ 2 — コマンドを作成する
以下のパラメーターを使用して、tools/jobspy_scraper.py コマンドを作成します。
出力は常に .tmp/ に保存し、不要になったら削除でき、簡単に見つけられるようにします。
python tools/jobspy_scraper.py \
--search "<term>" \
--location "<location>" \
--results <N> \
[--hours-old <N>] \
[--fetch-descriptions] \
[--company-ids <id1,id2>] \
[--job-type fulltime|parttime|contract|internship] \
[--remote] \
--output .tmp/<descriptive_filename>.csv
注: --hours-old と --easy-apply は同時に使用できません(LinkedIn API の制約です)。
ステップ 3 — スクリプトを実行する
コマンドを実行します。スクリプトは進捗メッセージと、見つかった結果の概要を出力します。
tools/jobspy_scraper.py が見つからない場合は、skills/linkedin-job-scraper/scripts/jobspy_scraper.py を読み込み、ファイルを tools/ に作成する必要があるか確認してください。
ステップ 4 — 結果を解釈して提示する
実行後:
- 見つかった求人数を報告します
- 簡潔な表を表示します:タイトル | 企業 | 場所 | 給与 | 投稿日
- ユーザーがファイルを開けるよう、出力ファイルのパスを記載します
- 結果が 0 件の場合:検索語を広げるか、場所のフィルターを削除するよう提案します
パラメーター一覧
| フラグ | 説明 | デフォルト |
|---|---|---|
--search | 職種名/キーワード | 必須 |
--location | 都市、州、または国 | なし |
--results | 取得する結果数 | 25 |
--hours-old | N 時間以内に掲載された求人のみ | なし |
--fetch-descriptions | 求人の詳細な説明を取得(時間がかかります) | false |
--company-ids | カンマ区切りの LinkedIn 企業 ID | なし |
--job-type | fulltime、parttime、contract、internship | すべて |
--remote | リモート求人のみをフィルター | false |
--output | CSV 出力先のパス | .tmp/jobs.csv |
出力列
CSV 出力には次の項目が含まれます:
| 列 | 説明 |
|---|---|
TITLE | 職種名 |
COMPANY | 雇用主名 |
LOCATION | 都市/州/国 |
IS_REMOTE | True/False |
JOB_TYPE | fulltime、contract など |
DATE_POSTED | 求人の掲載日 |
MIN_AMOUNT | 最低給与 |
MAX_AMOUNT | 最高給与 |
CURRENCY | 通貨コード |
JOB_URL | LinkedIn の求人情報への直接リンク |
DESCRIPTION | 求人の詳細な説明(--fetch-descriptions を使用した場合) |
JOB_LEVEL | 職位レベル(LinkedIn 固有) |
COMPANY_INDUSTRY | 業界分類 |
よくある使用例
スタートアップの最近のエンジニア職を探す:
python tools/jobspy_scraper.py --search "growth engineer" --location "New York" \
--results 50 --hours-old 72 --output .tmp/growth_eng_nyc.csv
特定の企業が募集している職種を確認する:
# First find the LinkedIn company ID from the company's LinkedIn URL
python tools/jobspy_scraper.py --search "engineer" --company-ids 1234567 \
--results 100 --fetch-descriptions --output .tmp/company_hiring.csv
リモートの契約職を探す:
python tools/jobspy_scraper.py --search "data analyst" --remote \
--job-type contract --results 30 --output .tmp/remote_contracts.csv
エラー処理
| エラー | 対処方法 |
|---|---|
ModuleNotFoundError: jobspy | pip install -U python-jobspy を実行します |
| 結果が 0 件 | 検索語を広げ、場所を削除し、--results を増やします |
| レート制限/ブロック | 数分待ち、規模の大きなスクレイピングを続けて実行しないようにします |
hours_old and easy_apply cannot both be set | どちらか一方のフラグを削除します |
スクリプトの場所
スクレーパースクリプトは tools/jobspy_scraper.py にあります。
存在しない場合は、skills/linkedin-scraper/scripts/jobspy_scraper.py から tools/ にコピーします:
cp skills/linkedin-job-scraper/scripts/jobspy_scraper.py tools/