Competitor Intelligence
Analyze competitors using Apify Actors to extract data from multiple platforms.
Prerequisites
- -
APIFY_TOKEN configured in OpenClaw settings - Node.js 20.6+
- INLINECODE1 CLI (auto-installed via skill metadata)
Input Sanitization Rules
Before substituting any value into a bash command:
- - ACTORID: Must be either a technical name (
owner/actor-name — alphanumeric, hyphens, dots, one slash) or a raw ID (exactly 17 alphanumeric characters, e.g., oeiQgfg5fsmIJB7Cn). Reject values containing shell metacharacters (` ; | & $ ( ) { } < > ! \n `).
- **SEARCH_KEYWORDS**: Plain text words only. Reject shell metacharacters.
- **JSON_INPUT**: Must be valid JSON. Must not contain single quotes (use escaped double quotes). Validate structure before use.
- **Output filenames**: Must match YYYY-MM-DDdescriptive-name.{csv,json}. No path separators (/, ..), no spaces, no metacharacters.
## Workflow
Copy this checklist and track progress:
CODEBLOCK0
### Step 1: Identify Competitor Analysis Type
Select the appropriate Actor based on analysis needs:
| User Need | Actor ID | Best For |
|-----------|----------|----------|
| Competitor business data | compass/crawler-google-places | Location analysis |
| Competitor contact discovery | poidata/google-maps-email-extractor | Email extraction |
| Feature benchmarking | compass/google-maps-extractor | Detailed business data |
| Competitor review analysis | compass/Google-Maps-Reviews-Scraper | Review comparison |
| Hotel competitor data | voyager/booking-scraper | Hotel benchmarking |
| Hotel review comparison | voyager/booking-reviews-scraper | Review analysis |
| Competitor ad strategies | apify/facebook-ads-scraper | Ad creative analysis |
| Competitor page metrics | apify/facebook-pages-scraper | Page performance |
| Competitor content analysis | apify/facebook-posts-scraper | Post strategies |
| Competitor reels performance | apify/facebook-reels-scraper | Reels analysis |
| Competitor audience analysis | apify/facebook-comments-scraper | Comment sentiment |
| Competitor event monitoring | apify/facebook-events-scraper | Event tracking |
| Competitor audience overlap | apify/facebook-followers-following-scraper | Follower analysis |
| Competitor review benchmarking | apify/facebook-reviews-scraper | Review comparison |
| Competitor ad monitoring | apify/facebook-search-scraper | Ad discovery |
| Competitor profile metrics | apify/instagram-profile-scraper | Profile analysis |
| Competitor content monitoring | apify/instagram-post-scraper | Post tracking |
| Competitor engagement analysis | apify/instagram-comment-scraper | Comment analysis |
| Competitor reel performance | apify/instagram-reel-scraper | Reel metrics |
| Competitor growth tracking | apify/instagram-followers-count-scraper | Follower tracking |
| Comprehensive competitor data | apify/instagram-scraper | Full analysis |
| API-based competitor analysis | apify/instagram-api-scraper | API access |
| Competitor video analysis | streamers/youtube-scraper | Video metrics |
| Competitor sentiment analysis | streamers/youtube-comments-scraper | Comment sentiment |
| Competitor channel metrics | streamers/youtube-channel-scraper | Channel analysis |
| TikTok competitor analysis | clockworks/tiktok-scraper | TikTok data |
| Competitor video strategies | clockworks/tiktok-video-scraper | Video analysis |
| Competitor TikTok profiles | clockworks/tiktok-profile-scraper | Profile data |
### Step 2: Fetch Actor Schema
Fetch the Actor's input schema and details dynamically using mcpc:
CODEBLOCK1
Replace ACTORID with the selected Actor (e.g., compass/crawler-google-places).
This returns:
- Actor description and README
- Required and optional input parameters
- Output fields (if available)
### Step 3: Ask User Preferences
Before running, ask:
1. **Output format**:
- **Quick answer** - Display top few results in chat (no file saved)
- **CSV** - Full export with all fields
- **JSON** - Full export in JSON format
2. **Number of results**: Based on character of use case
### Step 4: Run the Script
**Quick answer (display in chat, no file):**
CODEBLOCK2
**CSV:**
CODEBLOCK3
**JSON:**
CODEBLOCK4
### Step 5: Summarize Findings
After completion, report:
- Number of competitors analyzed
- File location and name
- Key competitive insights
- Suggested next steps (deeper analysis, benchmarking)
## Security & Data Privacy
This skill instructs the agent to select an Apify Actor, fetch its schema (via mcpc), and run scrapers. The included script communicates only with api.apify.com and writes outputs to files under the current working directory; it does not access unrelated system files or other environment variables.
Apify Actors only scrape publicly available data and do not collect private or personally identifiable information beyond what is openly accessible on the target platforms. For additional security assurance, you can check an Actor's permission level by querying https://api.apify.com/v2/acts/:actorId — an Actor with LIMITEDPERMISSIONS operates in a restricted sandbox, while FULLPERMISSIONS indicates broader system access. For full details, see [Apify's General Terms and Conditions](https://docs.apify.com/legal/general-terms-and-conditions).
## Error Handling
APIFYTOKEN not found - Ask user to configure APIFY_TOKEN in OpenClaw settings
mcpc not found - Run npm install -g @apify/mcpc
Actor not found - Check Actor ID spelling
Run FAILED - Ask user to check Apify console link in error output
Timeout - Reduce input size or increase --timeout`
竞品情报
使用Apify Actors从多个平台提取数据来分析竞争对手。
前置条件
- - 在OpenClaw设置中配置了APIFY_TOKEN
- Node.js 20.6+
- mcpc CLI(通过技能元数据自动安装)
输入净化规则
在将任何值替换到bash命令之前:
- - ACTORID:必须是技术名称(owner/actor-name — 字母数字、连字符、点号、一个斜杠)或原始ID(恰好17个字母数字字符,例如oeiQgfg5fsmIJB7Cn)。拒绝包含shell元字符( ; | & $ ( ) { } < > ! \n )的值。
- SEARCHKEYWORDS:仅限纯文本单词。拒绝shell元字符。
- JSONINPUT:必须是有效的JSON。不得包含单引号(使用转义的双引号)。使用前验证结构。
- 输出文件名:必须匹配YYYY-MM-DD描述性名称.{csv,json}。无路径分隔符(/、..)、无空格、无元字符。
工作流程
复制此清单并跟踪进度:
任务进度:
- - [ ] 步骤1:确定竞品分析类型(选择Actor)
- [ ] 步骤2:通过mcpc获取Actor模式
- [ ] 步骤3:询问用户偏好(格式、文件名)
- [ ] 步骤4:运行分析脚本
- [ ] 步骤5:总结发现
步骤1:确定竞品分析类型
根据分析需求选择合适的Actor:
| 用户需求 | Actor ID | 最佳用途 |
|---|
| 竞品业务数据 | compass/crawler-google-places | 位置分析 |
| 竞品联系方式发现 |
poidata/google-maps-email-extractor | 邮箱提取 |
| 功能对标 | compass/google-maps-extractor | 详细业务数据 |
| 竞品评论分析 | compass/Google-Maps-Reviews-Scraper | 评论对比 |
| 酒店竞品数据 | voyager/booking-scraper | 酒店对标 |
| 酒店评论对比 | voyager/booking-reviews-scraper | 评论分析 |
| 竞品广告策略 | apify/facebook-ads-scraper | 广告创意分析 |
| 竞品页面指标 | apify/facebook-pages-scraper | 页面表现 |
| 竞品内容分析 | apify/facebook-posts-scraper | 帖子策略 |
| 竞品Reels表现 | apify/facebook-reels-scraper | Reels分析 |
| 竞品受众分析 | apify/facebook-comments-scraper | 评论情感 |
| 竞品活动监控 | apify/facebook-events-scraper | 活动追踪 |
| 竞品受众重叠 | apify/facebook-followers-following-scraper | 粉丝分析 |
| 竞品评论对标 | apify/facebook-reviews-scraper | 评论对比 |
| 竞品广告监控 | apify/facebook-search-scraper | 广告发现 |
| 竞品主页指标 | apify/instagram-profile-scraper | 主页分析 |
| 竞品内容监控 | apify/instagram-post-scraper | 帖子追踪 |
| 竞品互动分析 | apify/instagram-comment-scraper | 评论分析 |
| 竞品Reel表现 | apify/instagram-reel-scraper | Reel指标 |
| 竞品增长追踪 | apify/instagram-followers-count-scraper | 粉丝追踪 |
| 综合竞品数据 | apify/instagram-scraper | 全面分析 |
| 基于API的竞品分析 | apify/instagram-api-scraper | API访问 |
| 竞品视频分析 | streamers/youtube-scraper | 视频指标 |
| 竞品情感分析 | streamers/youtube-comments-scraper | 评论情感 |
| 竞品频道指标 | streamers/youtube-channel-scraper | 频道分析 |
| TikTok竞品分析 | clockworks/tiktok-scraper | TikTok数据 |
| 竞品视频策略 | clockworks/tiktok-video-scraper | 视频分析 |
| 竞品TikTok主页 | clockworks/tiktok-profile-scraper | 主页数据 |
步骤2:获取Actor模式
使用mcpc动态获取Actor的输入模式和详细信息:
bash
mcpc --json mcp.apify.com --header Authorization: Bearer $APIFYTOKEN tools-call fetch-actor-details actor:=ACTORID | jq -r .content
将ACTOR_ID替换为选定的Actor(例如compass/crawler-google-places)。
返回内容:
- - Actor描述和README
- 必需和可选的输入参数
- 输出字段(如有)
步骤3:询问用户偏好
运行前,询问:
- 1. 输出格式:
-
快速回答 - 在聊天中显示前几条结果(不保存文件)
-
CSV - 包含所有字段的完整导出
-
JSON - JSON格式的完整导出
- 2. 结果数量:根据用例特点确定
步骤4:运行脚本
快速回答(在聊天中显示,不保存文件):
bash
node {baseDir}/reference/scripts/run_actor.js \
--actor ACTOR_ID \
--input JSON_INPUT
CSV:
bash
node {baseDir}/reference/scripts/run_actor.js \
--actor ACTOR_ID \
--input JSON_INPUT \
--output YYYY-MM-DDOUTPUTFILE.csv \
--format csv
JSON:
bash
node {baseDir}/reference/scripts/run_actor.js \
--actor ACTOR_ID \
--input JSON_INPUT \
--output YYYY-MM-DDOUTPUTFILE.json \
--format json
步骤5:总结发现
完成后,报告:
- - 分析的竞品数量
- 文件位置和名称
- 关键竞争洞察
- 建议的后续步骤(深入分析、对标)
安全与数据隐私
本技能指导代理选择一个Apify Actor,获取其模式(通过mcpc),并运行爬虫。包含的脚本仅与api.apify.com通信,并将输出写入当前工作目录下的文件;不会访问无关的系统文件或其他环境变量。
Apify Actors仅爬取公开可用的数据,不会收集目标平台上非公开的个人身份信息。如需额外的安全保障,您可以通过查询https://api.apify.com/v2/acts/:actorId来检查Actor的权限级别——具有LIMITEDPERMISSIONS的Actor在受限沙箱中运行,而FULLPERMISSIONS表示更广泛的系统访问权限。详情请参见Apify通用条款与条件。
错误处理
APIFYTOKEN not found - 请用户在OpenClaw设置中配置APIFYTOKEN
mcpc not found - 运行npm install -g @apify/mcpc
Actor not found - 检查Actor ID拼写
Run FAILED - 请用户检查错误输出中的Apify控制台链接
Timeout - 减少输入大小或增加--timeout参数