ClawSkills logoClawSkills

The SignalHire skill integrates the full SignalHire API into OpenClaw, enabling you to search for prospects and enrich their contact details without leaving your workflow. It exposes three core actions: a credits check, a search-by-query for prospecting, and an asynchronous contact enrichment call

通过 SignalHire API(搜索、人员和信用额度)寻找潜在客户并丰富联系人信息。

介绍

# SignalHire skill instructions

此技能向 OpenClaw 代理公开了三项高级功能。每项功能对应于 SignalHire 文档中记录的一个 REST 端点。代理绝不应直接调用这些端点,而必须调用已定义的技能操作之一。以下指导总结了 API 的工作原理,包括速率限制、并发限制和异步回调工作流。以下所有事实陈述均得到了官方 SignalHire API 文档的支持。

## 1. 检查剩余额度

使用此操作可确定账户上还剩多少额度。SignalHire API 公开了一个专用端点 `GET /api/v1/credits`,它以 JSON 负载的形式返回可用额度数。请求头中必须包含有效的 API 密钥。成功调用后,响应包含一个名为 `credits` 的字段,显示剩余额度数【821841938681143†L505-L529】。如果账户配置为“无联系方式的个人资料”,则可以使用 `withoutContacts=true` 查询参数调用同一端点【821841938681143†L559-L566】。对于每次 Person API 调用,额度也会在 `X-Credits-Left` 响应头中返回【821841938681143†L559-L566】。

在启动大型数据丰富作业之前,代理**必须调用此操作**,以避免在操作中途耗尽额度。如果剩余额度数低于要丰富的项目数,则应拆分作业或优雅地中止作业。

## 2. 搜索个人资料

使用此操作在 SignalHire 数据库中查找潜在候选人,而不会消耗联系额度。搜索 API 端点为 `POST /api/v1/candidate/searchByQuery`【21055727237259†L100-L109】,它会返回个人资料摘要列表以及 `scrollId`。可以使用 scrollId 通过滚动搜索端点(此处未显示)获取其他页面,直到所有结果耗尽。只有在联系 SignalHire 支持部门后才会授予搜索 API 的访问权限,并且该访问受到严格的并发限制,即**同时三个请求**【21055727237259†L110-L116】。代理必须确保任何时刻正在进行的 searchByQuery 调用不超过三个。

执行搜索时,请求正文应包含 `currentTitle`、`location`、`keywords`、`industry` 和文档中描述的其他过滤器等字段【21055727237259†L120-L177】。`size` 参数控制每页返回多少个人资料(默认为 10,最大为 100)。检索第一页后,代理应在 15 秒内立即跟进滚动请求,以避免 `scrollId` 过期。搜索的响应是同步的,将立即返回;不需要回调。

## 3. 丰富联系人(Person API)

此操作检索每个请求最多 100 个项目的完整联系信息(电子邮件、电话和社交个人资料)。端点为 `POST /api/v1/candidate/search`【821841938681143†L126-L134】。每个项目可以是 LinkedIn 个人资料 URL、电子邮件地址、电话号码或 SignalHire 个人资料 UID【821841938681143†L120-L124】。请求正文**必须**包含 `callbackUrl` 参数;一旦处理完数据,API 会将结果发布到此 URL【821841938681143†L126-L134】。在 callbackUrl 上侦听的有效服务器必须返回 HTTP 状态 200 以确认成功接收。如果无法访问回调端点或未在十秒超时内响应,SignalHire 将重试最多三次【821841938681143†L187-L198】。只有在接收到所有回调负载后,处理才算完成。

回调负载包含一个对象数组,每个对象都有一个 `status` 字段,指示该项的结果:`success`、`failed`、`credits_are_over`、`timeout_exceeded` 或 `duplicate_query`【821841938681143†L239-L249】。当状态为 `success` 时,负载还包括一个 `candidate` 对象,其中包含 `fullName`、`emails`、`phones`、`location` 等字段。这些结果由连接器服务持久化到 CSV 文件中;代理应等待连接器报告作业已准备就绪,然后再使用数据。

Person API 受到速率限制:每分钟最多处理 **600 个元素**【821841938681143†L490-L503】。代理必须实施限流,以确保所有 Person API 调用中的项目总数不超过此限制。超出限制的请求将被拒绝,并返回 HTTP 状态 429 `Too Many Requests`【821841938681143†L500-L503】。为了最大化吞吐量,请将每个请求的项目数最多设为 100,但不要超过全局每分钟配额。

## 代理的一般指导原则

1. **不要硬编码 API 密钥或回调 URL。** 使用由 OpenClaw 注入的环境变量:`SIGNALHIRE_API_KEY` 用于身份验证,`SIGNALHIRE_CALLBACK_URL` 用于 Person API。这些值在运行时提供,不得回显或泄露。

2. **在开始大型丰富作业之前,务必检查剩余额度。** 如果额度不足,则中止或拆分作业。

3. **遵守速率和并发限制。** 搜索 API 请求的并发数不得超过三个【21055727237259†L110-L116】。每分钟通过 Person API 发送的项目不得超过 600 个【821841938681143†L490-L503】。在 HTTP 429 响应上实施指数退避。

4. **调用 Person API 时,务必包含有效的 callbackUrl**,并确保连接器服务可访问且响应迅速。回调必须在十秒内返回 HTTP 200,否则结果可能会被丢弃【821841938681143†L187-L198】。

5. **等待作业完成。** 提交 Person API 请求后,代理应轮询连接器的作业端点(如 README 中所述),直到它指示已收到所有结果。只有这样,代理才应继续处理 CSV 数据。

6. **处理回调中的所有状态值。** 对于 `failed`、`credits_are_over`、`timeout_exceeded` 和 `duplicate_query`,将没有候选人数据可用;记录这些情况并继续。

7. **遵守法律和隐私要求。** SignalHire 将 API 使用与其条款、隐私和 GDPR 页面绑定。在存储或使用联系数据时,务必尊重数据主体权利和退出请求【821841938681143†L559-L566】。

通过遵循上述说明,代理可以安全地将 SignalHire 的潜在客户开发和数据丰富功能集成到 OpenClaw 工作流中。

更多产品