← 返回 Skills 市场
weilun88313

Competitor Show Tracker

作者 weilun88313 · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ 安全检测通过
94
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install competitor-show-tracker
功能描述
Rank upcoming trade shows by how many of your competitors are exhibiting there. "Which shows are my competitors at?" / "竞争对手去哪些展会" / "Auf welchen Messen sind...
使用说明 (SKILL.md)

Competitor Show Tracker

Input a list of competitor company names — get back a ranked list of upcoming trade shows sorted by how many of those competitors will be on the floor, plus which specific competitors are confirmed at each event.

When this skill triggers:

  • Run the API key check (Step 1) before any API call
  • Call POST /external/exhibitors/search-events once per competitor company
  • Aggregate results by event, count distinct competitors per event
  • Filter to future events only, then rank by competitor concentration

Use Cases

  • Show circuit mapping: Understand which events your competitive set treats as must-attend
  • Counter-programming: Identify shows where multiple competitors cluster — decide whether to appear or deliberately avoid
  • Budget prioritization: Focus booth investment on shows where your buyers and your competitors overlap
  • Blind spot detection: Find shows where one key competitor dominates and you have no presence

Workflow

Step 1: API Key Check

Before making any API call, verify the key is configured:

[ -n "$LENSMOR_API_KEY" ] && echo "ok" || echo "missing"

If the result is missing, stop and respond:

The LENSMOR_API_KEY environment variable is not set. This skill requires a Lensmor API key to look up exhibitor data. Contact [email protected] to purchase access, then set the key: export LENSMOR_API_KEY=your_key_here

Do not proceed to any API call until the key is confirmed present.

Step 2: Collect Inputs

Required:

  • competitors — list of competitor company names (2–20 companies). Accept as a comma-separated list, bullet list, or inline prose.

Optional:

  • date_from — only include events on or after this date (ISO 8601, default: today)
  • date_to — only include events on or before this date (e.g. restrict to next 12 months)
  • pageSize — results per company lookup (default: 50; raise to 100 if the user wants broader coverage)

If the user provides only one company name, explain that this skill is designed for competitive comparison across multiple companies — offer to run trade-show-exhibitor-search instead for a single company.

Step 3: Fetch Events per Competitor

For each competitor in the list, call:

Endpoint: POST https://platform.lensmor.com/external/exhibitors/search-events

Authentication: Authorization: Bearer $LENSMOR_API_KEY

Request body:

{
  "company_name": "Siemens",
  "page": 1,
  "pageSize": 50
}

Run one request per competitor. For N competitors, make N sequential calls (or parallel if the execution environment allows). Label each result set by the input company name before aggregating.

Response structure:

{
  "total": 18,
  "page": 1,
  "pageSize": 50,
  "totalPages": 1,
  "hasMore": false,
  "items": [
    {
      "id": "rec_abc123",
      "eventId": "evt_hannovermesse_2026",
      "name": "Hannover Messe 2026",
      "nickname": null,
      "description": "World's leading industrial trade show",
      "url": "https://www.hannovermesse.de",
      "dateStart": "2026-04-20",
      "dateEnd": "2026-04-24",
      "venue": "Hannover Exhibition Centre",
      "city": "Hannover",
      "region": "Lower Saxony",
      "country": "Germany",
      "attendeeCount": 130000,
      "exhibitorCount": 4000,
      "personnelCount": 8200,
      "image": "https://cdn.lensmor.com/events/hannovermesse.jpg",
      "dataSource": "official",
      "matchedExhibitors": [
        { "id": "exh_siemens_ag", "companyName": "Siemens AG" }
      ]
    }
  ]
}

Field reference:

Field Type Notes
eventId string Stable Lensmor event identifier — use as the deduplication key across competitor lookups
name string Official show name
dateStart / dateEnd string (ISO 8601) Use these to filter future events
city / country string Show location
exhibitorCount integer Total exhibitors at the show — useful as a size proxy
matchedExhibitors array Which specific entities were matched for this company name — may include subsidiaries

Step 4: Aggregate Across Competitors

