メインコンテンツへスキップ
このガイドでは2つの実際のシナリオを説明します。すべてのコードブロックはコピー、ペースト、実行が可能です — YOUR_API_KEY を実際のキーに置き換えるだけです。

シナリオ:OpenAIが新しい求人を投稿した時にモニタリング

OpenAIが求人を投稿した際にすぐに通知を受け取り、エンジニアリングリーダーシップの連絡先を自動的に取得したい場合。

モニターを作成

curl -X POST https://api.pubrio.com/monitors/create \
  -H "Content-Type: application/json" \
  -H "pubrio-api-key: YOUR_API_KEY" \
  -d '{
    "name": "OpenAI Job Tracker",
    "detection_mode": "company_first",
    "signal_types": ["jobs"],
    "signal_filters": [
      {
        "signal_type": "jobs",
        "filters": {
          "locations": ["US"]
        }
      }
    ],
    "companies": [
      "67c4696b-b7b0-46b5-b2af-9f434543661e"
    ],
    "is_company_enrichment": true,
    "is_people_enrichment": true,
    "people_enrichment_configs": [
      {
        "max_people_to_return": 5,
        "people_contact_types": ["email-work"],
        "filters": {
          "management_levels": ["director", "vp"],
          "departments": ["master_engineering"]
        }
      }
    ],
    "destination_type": "webhook",
    "destination_config": {
      "webhook_url": "https://usewebhook.com/YOUR_WEBHOOK_ID",
      "headers": {
        "Authorization": "Bearer your-secret-token"
      }
    },
    "max_records_per_trigger": 5,
    "profile_id": 1
  }'
import requests

response = requests.post(
    "https://api.pubrio.com/monitors/create",
    headers={
        "Content-Type": "application/json",
        "pubrio-api-key": "YOUR_API_KEY"
    },
    json={
        "name": "OpenAI Job Tracker",
        "detection_mode": "company_first",
        "signal_types": ["jobs"],
        "signal_filters": [
            {
                "signal_type": "jobs",
                "filters": {
                    "locations": ["US"]
                }
            }
        ],
        "companies": [
            "67c4696b-b7b0-46b5-b2af-9f434543661e"
        ],
        "is_company_enrichment": True,
        "is_people_enrichment": True,
        "people_enrichment_configs": [
            {
                "max_people_to_return": 5,
                "people_contact_types": ["email-work"],
                "filters": {
                    "management_levels": ["director", "vp"],
                    "departments": ["master_engineering"]
                }
            }
        ],
        "destination_type": "webhook",
        "destination_config": {
            "webhook_url": "https://usewebhook.com/YOUR_WEBHOOK_ID",
            "headers": {
                "Authorization": "Bearer your-secret-token"
            }
        },
        "max_records_per_trigger": 5,
        "profile_id": 1
    }
)

data = response.json()
print(f"Monitor created: {data['data']['monitor_id']}")
print(f"Signature: {data['data']['signature']}")
const response = await fetch("https://api.pubrio.com/monitors/create", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "pubrio-api-key": "YOUR_API_KEY"
  },
  body: JSON.stringify({
    name: "OpenAI Job Tracker",
    detection_mode: "company_first",
    signal_types: ["jobs"],
    signal_filters: [
      {
        signal_type: "jobs",
        filters: {
          locations: ["US"]
        }
      }
    ],
    companies: [
      "67c4696b-b7b0-46b5-b2af-9f434543661e"
    ],
    is_company_enrichment: true,
    is_people_enrichment: true,
    people_enrichment_configs: [
      {
        max_people_to_return: 5,
        people_contact_types: ["email-work"],
        filters: {
          management_levels: ["director", "vp"],
          departments: ["master_engineering"]
        }
      }
    ],
    destination_type: "webhook",
    destination_config: {
      webhook_url: "https://usewebhook.com/YOUR_WEBHOOK_ID",
      headers: {
        Authorization: "Bearer your-secret-token"
      }
    },
    max_records_per_trigger: 5,
    profile_id: 1
  })
});

const data = await response.json();
console.log("Monitor created:", data.data.monitor_id);
console.log("Signature:", data.data.signature);
動作内容:
  • OpenAI(companies: ["67c4696b-..."])の米国の新規求人をモニタリング
  • 企業データをエンリッチメントし、最大5人のディレクター/VPレベルのエンジニアリング連絡先を検索
  • トリガーごとに最大5件のレコードをウェブフックに配信
  • その他の設定はデフォルト値を使用(リアルタイムのフリクエンシー、1日500回の上限など)
company_first モードでは、通常 companies(domain_search_ids)、domains、または linkedin_urls のいずれか1つとシグナルフィルターのみ必要です。company_filters はオプションです — ウォッチリストをより広い企業条件と組み合わせたい場合に第2のフィルタリングレイヤーを追加します。

すぐにテスト

スケジュールされたスキャンを待たずに、手動実行をトリガーしてすべてが正常に動作することを確認してください。tried_at に過去のタイムスタンプを使用してデータが利用可能であることを確認します(現在時刻を使用すると、新しいシグナルがまだ現れていない場合に0件の結果が返される可能性があります):
curl -X POST https://api.pubrio.com/monitors/process/try \
  -H "Content-Type: application/json" \
  -H "pubrio-api-key: YOUR_API_KEY" \
  -d '{
    "monitor_id": "YOUR_MONITOR_ID",
    "tried_at": "2026-01-01T00:00:00.000Z",
    "profile_id": 1
  }'
手動トリガーはスケジュールトリガーと同様にクレジットを消費します。テストで代表的な結果を得るために、tried_at に最近の過去の日付を使用してください。

結果を確認

数秒後、usewebhook.comでウェブフックURLをチェックしてペイロードを確認してください。ログでも検証できます:
curl -X POST https://api.pubrio.com/monitors/statistics/logs \
  -H "Content-Type: application/json" \
  -H "pubrio-api-key: YOUR_API_KEY" \
  -d '{
    "profile_id": 1,
    "monitor_id": "YOUR_MONITOR_ID",
    "page": 1,
    "per_page": 5
  }'
各ログエントリにはステータス、シグナル/企業/人物の数、クレジット使用量、処理時間が表示されます。

失敗した配信のリトライ

特定のトリガーが失敗した場合(例:ウェブフックが一時的にダウン)、スキャン全体を再実行せずにリトライできます:
curl -X POST https://api.pubrio.com/monitors/process/retry \
  -H "Content-Type: application/json" \
  -H "pubrio-api-key: YOUR_API_KEY" \
  -d '{
    "monitor_id": "YOUR_MONITOR_ID",
    "monitor_log_id": "THE_FAILED_LOG_ID",
    "profile_id": 1
  }'
統計ログをクエリし、"status": "failed" のエントリをフィルタリングして monitor_log_id を見つけてください。

次のステップ

ベストプラクティス

フリクエンシー、クレジット、リトライ、スケーリング。

ウェブフック設定

詳細なウェブフック設定とシグネチャ検証。