linkedin-easy-apply
Puppeteer/Chromiumを使用してLinkedInの簡単応募検索と応募を自動化します。検証済みの履歴書PDF、勤務地・職種フィルタリング、ステートフルな日次再実行、および慎重な回答ガードレール機能を備えています。
description の原文を見る
Automate LinkedIn Easy Apply searches and applications with Puppeteer/Chromium, a verified resume PDF, remote/job-title filtering, stateful daily reruns, and conservative answer guardrails.
SKILL.md 本文
LinkedIn Easy Apply 自動化
このスキルは、AI コーディング/オペレーションエージェントが反復可能な LinkedIn Easy Apply ワークフローを構築・実行するのに役立ちます。
このスキルは意図的に公開され、認証情報不要です。ユーザー名、パスワード、クッキー、プライベートプロフィールパス、またはユーザー固有のシークレットは含まれていません。
機能
- Easy Apply が有効な LinkedIn Jobs を検索します。
- リモートのみおよび場所制限のある検索に対応します。
- AI、LLM、Claude、OpenAI、Codex、フルスタック、フロントエンド、バックエンド、ウェブ、ソフトウェア、JavaScript、TypeScript、Node、React、Svelte などの設定可能なロールキーワードに焦点を当てます。
- 可能な場合は Direct Apply URL を使用して LinkedIn Easy Apply フローを確実に開きます。
- 検証済みの履歴書 PDF をアップロードします。
- 検証済みの申請者の事実のみに回答します。
- 未知の必須質問、報酬質問、カスタムエッセイ、または主観的なフィールドをスキップします。
- 状態と JSONL ログを保持し、日次の再実行で重複を避けます。
セーフティルール
- LinkedIn 認証情報をスクリプト、スキル、メモリ、ログ、またはレポートに保存しないでください。
- オペレータが手動で一度ログインする永続的なブラウザプロフィールを推奨します。
- CAPTCHA、MFA、不審なログイン確認、本人確認、またはアカウントセキュリティプロンプトで停止します。
- 申請者の事実を捏造しないでください。
- オペレータが提供した回答なしにカスタム自由形式の質問や給与期待に回答しないでください。
- リモートのみのアプリケーションを送信する前に、ハイブリッド/場所の制約について全職務記述書を再確認してください。
環境変数
RESUME_PDF=/absolute/path/to/resume.pdf
CHROME_PROFILE=$HOME/.cache/linkedin-chrome
STATE_DIR=/tmp/linkedin-easyapply-daily
MAX_SCAN=80
MAX_APPLY=10
DRY_RUN=1
SEARCHES='Claude|OpenAI|Codex|LLM engineer|AI engineer|full stack engineer|software engineer'
LOCATION='United States'
REMOTE_ONLY=1
Puppeteer 起動パターン
const puppeteer = require('puppeteer');
const browser = await puppeteer.launch({
headless: false,
executablePath: process.env.CHROME_BIN || '/snap/bin/chromium',
userDataDir: process.env.CHROME_PROFILE || `${process.env.HOME}/.cache/linkedin-chrome`,
defaultViewport: null,
args: ['--no-sandbox', '--disable-setuid-sandbox', '--disable-dev-shm-usage', '--start-maximized']
});
const page = await browser.newPage();
page.setDefaultTimeout(30000);
page.on('dialog', async d => {
try {
if (d.type() === 'beforeunload') await d.accept();
else await d.dismiss();
} catch {}
});
検索ワークフロー
明示的なフィルタを使用して LinkedIn Jobs URL を構築します:
- Easy Apply 用の
f_AL=true。 - リモートのみが必要な場合のリモートフィルタ。
- リクエストされた場合の
United Statesなどの場所。 - 履歴書とターゲット市場に一致する設定可能なキーワード。
候補者を保持するのは、カード/ページがリクエストされた制約をサポートし、タイトル/説明がターゲットロールファミリーと一致する場合のみです。
Direct Easy Apply URL
LinkedIn ジョブ ID がわかっている場合は、直接フローをまず試します:
const applyUrl = `https://www.linkedin.com/jobs/view/${jobId}/apply/?openSDUIApplyFlow=true`;
await page.goto(applyUrl, { waitUntil: 'domcontentloaded', timeout: 60000 });
モーダルが開かない場合は、ボタンとリンク全体の表示されている Easy Apply コントロールをクリックすることにフォールバックします。
慎重な回答ルール
履歴書、プロフィール、または明示的なオペレータの指示により検証された事実のみに回答します:
- 就労許可 / 就労適格:検証済みの場合のみはい。
- ビザスポンサーシップ必須:検証済みの場合のみいいえ。
- リモート対応:リモートのみの検索の場合のみはい。
- 経験年数:履歴書に基づく値またはユーザー承認されたマッピングを使用します。
- メール/電話/場所:既存のプロフィール/履歴書の事実を使用します。
- ミドルネーム:提供されていない場合は空白。
スキップ:
- 給与/報酬期待。
- カバーレターテキストプロンプト。
- カスタムエッセイ。
- 承認されていない転居/ハイブリッド/出張。
- 不明な必須入力、ラジオボタン、またはセレクト。
マルチステップ適用ループ
- 適用フローを開きます。
- 既に提出されたアプリケーションを検出します。
- 必要に応じて検証済みの履歴書 PDF をアップロード/選択します。
- 各ステップの表示されている入力/セレクト/ラジオボタンを検査します。
- 安全で検証された回答のみを記入します。
- 未知の必須フィールドが残っていない場合のみ、
Next、Review、Submit applicationをクリックします。 - 提出/スキップ状態をログします。
提案される状態
{
"seen": {},
"applied": {},
"skipped": {},
"alreadySubmitted": {}
}
状態とログを以下に書き込みます:
/tmp/linkedin-easyapply-daily/state.json
/tmp/linkedin-easyapply-daily/results.jsonl
レポート
簡潔な結果をレポートします:
提出済み:
- タイトル — 企業 — URL
スキップ:
- タイトル — 企業 — URL — 理由
状態:/tmp/linkedin-easyapply-daily/state.json
ログ:/tmp/linkedin-easyapply-daily/results.jsonl
よくある落とし穴
- ブラウザに組み込まれたツールは LinkedIn でタイムアウトすることがよくあります。Puppeteer と Chromium、Xvfb はより信頼性が高いことが多いです。
- LinkedIn 検索カードは Remote と表示されている場合がありますが、説明にはハイブリッド/ローカルの制約が含まれます。適用する前に全ページを検査してください。
- 広いキーワードマッチングは不正な回答を作成できます。
United Statesやcomfortableなどの一般的な単語を承認として扱うのは避けてください。 - Direct DOM 値の割り当てでは React フォームが更新されない可能性があります。click/type と input/change イベントのディスパッチを推奨します。
- ページが切り離されたり、モーダルが予期せず閉じた場合は、新しいページを作成し、状態ファイルから続行します。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- aiskillstore
- ライセンス
- MIT
- 最終更新
- 2026/5/12
Source: https://github.com/aiskillstore/marketplace / ライセンス: MIT
関連スキル
newsblur-cli
ターミナルからNewsBlurを管理できます。フィードの閲覧、ストーリーの検索、記事の保存・共有、インテリジェンス分類器の学習、新しいフィードの発見、ワークフローの自動化がNewsBlur CLIで実現します。ユーザーがNewsBlurアカウントを操作したい場合、フィードの確認、購読管理、またはニュース読み込みに関するスクリプト構築時に活用してください。
caveman-compress
自然言語のメモリファイル(CLAUDE.md、todos、preferences)を「原始人形式」に圧縮し、入力トークンを削減します。技術的な内容、コード、URL、構造はすべて保持したまま圧縮します。圧縮版が元のファイルを上書きし、人間が読める形のバックアップはFILE.original.mdとして保存されます。トリガー:/caveman-compress FILEPATH または「compress memory file」
find-skills
日本語の意図から Agent Skills を発見する。「楽天SEOのスキル探して」「PDFを処理したい」「データ分析を自動化したい」などの日本語リクエストに対応。Claude Code (CLI)、Codex、Gemini CLI、claude.ai (Web) いずれでも動作。日本最大の Agent Skills データベース「Agent Skills by ALSEL」(11,000件超、全件日本語化、ダウンロード可能スキル8,600件超) から、ユーザーの意図に合うスキルを推薦・インストール案内する。
planning-and-task-breakdown
仕事を順序立てたタスクに分割します。仕様書や要件が明確にあり、実装可能なタスクに分解する必要がある場合に利用してください。タスクが大きすぎて着手しづらい場合、スコープを見積もる必要がある場合、または並列で作業を進められる場合に活用できます。
docx
このスキルは、ユーザーがWord文書(.docxファイル)を作成、読み込み、編集、操作したいときに使用します。以下の場合に実行してください:「Word文書」「.docx」などの記述、または目次・見出し・ページ番号・レターヘッドなどのフォーマットを含む専門的な文書の作成リクエスト。また、.docxファイルのコンテンツ抽出・再編成、文書への画像挿入・置換、Word形式での検索置換、変更履歴やコメント機能の使用、コンテンツを整形したWord文書への変換の場合も対象です。ユーザーが「レポート」「メモ」「手紙」「テンプレート」などの成果物をWord形式または.docxファイルで求める場合はこのスキルを使用してください。PDF、スプレッドシート、Google Docs、文書作成と無関係なコーディングタスクには使用しないでください。
idea-refine
アイデアを反復的に改善します。構造化された発散的思考と収束的思考を通じて、アイデアを洗練させることができます。「idea-refine」または「ideate」を使用してトリガーします。