跳转到主要内容
本指南演示两个实际场景。每个代码块都可以直接复制、粘贴和运行——只需将 YOUR_API_KEY 替换为你的实际密钥。

场景:监控 OpenAI 何时发布新职位

你希望在 OpenAI 发布职位空缺时立即收到通知——并自动获取其工程领导层的联系方式。

创建 monitor

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(domain_search_id: 67c4696b-...)的美国新职位发布
  • 补充公司数据并查找最多5位总监/副总裁级别的工程联系人
  • 每次触发最多投递5条记录到你的 webhook
  • 所有其他设置使用合理的默认值(实时频率、每日500次上限等)
company_first 模式中,你通常只需要 companiesdomainslinkedin_urls 和信号筛选。company_filters 是可选的——当你希望将关注列表与更广泛的公司条件结合时,它会添加第二层筛选。

立即测试

不要等待计划扫描——触发一次手动运行以验证一切正常。使用 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 检查你的 webhook 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
  }'
每个日志条目显示状态、信号/公司/人员数量、积分用量和处理时间。

重试失败的投递

如果某次触发失败了(例如你的 webhook 临时不可用),可以重试它而无需重新运行整个扫描:
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

后续步骤

最佳实践

频率、积分、重试和扩展。

Webhook 设置

详细的 webhook 配置和签名验证。