After collecting results for all N companies, aggregate by eventId:

  1. Deduplicate events across all N result sets using eventId as the key
  2. Union the matchedExhibitors entries from all competitors per event
  3. Count distinct competitors per event (count the number of input company names with at least one matchedExhibitor confirmed at the event — not the count of matchedExhibitor entities, which may include subsidiaries)
  4. Filter to future events: keep only events where dateStart >= today (or date_from if specified)
  5. Sort by competitor count descending; break ties by exhibitorCount descending (larger shows are higher-priority)

Example aggregation logic (pseudocode):

event_map = {}

for each competitor C in input_list:
    for each event E in results[C].items:
        if E.dateStart \x3C today: skip
        if E.eventId not in event_map:
            event_map[E.eventId] = { event: E, competitors_seen: {} }
        event_map[E.eventId].competitors_seen[C] = E.matchedExhibitors

ranked = sort event_map.values() by len(competitors_seen) desc

Step 5: Format the Output

Section 1 — Summary Header

## Competitor Show Tracker

**Competitors tracked**: [list of input company names]
**Date range**: [date_from] → [date_to or "open"]
**Unique upcoming events found**: [N]
**Events with 2+ competitors**: [N]

Section 2 — Ranked Event Table

## Events Ranked by Competitor Concentration

