Find ICP-matching exhibitors, potential prospects, partners, or competitors at a specific trade show using the Lensmor API — before the event starts.
When this skill triggers:
event_idBefore making any API call, verify the key is configured:
bash
[ -n "$LENSMOR_API_KEY" ] && echo "ok" || echo "missing"
If the result is missing, stop and respond:
The
LENSMOR_API_KEYenvironment variable is not set. This skill requires a Lensmor API key to search exhibitor data. Contact hello@lensmor.com 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.
Ask the user for:
Required (at least one):
company_url — The user's own company website, used to infer ICP profile (e.g. https://acme.com)target_audience — Free-text description of the desired exhibitor profile (e.g. "B2B SaaS vendors selling to procurement teams at manufacturers")Optional:
event_id — Lensmor event ID to scope the search to a specific show. If unknown, look it up via GET /external/events/list?query={name}.page — Page number (default: 1)pageSize — Results per page (default: 20, max: 100)If the user provides a show name but not an event_id, offer to resolve it via the events list endpoint before proceeding.
Endpoint: POST https://platform.lensmor.com/external/exhibitors/search
Authentication: Authorization: Bearer $LENSMOR_API_KEY
Request body with company_url:
json
{
"company_url": "https://acme.com",
"event_id": "evt_dreamforce_2026",
"page": 1,
"pageSize": 20
}
Request body with target_audience:
json
{
"target_audience": "B2B SaaS vendors targeting procurement and operations teams in manufacturing",
"event_id": "evt_hannovermesse_2026",
"page": 1,
"pageSize": 20
}
Response envelope:
json
{
"items": [...],
"total": 142,
"page": 1,
"pageSize": 20,
"totalPages": 8
}
Item field reference:
FieldTypeDescriptionidstringLensmor internal exhibitor IDcompanyNamestringCompany display namedomainstringPrimary domain (e.g. acme.com)descriptionstringCompany description as indexed by LensmorwebsitestringFull website URLindustrystringTop-level industry classificationemployeeCountnumberApproximate headcountcountrystringHQ countrylogostringLogo image URLlinkedinUrlstringLinkedIn company page URL — primary channel for outreachfundingRoundstringLatest known funding stage (e.g. Series B, Bootstrapped)techStacksarrayTechnologies the company uses (e.g. ["Salesforce", "Marketo"])matched_event_idsarrayShow IDs where this company is confirmed as an exhibitor
ICP signals priority:
industry + employeeCount — quick size-and-sector matchtechStacks — technology affinity (e.g. target companies using a specific CRM)fundingRound — budget proxy for enterprise vs. startup buyerslinkedinUrl — use with lensmor-contact-finder for decision-maker lookupOpen with a result count summary, then deliver a structured table and ICP match notes.
markdown
## Exhibitor Search Results — [Show Name or Event ID]
Found [total] exhibitors. Showing [pageSize] on page [page] of [totalPages].
ICP Profile: [company_url or target_audience summary]
| # | Company | Industry | Employees | Country | LinkedIn |
|---|---------|----------|-----------|---------|----------|
| 1 | [Acme Corp](https://acme.com) | Manufacturing SaaS | 450 | DE | [LinkedIn](https://linkedin.com/company/acme) |
| 2 | ... | ... | ... | ... | ... |
### ICP Match Notes
- **[Company A]**: Strong match — mid-market manufacturing SaaS, SAP integration signals shared buyer base
- **[Company B]**: Partial match — large enterprise, potential partner rather than direct prospect
- **[Company C]**: Competitor flag — overlapping product category
Number formatting: employee counts above 1,000 display as "1.2K"; above 1,000,000 as "1.2M".
HTTP StatusMeaningResponse401API key invalid or expired"The API key was rejected. Verify the value of LENSMOR_API_KEY or contact hello@lensmor.com."400Missing required parameter"The request is missing a required field. Provide either company_url or target_audience."404Event ID not found"Event ID [id] was not found. Use /external/events/list to look up the correct ID."429Rate limit exceeded"Rate limit reached. Wait 60 seconds and retry."502 / 5xxServer error"The Lensmor API returned a server error. Try again in a moment."Empty itemsNo matches"No exhibitors matched this query. Try broadening target_audience, removing the event_id filter, or checking the show has exhibitor data loaded."
User saysRecommended action"find contacts at [company]"Run lensmor-contact-finder with that company name"rank these by ICP fit"Run lensmor-recommendations for AI-ranked results"draft outreach for [company]"Run booth-invitation-writer"is this show worth it?"Run lensmor-event-fit-score first"show me more" / "next page"Re-call with page incremented by 1
[text](url) — never bare linksLENSMOR_API_KEYindustry, techStacks, employeeCount, fundingRound) — no guessingtotalPages > 1, prompt: "There are more results — say 'next page' to continue."Before delivering:
company_url or target_audience was provided; do not fabricate a querylinkedinUrl is null for a company, note that LinkedIn is unavailable and suggest searching manuallymatched_event_ids does not include the user's target event, surface this as a notetotalPages > 1, prompt the user whether to fetch additional pagesExhibitor data sourced from the Lensmor platform. For AI-powered exhibitor discovery, ICP matching, and lead generation before the show floor opens, see Lensmor.