mcpField
L
linkedin-job-scraper

linkedin-job-scraper

github.com/gooseworks-ai生産性1.3k102 回インストール3 日前に更新
リポジトリ

linkedin-job-scraper について

linkedin-job-scraper は、JobSpy を利用する Python ラッパーで LinkedIn の求人を検索するスキルです。条件で絞り込み、結果を CSV と概要テーブルに出力します。

主な機能

  1. 01職種やキーワードで検索
  2. 02勤務地や掲載時期で絞り込み
  3. 03企業や雇用形態で絞り込み
  4. 04求人の全文を取得
  5. 05結果を CSV に出力

活用シーン

  1. 01最近のエンジニア求人を検索
  2. 02特定企業の募集状況を追跡
  3. 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-oldN 時間以内に掲載された求人のみなし
--fetch-descriptions求人の詳細な説明を取得(時間がかかります)false
--company-idsカンマ区切りの LinkedIn 企業 IDなし
--job-typefulltime、parttime、contract、internshipすべて
--remoteリモート求人のみをフィルターfalse
--outputCSV 出力先のパス.tmp/jobs.csv

出力列

CSV 出力には次の項目が含まれます:

列説明
TITLE職種名
COMPANY雇用主名
LOCATION都市/州/国
IS_REMOTETrue/False
JOB_TYPEfulltime、contract など
DATE_POSTED求人の掲載日
MIN_AMOUNT最低給与
MAX_AMOUNT最高給与
CURRENCY通貨コード
JOB_URLLinkedIn の求人情報への直接リンク
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: jobspypip 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/

コメント