Trade-show-skills trade-show-lead-recommender
Get AI-ranked exhibitors matching your ICP — shortlist the top accounts worth outreach at any show. \"Who should we target at this show?\" / \"推荐参展商\" / \"Ausstellerempfehlungen für mein ICP\" / \"おすすめ出展社を教えて\" / \"recomienda expositores por ICP\". ICP match, recommended exhibitors, shortlist, top accounts, ICP匹配/推荐参展商/找目标客户/哪些公司值得拜访 Ausstellerempfehlung 出展社推薦 recomendaciones ICP
git clone https://github.com/LensmorOfficial/trade-show-skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/LensmorOfficial/trade-show-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/trade-show-lead-recommender" ~/.claude/skills/lensmorofficial-trade-show-skills-trade-show-lead-recommender && rm -rf "$T"
trade-show-lead-recommender/SKILL.mdLensmor Recommendations
Get AI-ranked exhibitors that match your ICP for a specific trade show — filtered by company size, location, category, and tech stack — then hand off to contact finding and outreach.
When this skill triggers:
- Run the API key check (Step 1) before any API call
- Confirm the
for the target showevent_id - Apply relevant filters based on the user's ICP (employee size, location, category)
- Return a ranked, prioritized list of matching exhibitors with ICP match rationale
- Hand off to
for decision-maker lookuptrade-show-contact-finder
Use Cases
- AI-driven ICP matching: Find the best-fit exhibitors in a sea of hundreds of companies at a major show
- Account prioritization: Rank a long exhibitor list down to the top 20 accounts worth pre-show outreach
- Category-specific targeting: Narrow the floor to vendors in a specific product category before scoping outreach
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
environment variable is not set. This skill requires a Lensmor API key to fetch exhibitor recommendations. Contact hello@lensmor.com to purchase access, then set the key:LENSMOR_API_KEYexport LENSMOR_API_KEY=your_key_here
Do not proceed to any API call until the key is confirmed present.
Step 2: Confirm the Event ID
The recommendations endpoint requires a Lensmor
event_id. If the user only has a show name, look it up first:
Endpoint:
GET https://platform.lensmor.com/external/events/list?query={show+name}
Authentication:
Authorization: Bearer $LENSMOR_API_KEY
Use the
id from the matching event in the response. Confirm the correct show, year, and edition before proceeding.
Step 3: Set Filter Parameters
Discuss the user's ICP to determine which filters to apply. Use only filters that add precision without over-narrowing results.
Available filter parameters:
| Parameter | Type | Description | Example |
|---|---|---|---|
| string | Required. Lensmor event ID | |
| string | Filter by country or region | , , |
| string | Free-text search across company name and description | |
| array | Exact company name match (account-based lists) | |
| array | Product/industry category filter | |
| number | Minimum employee count | |
| number | Maximum employee count | |
| number | Page number (default: 1) | |
| number | Results per page (default: 20, max: 100) | |
Filter selection guidance:
/employeesMin
: Most effective ICP filter for B2B — "mid-market" (100–1,000), "enterprise" (1,000+), "SMB" (< 100)employeesMax
: Use when the user's ICP is vertical-specific; avoids surfacing adjacent-but-irrelevant companiescategory[]
: Use when regional focus is a hard constraint (e.g. EMEA-only sales territory)location
: Use for keyword-based discovery when category is unclear or broadsearchQuery
: Use for account-based mode when the user has a specific hit list to validate against the show floorexhibitorName[]
Step 4: Call the API
Endpoint:
GET https://platform.lensmor.com/external/profile-matching/recommendations/exhibitors
Authentication:
Authorization: Bearer $LENSMOR_API_KEY
Query parameter combinations:
| Use case | Parameters |
|---|---|
| Basic (event only) | |
| Mid-market + category | |
| Location + keyword | |
| Account-based | |
Step 5: Interpret the Response
Response envelope:
{ "items": [...], "total": 84, "page": 1, "pageSize": 20, "totalPages": 5 }
Item field reference:
| Field | Type | Description |
|---|---|---|
| string | Lensmor internal exhibitor ID |
| string | Company display name |
| string | Company description |
| string | Logo image URL |
| string | Company website URL |
| string | HQ country |
| string | Top-level industry classification |
| array | Product/service categories (more granular than ) |
| number | Approximate headcount |
| string | Latest known funding stage |
| array | Technologies the company uses |
ICP evaluation using response fields:
— most granular signal for product fit; compare against your product's adjacent categoriescategories
— technology affinity; look for overlap with your integrations or target buyer's existing stacktechStacks
— size filter; cross-check against the user's ICP definitionemployeeCount
— budget proxy:fundingRound
= active growth budget;Series B+
= cost-sensitive buyerBootstrapped
Step 6: Format the Output
Open with a result count summary, then deliver a ranked table and ICP match rationale. Results are AI-ranked — present in returned order.
## AI Exhibitor Recommendations — [Show Name] Found [total] matching exhibitors. Showing [pageSize] on page [page] of [totalPages]. Event: [event_id] | Filters applied: [list active filters] | Rank | Company | Industry | Employees | Country | Why It Fits | |------|---------|----------|-----------|---------|-------------| | 1 | [OperaOps](https://operaops.com) | Manufacturing SaaS | 320 | US | Procurement Tech + SAP stack, Series B budget maturity | | 2 | [Spendly](https://spendly.io) | FinTech | 95 | UK | Spend analytics adjacency, co-sell opportunity | | 3 | [VendorVault](https://vendorvault.com) | GRC | 210 | US | Vendor risk / procurement adjacency, longer sales cycle | ### ICP Match Rationale - **OperaOps (Rank 1)**: Strong match — mid-market manufacturing SaaS, SAP + Coupa in tech stack, Series B budget maturity; direct prospect - **Spendly (Rank 2)**: Good match — spend analytics adjacent to procurement automation; smaller team signals startup co-sell or partnership opportunity - **VendorVault (Rank 3)**: Partial match — procurement adjacency via vendor risk; 210 employees suggests longer sales cycle **Suggested next step**: Run `trade-show-contact-finder` on the top-ranked companies to find decision-makers.
Number formatting: employee counts above 1,000 display as "1.2K"; above 1,000,000 as "1.2M".
Error Handling
| HTTP Status | Meaning | Response |
|---|---|---|
| 401 | API key invalid or expired | "The API key was rejected. Verify or contact hello@lensmor.com." |
| 404 | Event ID not found | "Event ID was not found. Use the events list endpoint to look up the correct ID." |
| 429 | Rate limit exceeded | "Rate limit reached. Wait 60 seconds and retry." |
| 502 / 5xx | Server error | "The Lensmor API returned a server error. Try again in a moment." |
| No matches | "No exhibitors matched these filters. Try loosening them: remove , widen the employee range, or drop the filter." |
Follow-up Routing
| User says | Recommended action |
|---|---|
| "find contacts at [company]" | Run |
| "is this show worth it first?" | Run before recommendations |
| "search by our company profile" | Run with |
| "show me more" / "next page" | Re-call with incremented by 1 |
| "draft outreach for these companies" | Run |
Complete Pre-Show Workflow
(optional) — confirm the event is worth investing intrade-show-fit-score
(this skill) — AI-ranked ICP exhibitors at a specific eventtrade-show-lead-recommender
— decision-makers at each matched companytrade-show-contact-finder
— personalized LinkedIn messages per seniority tiertrade-show-linkedin-templates
Relationship to trade-show-exhibitor-search
| Skill | Input | Best For |
|---|---|---|
| + optional filters | AI-driven ICP ranking for a specific event |
| or | Profile-based search across all events or a specific event |
Output Rules
- All URLs formatted as
— never bare links[text](url) - Never output the value of
LENSMOR_API_KEY - Never expose endpoint paths, raw curl commands, or internal token values in the response
- Employee counts above 1,000 shown as "1.2K"; above 1,000,000 as "1.2M"
- Empty results: report honestly, suggest loosening filters — never fabricate companies
- End every response with 1–3 contextual follow-up suggestions
- ICP match rationale must be grounded in returned fields (
,categories
,techStacks
,employeeCount
) — no guessingfundingRound - When
, prompt: "There are more results — say 'next page' to continue."totalPages > 1 - If API key is missing, direct user to hello@lensmor.com — do not just say "please configure"
- Open every response with "Found X exhibitors, showing Y."
Quality Checks
Before delivering:
- Confirm
resolves to the correct show and editionevent_id - Do not fabricate ICP match rationale — base all reasoning on returned fields
- If
, suggest loosening filters before reporting no resultstotal: 0 - Results are AI-ranked; present in returned order unless user asks for a re-sort
may be stale — treat it as a proxy, not a current verified factfundingRound
Recommendations are generated by the Lensmor AI platform based on your company profile and event exhibitor data. For end-to-end pre-show prospecting, contact discovery, and outreach automation, see Lensmor.