pp-contact-goat
ターミナル上で動作する高機能なLinkedIn連携スキルです。LinkedIn(stickerdaniel/linkedin-mcp-serverサブプロセス)、Happenstance(Cookieによる無料枠とbearer APIフォールバック)、Deepline(有料エンリッチメント)を横断して人脈を検索・分析し、温かい紹介ルートをマッピングします。「この会社に知り合いはいるか」「どうすれば紹介してもらえるか」「誰にアプローチすべきか」といった問いや、複数ソースの情報統合・人脈差分分析・ウォーターフォール型エンリッチメントが必要な場面で活用してください。
description の原文を見る
Super LinkedIn for the terminal. Search, enrich, and map warm-intro paths across LinkedIn (stickerdaniel/linkedin-mcp-server subprocess), Happenstance (cookie-first free quota with bearer-API fallback), and Deepline (paid enrichment). Two Happenstance auth surfaces coexist: Chrome cookie session (free monthly allocation) and HAPPENSTANCE_API_KEY bearer (paid credits, deeper schema). Use when the user asks who they know at a company, how to get a warm intro, who to prospect, or wants cross-source dossiers, network diffs, or waterfall enrichment.
SKILL.md 本文
Contact Goat - Printing Press CLI
前提条件: CLI をインストールする
このスキルは contact-goat-pp-cli バイナリを動作させます。このスキルから任意のコマンドを呼び出す前に、CLI がインストールされていることを必ず確認してください。 インストールされていない場合は、まず最初にインストールしてください:
- Printing Press インストーラー経由でインストール:
npx -y @mvanhorn/printing-press install contact-goat --cli-only - 確認:
contact-goat-pp-cli --version $GOPATH/bin(または$HOME/go/bin) が$PATHに含まれていることを確認してください。
npx インストールが失敗した場合 (Node がない、オフライン状態など)、直接 Go インストールにフォールバックします (Go 1.26.3 以降が必要):
go install github.com/mvanhorn/printing-press-library/library/sales-and-crm/contact-goat/cmd/contact-goat-pp-cli@latest
インストール後に --version が「command not found」と報告する場合、インストール手順でバイナリが $PATH に配置されませんでした。確認が成功するまで、スキルコマンドを実行しないでください。
この CLI をいつ使うか
次の場合にこのツールを使用してください:
- 会社のカバレッジ (既知の人物、関係の強さでランク付け)
- ターゲット人物への温かい紹介パス (複数ソースにわたる相互接続)
- プロスペクティング (クロスソースのデデュプを含むファンアウト検索)
- 統合ダッシャー (LinkedIn プロフィール + Happenstance リサーチ + オプションの Deepline エンリッチメント)
- ネットワークの時系列差分 (過去 N 日間のグラフの新規情報)
- 無料ソースから有料ソースに移行するウォーターフォールエンリッチメント
LinkedIn Sales Navigator に完全に統合されたワークフローを持つ場合や、Happenstance や Deepline の追加機能なしで単純な LinkedIn スクレイピングのみが必要な場合はスキップしてください (その場合は LinkedIn MCP を直接使用してください)。
2 つの認証サーフェス
Happenstance には 2 つの並列認証パスがあり、CLI は両方を使用します:
| サーフェス | 認証 | コスト | デフォルト? |
|---|---|---|---|
| Cookie ウェブアプリ | Chrome セッション Cookie | 無料月額割当 | はい (自動優先) |
| パブリック REST API | HAPPENSTANCE_API_KEY (Bearer) | 検索 2 クレジット / リサーチ 1 クレジット | フォールバックのみ |
自動ルーターは Cookie のクォータが尽きるまで Cookie を優先し、その後 Bearer にフォールバックして stderr に明示的な「cost spent」ログ行を出力します。coverage、hp people、prospect、または warm-intro で --source api を使用して Bearer を明示的にオプトイン (例: より豊富なリサーチスキーマまたはスコープ付きグループ検索の場合)。--source hp を使用して Cookie サーフェスを強制します。
api hpn * サブコマンドは常に Bearer サーフェスを使用し、常にクレジットを消費します。キーをプロビジョニングおよびローテーションする場合は https://happenstance.ai/settings/api-keys を参照してください。
引数解析
$ARGUMENTS を解析します:
- 空、
help、または--help->contact-goat-pp-cli --helpを実行 installで始まりmcpで終わる -> MCP インストール (以下を参照)installで始まる -> CLI インストール (以下を参照)- その他 -> 直接使用 (リクエストを最適なコマンドにマップして実行)
MCP サーバーのインストール
- MCP サーバーをインストールします:
go install github.com/mvanhorn/printing-press-library/library/sales-and-crm/contact-goat/cmd/contact-goat-pp-mcp@latest - Claude Code に登録します:
実行する前に、必要な API キーの実際の値をユーザーに尋ねてください。claude mcp add -e DEEPLINE_API_KEY=value -e HAPPENSTANCE_API_KEY=value contact-goat-pp-mcp -- contact-goat-pp-mcp - 確認:
claude mcp list。
MCP サーバーは 16 のツールを公開しています。このリリースで追加された 4 つの Bearer API ツールは:
api_search- Happenstance パブリック API 検索を実行 (2 クレジット消費)api_research- ディープリサーチダッシャー実行 (完了時 1 クレジット消費)api_groups_list- 呼び出し元の Happenstance グループをリスト表示 (無料)api_usage- ライブクレジット残高と使用履歴を表示 (無料)
その他 12 のツールは Cookie サーフェス (検索、友人、フィード、通知、ダッシャーなど) と LinkedIn / Deepline インテグレーションをカバーします。
直接使用
- インストール確認:
which contact-goat-pp-cli。見つからない場合は CLI インストールを提供してください (上記参照)。 - コマンド発見:
contact-goat-pp-cli --help。contact-goat-pp-cli <command> --helpまたはcontact-goat-pp-cli api hpn <subcommand> --helpでサブコマンドヘルプをドリルダウンします。 - ユーザークエリを最適なコマンドにマップします (以下の主要コマンドを参照)。
--agentフラグで実行して構造化した、トークン効率の高い出力を取得:contact-goat-pp-cli <command> [args] --agent--agentフラグは--json --compact --no-input --no-color --yesを設定します。
ソースルーティング (Cookie vs Bearer) は自動です。自動ルーターは無料の Cookie サーフェスを優先し、Cookie クォータが尽きた場合のみ有料の Bearer サーフェスにフォールバックし、stderr に「cost spent」通知をログします。Bearer を明示的にオプトイン (より豊富なスキーマ、グループスコープ検索) する場合は --source api を渡すか、Cookie を強制する場合は --source hp を渡します。
エンリッチメント事前チェック (エンリッチメントコマンドを実行する前に必ず読んでください)
これらのコマンドは Deepline クレジットを消費し、DEEPLINE_API_KEY または BYOK セットアップが 必須 です:
waterfall(--byokを渡さず BYOK プロバイダーが構成されている場合を除く)dossier --enrich-emaildeepline find-email/enrich-person/email-find/phone-finddeepline search-people/search-companies/enrich-company
これらのいずれかを呼び出す前に、まず doctor を実行して認証を確認します:
contact-goat-pp-cli doctor --agent | grep -i deepline
deepline_env は解決ソースを表示します:
set (env)—DEEPLINE_API_KEYが現在のシェルでエクスポートされているset (flag)—--deepline-keyがコマンドラインで渡されているset (file:~/.local/deepline/<host>/.env)— 公式の Deepline CLI の永続キーから自動検出 (ユーザーがdeepline auth registerまたはdeepline auth statusで認証済み; シェルエクスポートは不要)not set— 上記のどれにも該当しない。ユーザーにキーを尋ねるか、BYOK Hunter/Apollo キーを尋ねてください
自動検出パスとは、Deepline CLI がインストールされて認証されているユーザーは、シェルにキーを再エクスポートする必要がなく、contact-goat が ~/.local/deepline/code-deepline-com/.env を直接読み取る (モード 0600、ユーザーが所有) ことを意味します。set (file:...) が報告されている場合、ユーザーに再エクスポートを求めないでください。deepline_discovery_skipped も報告されている場合、これらはセキュリティ上の理由でリゾルバーが拒否した候補ファイルです (不正なモード、プレフィックス不足); 基本的な問題を修正できるようにユーザーに表示します。
プロバイダーチェーン (ターゲット種別別ウォーターフォール):
| ターゲット | プライマリ | フォールバック 1 | フォールバック 2 |
|---|---|---|---|
| LinkedIn URL | apollo_people_match | hunter_people_find | contactout_enrich_person |
| メール | apollo_people_match | hunter_people_find | - |
| 名前 + --company | dropleads_email_finder | hunter_email_finder | datagma_find_email |
注釈:
- 名前ターゲットは
--company <domain>を渡す必要があります (またはCONTACT_GOAT_COMPANYenv を設定)。 - Apollo は利用可能な場合に
personal_emails[]を返します;email_status: "unavailable"を「ファイル上に検証された仕事用メールなし」として扱います (個人用メールは依然として使用可能)。 - Dropleads は Google Workspace 上のドメインに対して
status: "catch_all"を返します; メールはパターン推測であり、検証されたメールボックスではありません。 - プロバイダーレベルの 403 は「DEEPLINE_API_KEY をチェック」ではなく「プロバイダーが接続されていません」として表示されます; チェーンは中止されません。次のプロバイダーが自動的に試行されます。
主要コマンド
| コマンド | 機能 |
|---|---|
coverage <company> | LinkedIn + Happenstance 全体での会社の既知人物、関係の強さでランク付け |
coverage --location <city> | 都市での既知人物。Bearer のみ (Cookie サーフェスに都市検索なし); --source api を使用します。 |
hp people <query> | Happenstance グラフ人物検索 (1 次 / 2 次 / 3 次度)。--csv はセミコロン結合ブリッジを含むフラット CSV を出力します。 |
prospect <query> | LinkedIn + Happenstance (+ オプト イン Deepline) 全体でのファンアウト検索 (デデュプ) |
warm-intro <target> | ターゲットへの紹介ができる複数ソース間の相互接続 |
waterfall <target> [--company X] | 無料ソース優先エンリッチメント、Deepline プロバイダーチェーンにフォールスルー。DEEPLINE_API_KEY または --byok が必須。ベア名ターゲットは --company が必要 |
dossier <target> [--enrich-email] | 統合 LinkedIn + Happenstance + (オプション) Deepline ダッシャー。--enrich-email は DEEPLINE_API_KEY が必須 |
deepline find-email "<name>" --company <domain> | dropleads_email_finder 経由での単一呼び出し仕事用メール検索 |
deepline enrich-person <linkedin-url> | apollo_people_match 経由での完全な人物レコード (personal_emails[] を含む) |
api hpn search <text> | Bearer API 検索 (2 クレジット消費、非同期ポール)。--first-degree-only は 1 次度マッチのみをキープ; --min-score N は弱いシグナルを削除 (docs/scoring.md を参照); --all --max-results N は自動ページネーション。 |
api hpn research <description> | Bearer API ディープダッシャー (完了時 1 クレジット消費) |
api hpn usage | ライブクレジット残高、購入、最近の使用イベント (無料) |
doctor | CLI の健全性確認、両方の Happenstance サーフェス、LinkedIn、Deepline。LinkedIn アップロード期間で happenstance_graph_status (ok / stale / very_stale) を報告します。 |
任意のコマンドで --help を実行して完全なフラグドキュメントを取得します。
エージェントモード
任意のコマンドに --agent を追加します。拡張先: --json --compact --no-input --no-color --yes。
- パイプ可能 — stdout に JSON、stderr にエラー
- フィルター可能 —
--selectはフィールドのサブセットをキープします。ドット記法サポート (以下参照) - プレビュー可能 —
--dry-runはリクエストを送信せずに表示 - キャッシュ可能 — GET レスポンスは 5 分間キャッシュされ、
--no-cacheでバイパス - 非対話的 — プロンプト不表示、すべての入力はフラグ
出力フィルタリング
--select はドット記法パスを受け入れて、ネストされたレスポンスを下降; 配列は要素別に走査:
contact-goat-pp-cli <command> --agent --select id,name
contact-goat-pp-cli <command> --agent --select items.id,items.owner.name
これを使用して、巨大なペイロードを実際に必要なフィールドに絞ります — deeply nested API レスポンスで重要。
レスポンスエンベロープ
データレイヤーコマンドは出力を {"meta": {...}, "results": <data>} でラップします。.results でデータを解析し、.meta.source で live または local かを判定します。N results (live) サマリーは stdout が TTY の場合のみ stderr に出力; パイプ/エージェント使用者は stdout で純粋な JSON を見ます。
終了コード
| コード | 意味 |
|---|---|
| 0 | 成功 |
| 2 | 使用エラー (引数が不正) |
| 3 | リソースが見つかりません |
| 4 | 認証が必要 |
| 5 | API エラー (アップストリーム問題、Bearer 402 クレジット不足を含む) |
| 7 | レート制限 (Cookie 429 または Bearer 429; 自動フォールバック適用の可能性) |
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- mvanhorn
- ライセンス
- Apache-2.0
- 最終更新
- 不明
Source: https://github.com/mvanhorn/printing-press-library / ライセンス: Apache-2.0
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。