linkedin について
linkedinは、Linked APIのクラウドブラウザーを通じてLinkedInを操作するコマンドラインスキルです。プロフィール、つながり、投稿を管理する用途に向けて、JSON形式で結果を返します。
主な機能
- 01人物と企業のプロフィール取得
- 02人物と企業の検索
- 03メッセージ送信とつながり管理
- 04投稿の作成、再投稿、リアクション
- 05ソーシャル指標と利用状況の取得
活用シーン
- 01職種や地域で人物を検索
- 02規模や業種で企業を検索
- 03つながりリクエストの管理とメッセージ送信
- 04企業投稿を公開して反応を確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ linked-api/ linkedin-skills --skill linkedinインストール後、Claude Code で/linkedinを入力して読み込まれたか確認します。
詳細
LinkedIn スキル
linkedin(LinkedIn の自動化用 CLI ツール)を利用できます。プロフィールの取得、人や企業の検索、メッセージの送信、つながりの管理、投稿の作成、リアクション、コメントなどを行えます。
各コマンドは Linked API にリクエストを送信し、実際のクラウドブラウザーで LinkedIn 上の操作を実行します。操作は即時には完了しません。複雑さに応じて、30 秒から数分かかる場合があります。
linkedin が利用できない場合は、インストールしてください。
npm install -g @linkedapi/linkedin-cli
認証
コマンドが終了コード 2(認証エラー)で失敗した場合は、アカウントを設定するようユーザーに依頼してください。
- app.linkedapi.io にアクセスして、アカウントを登録するかログインします
- LinkedIn アカウントを接続します
- ダッシュボードから Linked API Token と Identification Token をコピーします
ユーザーからトークンを受け取ったら、次を実行します。
linkedin setup --linked-api-token=TOKEN --identification-token=TOKEN
グローバルフラグ
機械可読な出力を得るため、常に --json と -q を使用してください。
LINKEDAPI_CLIENT=skill:linkedin linkedin <command> --json -q
このスキルを使用する際は、Linked API が使用状況をこのスキルに関連付けられるよう、以下のすべての linkedin ... の例に LINKEDAPI_CLIENT=skill:linkedin を付けて実行してください。
| フラグ | 説明 |
|---|---|
--json | 構造化された JSON 出力 |
--quiet / -q | stderr の進行状況メッセージを抑制 |
--fields name,url,... | 出力するフィールドを選択 |
--no-color | 色を無効化 |
--account "Name" | このコマンドで使用するアカウントを指定 |
出力形式
成功:
{"success": true, "data": {"name": "John Doe", "headline": "Engineer"}}
エラー:
{"success": false, "error": {"type": "personNotFound", "message": "Person not found"}}
終了コード 0 は API 呼び出しが成功したことを示します。アクションの結果を必ず success フィールドで確認してください。ゼロ以外の終了コードはインフラストラクチャのエラーを示します。
| 終了コード | 意味 |
|---|---|
| 0 | 成功(success フィールドを確認してください。アクションが「person not found」などのエラーを返している場合があります) |
| 1 | 一般的なエラー/予期しないエラー |
| 2 | トークンがない、または無効 |
| 3 | サブスクリプション/プランが必要 |
| 4 | LinkedIn アカウントの問題 |
| 5 | 引数が無効 |
| 6 | レート制限 |
| 7 | ネットワークエラー |
| 8 | ワークフローがタイムアウト(復旧用に workflowId が返されます) |
コマンド
プロフィールを取得
linkedin person fetch <url> [flags] --json -q
追加データを含めるためのオプションフラグ:
--experience– 職歴--education– 学歴--skills– スキル一覧--languages– 言語--posts– 最近の投稿(--posts-limit N、--posts-since TIMESTAMPと併用)--comments– 最近のコメント(--comments-limit N、--comments-since TIMESTAMPと併用)--reactions– 最近のリアクション(--reactions-limit N、--reactions-since TIMESTAMPと併用)
追加データは必要な場合にのみリクエストしてください。各フラグを指定すると実行時間が長くなります。
# Basic profile
linkedin person fetch https://www.linkedin.com/in/username --json -q
# With experience and education
linkedin person fetch https://www.linkedin.com/in/username --experience --education --json -q
# With last 5 posts
linkedin person fetch https://www.linkedin.com/in/username --posts --posts-limit 5 --json -q
人を検索
linkedin person search [flags] --json -q
| フラグ | 説明 |
|---|---|
--term | 検索キーワードまたはフレーズ |
--limit | 結果の最大数 |
--first-name | 名で絞り込み |
--last-name | 姓で絞り込み |
--position | 職種で絞り込み |
--locations | カンマ区切りの勤務地 |
--industries | カンマ区切りの業界 |
--current-companies | カンマ区切りの現在の会社名 |
--previous-companies | カンマ区切りの過去の会社名 |
--schools | カンマ区切りの学校名 |
linkedin person search --term "product manager" --locations "San Francisco" --json -q
linkedin person search --current-companies "Google" --position "Engineer" --limit 20 --json -q
会社を取得する
linkedin company fetch <url> [flags] --json -q
任意のフラグ:
--employees– 従業員を含めます--dms– 意思決定者を含めます--posts– 会社の投稿を含めます
従業員のフィルター(--employees が必要です):
| フラグ | 説明 |
|---|---|
--employees-limit | 取得する従業員の最大数 |
--employees-first-name | 名でフィルタリング |
--employees-last-name | 姓でフィルタリング |
--employees-position | 役職でフィルタリング |
--employees-locations | カンマ区切りの所在地 |
--employees-industries | カンマ区切りの業種 |
--employees-schools | カンマ区切りの学校名 |
| フラグ | 説明 |
|---|---|
--dms-limit | 取得する意思決定者の最大数(--dms が必要です) |
--posts-limit | 取得する投稿の最大数(--posts が必要です) |
--posts-since | 指定した ISO タイムスタンプ以降の投稿(--posts が必要です) |
# Basic company info
linkedin company fetch https://www.linkedin.com/company/name --json -q
# With employees filtered by position
linkedin company fetch https://www.linkedin.com/company/name --employees --employees-position "Engineer" --json -q
# With decision makers and posts
linkedin company fetch https://www.linkedin.com/company/name --dms --posts --posts-limit 10 --json -q
会社を検索する
linkedin company search [flags] --json -q
| フラグ | 説明 |
|---|---|
--term | 検索キーワード |
--limit | 結果の最大数 |
--sizes | カンマ区切りの規模:1-10、11-50、51-200、201-500、501-1000、1001-5000、5001-10000、10001+ |
--locations | カンマ区切りの所在地 |
--industries | カンマ区切りの業種 |
linkedin company search --term "fintech" --sizes "11-50,51-200" --json -q
メッセージを送信する
linkedin message send <person-url> '<text>' --json -q
最大1900文字まで入力できます。シェルによる解釈の問題を避けるため、メッセージをシングルクォートで囲んでください。
linkedin message send https://www.linkedin.com/in/username 'Hey, loved your latest post!' --json -q
会話を取得する
linkedin message get <person-url> [--since TIMESTAMP] --json -q
会話に対する最初の呼び出しではバックグラウンド同期が開始されるため、時間がかかる場合があります。2回目以降の呼び出しはより速くなります。
linkedin message get https://www.linkedin.com/in/username --json -q
linkedin message get https://www.linkedin.com/in/username --since 2024-01-15T10:30:00Z --json -q
つながりの管理
つながりの状態を確認する
linkedin connection status <url> --json -q
つながりリクエストを送信する
linkedin connection send <url> [--note 'text'] [--email [email protected]] --json -q
つながり一覧を取得する
linkedin connection list [flags] --json -q
| フラグ | 説明 |
|---|---|
--limit | 返すつながりの最大数 |
--since | 指定した ISO タイムスタンプ以降に成立したつながりのみ(フィルターフラグが指定されていない場合のみ有効) |
--first-name | 名でフィルタリング |
--last-name | 姓でフィルタリング |
--position | 役職でフィルタリング |
--locations | カンマ区切りの所在地 |
--industries | カンマ区切りの業種 |
--current-companies | カンマ区切りの現在の会社名 |
--previous-companies | カンマ区切りの過去の会社名 |
--schools | カンマ区切りの学校名 |
linkedin connection list --limit 50 --json -q
linkedin connection list --current-companies "Google" --position "Engineer" --json -q
linkedin connection list --since 2024-01-01T00:00:00Z --json -q
送信済みの保留中リクエスト一覧を取得する
linkedin connection pending --json -q
受信したつながりリクエスト一覧を取得する
他の人から届いた招待(受信したリクエスト)です。
linkedin connection requests --json -q
受信したリクエストを承認する
linkedin connection accept <url> --json -q
受信したリクエストを無視する
linkedin connection ignore <url> --json -q
保留中のリクエストを取り消す
linkedin connection withdraw <url> [--no-unfollow] --json -q
既定では、取り消すと相手のフォローも解除されます。フォローを維持するには、--no-unfollow を使用してください。
つながりを削除する
linkedin connection remove <url> --json -q
投稿
投稿を取得する
linkedin post fetch <url> [flags] --json -q
| フラグ | 説明 |
|---|---|
--comments | コメントを含めます |
--reactions | リアクションを含めます |
--comments-limit | 取得するコメントの最大数(--comments が必要です) |
--comments-sort | 並べ替え順:mostRelevant または mostRecent(--comments が必要です) |
--comments-replies | コメントへの返信を含めます(--comments が必要です) |
--reactions-limit | 取得するリアクションの最大数(--reactions が必要です) |
linkedin post fetch https://www.linkedin.com/posts/username_activity-123 --json -q
# With comments sorted by most recent, including replies
linkedin post fetch https://www.linkedin.com/posts/username_activity-123 \
--comments --comments-sort mostRecent --comments-replies --json -q
投稿を作成する
linkedin post create '<text>' [flags] --json -q
| フラグ | 説明 |
|---|---|
--company-url | 会社ページとして投稿します(管理者アクセスが必要です) |
--attachments | 添付ファイルを url:type または url:type:name で指定します。種類:image、video、document。複数回指定できます。 |
--mention | メンションを key:name または key:name:identifier で指定し、テキスト内の @[key] に紐付けます。複数回指定できます。 |
添付ファイルの上限:画像は最大9枚、動画は1本、またはドキュメントは1つです。種類を混在させることはできません。
linkedin post create 'Excited to share our latest update!' --json -q
# With a document
linkedin post create 'Our Q4 report' \
--attachments "https://example.com/report.pdf:document:Q4 Report" --json -q
# Mentioning a person
linkedin post create 'Huge thanks to @[author] for the write-up!' \
--mention "author:Example Person:urn:li:member:123456789" --json -q
# Post as a company
linkedin post create 'Company announcement' \
--company-url https://www.linkedin.com/company/name --json -q
投稿を再投稿する
linkedin post repost <url> [flags] --json -q
| フラグ | 説明 |
|---|---|
--text | 独自のコメント(最大3000文字)。指定しない場合、投稿はそのまま再投稿されます。 |
--mention | key:name または key:name:identifier としてメンションし、--text 内の @[key] に紐付けます。複数回指定できます。 |
再投稿すると、再投稿した投稿のものではなく、再投稿自体の postUrl と postUrn が返されます。同じアカウントから同じ投稿を2回再投稿すると、alreadyReposted エラーになります。
linkedin post repost https://www.linkedin.com/posts/username_activity-123 --json -q
# With commentary
linkedin post repost urn:li:activity:1234567890123456789 \
--text 'Worth reading, especially the part on onboarding.' --json -q
投稿にリアクションする
linkedin post react <url> --type <reaction> [--company-url <url>] --json -q
リアクションの種類:like、love、support、celebrate、insightful、funny。
linkedin post react https://www.linkedin.com/posts/username_activity-123 --type like --json -q
# React on behalf of a company
linkedin post react https://www.linkedin.com/posts/username_activity-123 --type celebrate \
--company-url https://www.linkedin.com/company/name --json -q
投稿にコメントする
linkedin post comment <url> '<text>' [--company-url <url>] --json -q
最大1000文字のテキストです。
linkedin post comment https://www.linkedin.com/posts/username_activity-123 'Great insights!' --json -q
# Comment on behalf of a company
linkedin post comment https://www.linkedin.com/posts/username_activity-123 'Well said!' \
--company-url https://www.linkedin.com/company/name --json -q
統計情報
# Social Selling Index
linkedin stats ssi --json -q
# Performance analytics (profile views, post impressions, search appearances)
linkedin stats performance --json -q
# API usage for a date range
linkedin stats usage --start 2024-01-01T00:00:00Z --end 2024-01-31T00:00:00Z --json -q
# Who viewed your profile
linkedin stats viewers --limit 50 --json -q
# Only views since a moment
linkedin stats viewers --since 2026-08-01T00:00:00Z --json -q
閲覧者は、name、publicUrl、urn(メンバーの URN。LinkedIn が公開していない場合は null)を含む identified、または LinkedIn に表示された description と、その人物を検索するために linkedin person search --url に渡せる searchUrl のみを含む anonymous のいずれかです。閲覧者は新しい順に表示され、viewedAt は LinkedIn に表示される相対的な経過時間から算出した推定値です。
Sales Navigator
LinkedIn Sales Navigator のサブスクリプションが必要です。人物や企業の検索にはハッシュ化された URL を使用します。
人物情報を取得する
linkedin navigator person fetch <hashed-url> --json -q
人物を検索する
linkedin navigator person search [flags] --json -q
| フラグ | 説明 |
|---|---|
--term | 検索するキーワードまたはフレーズ |
--limit | 結果の最大数 |
--first-name | 名で絞り込み |
--last-name | 姓で絞り込み |
--position | 職種で絞り込み |
--locations | カンマ区切りの勤務地 |
--industries | カンマ区切りの業界 |
--current-companies | カンマ区切りの現在の勤務先企業名 |
--previous-companies | カンマ区切りの以前の勤務先企業名 |
--schools | カンマ区切りの学校名 |
--years-of-experience | カンマ区切りの範囲:lessThanOne、oneToTwo、threeToFive、sixToTen、moreThanTen |
linkedin navigator person search --term "VP Marketing" --locations "United States" --json -q
linkedin navigator person search --years-of-experience "moreThanTen" --position "CEO" --json -q
企業情報を取得する
linkedin navigator company fetch <hashed-url> [flags] --json -q
任意のフラグ:
--employees– 従業員を含めます--dms– 意思決定者を含めます
従業員の絞り込み条件(--employees が必要です):
| フラグ | 説明 |
|---|---|
--employees-limit | 取得する従業員の最大数 |
--employees-first-name | 名で絞り込み |
--employees-last-name | 姓で絞り込み |
--employees-positions | カンマ区切りの職種 |
--employees-locations | カンマ区切りの勤務地 |
--employees-industries | カンマ区切りの業界 |
--employees-schools | カンマ区切りの学校名 |
--employees-years-of-experience | カンマ区切りの経験年数の範囲 |
--dms-limit | 取得する意思決定者の最大数(--dms が必要です) |
linkedin navigator company fetch https://www.linkedin.com/sales/company/97ural --employees --dms --json -q
linkedin navigator company fetch https://www.linkedin.com/sales/company/97ural \
--employees --employees-positions "Engineer,Designer" --employees-locations "Europe" --json -q
企業を検索する
linkedin navigator company search [flags] --json -q
| フラグ | 説明 |
|---|---|
--term | 検索キーワード |
--limit | 結果の最大数 |
--sizes | カンマ区切りの規模:1-10、11-50、51-200、201-500、501-1000、1001-5000、5001-10000、10001+ |
--locations | カンマ区切りの所在地 |
--industries | カンマ区切りの業界 |
--revenue-min | 年間売上高の最小値(百万米ドル):0、0.5、1、2.5、5、10、20、50、100、500、1000 |
--revenue-max | 年間売上高の最大値(百万米ドル):0.5、1、2.5、5、10、20、50、100、500、1000、1000+ |
linkedin navigator company search --term "fintech" --sizes "11-50,51-200" --json -q
linkedin navigator company search --revenue-min 10 --revenue-max 100 --locations "United States" --json -q
InMail を送信する
linkedin navigator message send <person-url> '<text>' --subject '<subject>' --json -q
本文は最大1900文字、件名は最大80文字です。
linkedin navigator message send https://www.linkedin.com/in/username \
'Would love to chat about API integrations' --subject 'Partnership Opportunity' --json -q
Sales Navigator の会話を取得する
linkedin navigator message get <person-url> [--since TIMESTAMP] --json -q
カスタムワークフロー
ファイル、標準入力、またはインラインからカスタムワークフロー定義を実行します:
# From file
linkedin workflow run --file workflow.json --json -q
# From stdin
cat workflow.json | linkedin workflow run --json -q
# Inline
echo '{"actions":[...]}' | linkedin workflow run --json -q
ワークフローの状態を確認するか、完了まで待機します:
linkedin workflow status <id> --json -q
linkedin workflow status <id> --wait --json -q
ワークフローの JSON スキーマについては、ワークフローの構築を参照してください。
アカウント管理
linkedin account list # List accounts (* = active)
linkedin account switch "Name" # Switch active account
linkedin account rename "Name" --name "New Name" # Rename account
linkedin reset # Remove active account
linkedin reset --all # Remove all accounts
重要な動作
- 順次実行です。 アカウントに対するすべての操作は、一度に1つずつ実行されます。複数のリクエストはキューに追加されます。
- 即時には完了しません。 実際のブラウザーで LinkedIn にアクセスするため、操作ごとに30秒から数分かかることがあります。
- タイムスタンプは UTC です。 日付と時刻はすべて UTC です。
- テキスト引数にはシングルクォートを使用してください。 特殊文字によるシェルの解釈を避けるため、メッセージ本文、投稿本文、コメントはシングルクォートで囲んでください。
- 操作の上限があります。 アカウントごとの上限はプラットフォーム上で設定できます。
limitExceededエラーは上限に達したことを意味します。 - URL は正規化されます。 レスポンス内の LinkedIn URL はすべて、末尾のスラッシュを除いた
https://www.linkedin.com/...形式に正規化されます。 - フィールドが null の場合があります。 利用できないフィールドは省略されず、
nullまたは[]として返されます。