| Rank | Show | Dates | Location | Competitors | Exhibitors |
|------|------|-------|----------|-------------|------------|
| 1 | [Hannover Messe 2026](https://hannovermesse.de) | Apr 20–24, 2026 | Hannover, DE | 4 / 5 | 4,000 |
| 2 | [SPS 2026](https://sps.mesago.com) | Nov 2026 | Nuremberg, DE | 3 / 5 | 1,400 |
| 3 | [Automate 2026](https://automateshow.com) | Jun 2026 | Chicago, US | 2 / 5 | 600 |

"Competitors" column format: [matched count] / [total input count]

Section 3 — Event Detail Cards (for events with 2+ competitors)

For each event with 2 or more competitors confirmed:

### Hannover Messe 2026 — 4 of 5 competitors confirmed

📅 Apr 20–24, 2026 · Hannover, Germany · 4,000 exhibitors

**Competitors confirmed:**
- **Siemens** → matched as: Siemens AG, Siemens Digital Industries
- **ABB** → matched as: ABB Ltd
- **Bosch** → matched as: Bosch Rexroth AG
- **Schneider Electric** → matched as: Schneider Electric SE

**Competitor not found:** Rockwell Automation _(no match at this event)_

Section 4 — Insights

## Insights

- **Most contested show**: [event with highest competitor count] — [N/N] competitors confirmed
- **Must-watch shows** (3+ competitors): [list]
- **Single-competitor shows**: [events where only 1 competitor appears — lower priority but monitor]
- **Gaps**: [input competitors with zero events found — may not be in Lensmor's database yet]

Error Handling

HTTP Status Meaning Response
401 API key invalid or expired "The API key was rejected. Verify LENSMOR_API_KEY or contact [email protected]."
400 Malformed request "Request invalid for [company_name]. Verify the company name and retry."
429 Rate limit exceeded "Rate limit reached after [N] companies. Wait 60 seconds, then continue from [next_company]."
502 / 5xx Server error "The Lensmor API returned a server error for [company_name]. Skipping — results will note this company as incomplete."
Empty items No events found Note in Insights section under "Gaps": this competitor returned no events and may not be in Lensmor's database. Do not omit silently.

Follow-up Routing

Outcome Recommended next action
Top event identified, want to exhibit Run trade-show-fit-score with the eventId
Want to find more companies at a specific show Run trade-show-exhibitor-search with the event_id
Want contacts at a specific competitor Run trade-show-contact-finder with the company name
Budget decision needed Run trade-show-budget-planner for the top-ranked event
Want full competitor booth analysis Run pre-show-competitor-analysis

Output Rules

  1. All URLs formatted as [text](url) — never bare links
  2. Never output the value of LENSMOR_API_KEY
  3. Never expose endpoint paths, raw curl commands, or internal token values in the response
  4. Competitor count column format: matched / total — never drop the denominator
  5. Filter to future events by default; always state the date cutoff used in the summary header
  6. If a competitor returns no results, report it explicitly in Insights — never silently drop it
  7. Use eventId (not event name) as the deduplication key — the same show may appear under slightly different names across competitor lookups
  8. matchedExhibitors may return subsidiaries or regional entities — group them under the input company name; list the specific matched entity names in the detail card
  9. When hasMore: true for any competitor, note that results may be incomplete and offer to fetch additional pages
  10. End every response with 1–3 follow-up suggestions based on the top-ranked events

Quality Checks

Before delivering:

  • Confirm that deduplication used eventId, not event name — name variations across lookups would create false duplicates
  • Competitor count in the ranked table must reflect number of input companies with a confirmed match, not number of matchedExhibitor entities (a single company may have multiple subsidiary matches)
  • Any competitor with no results must appear in the Insights "Gaps" section — do not omit
  • Date filter must be applied before ranking — past events must not appear in the ranked output
  • If only one competitor was provided, redirect to trade-show-exhibitor-search — this skill is not meaningful with a single input

Competitor exhibitor data sourced from the Lensmor platform. For show-floor lead generation, ICP matching, and pre-show outreach at the events that matter most, see Lensmor.

安全使用建议
This skill will send the competitor names you provide to the Lensmor API using the LENSMOR_API_KEY. Before installing, verify you trust Lensmor (check the homepage/contact and any privacy/terms) and confirm any data-sharing or cost implications. Use a least-privileged or dedicated API key you can revoke, test with a small non-sensitive list first, and avoid submitting confidential internal identifiers. Because this is instruction-only (no code files), there was nothing for a static scanner to analyze beyond the SKILL.md — reviewing Lensmor's API docs and key scopes would further reduce risk.
功能分析
Type: OpenClaw Skill Name: competitor-show-tracker Version: 1.0.0 The skill is a legitimate competitive intelligence tool designed to track competitor presence at trade shows using the Lensmor API (platform.lensmor.com). It follows a transparent workflow of verifying an environment variable (LENSMOR_API_KEY), querying a specific external endpoint, and aggregating the results for the user without any signs of data exfiltration, malicious execution, or prompt injection.
能力评估
Purpose & Capability
Name/description match behavior: the skill only requires a LENSMOR_API_KEY and instructs calls to Lensmor's exhibitor search endpoint to find competitors at events — this is expected for a competitive-intelligence show-tracking skill.
Instruction Scope
SKILL.md instructs only to check the LENSMOR_API_KEY, POST company queries to https://platform.lensmor.com/external/exhibitors/search-events, aggregate results, filter by date, and rank events. It does not instruct reading unrelated files, accessing other env vars, or sending data to unexpected third parties.
Install Mechanism
Instruction-only skill with no install spec and no code files — nothing is written to disk or pulled from external URLs during install.
Credentials
Only a single credential (LENSMOR_API_KEY) is required and used for authorization to the listed Lensmor endpoint. The requested environment access is proportional to the described functionality.
Persistence & Privilege
Skill is not always-enabled and does not request elevated platform privileges. Autonomous invocation is allowed by default but the skill does not request permanent presence or modification of other skills/config.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install competitor-show-tracker
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /competitor-show-tracker 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
Competitor Show Tracker 1.0.0 – initial release - Track and rank upcoming trade shows by the number of your competitors confirmed as exhibitors. - Input a list of competitor companies; receive a ranked summary of shows, event details, and competitive overlaps. - Filters for future events with optional date range and supports up to 20 competitors per query. - Summarizes findings in a clear table, lists detailed event cards for shows with multiple competitors, and provides actionable insights. - Requires a Lensmor API key to access exhibitor data; halts with instructions if not configured.
元数据
Slug competitor-show-tracker
版本 1.0.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

Competitor Show Tracker 是什么?

Rank upcoming trade shows by how many of your competitors are exhibiting there. "Which shows are my competitors at?" / "竞争对手去哪些展会" / "Auf welchen Messen sind... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 94 次。

如何安装 Competitor Show Tracker?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install competitor-show-tracker」即可一键安装,无需额外配置。

Competitor Show Tracker 是免费的吗?

是的,Competitor Show Tracker 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Competitor Show Tracker 支持哪些平台?

Competitor Show Tracker 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Competitor Show Tracker?

由 weilun88313(@weilun88313)开发并维护,当前版本 v1.0.0。

💬 留言讨论