Lensmor Exhibitor Search
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:
- - Run the API key check (Step 1) before any API call
- Collect the user's company URL or a clear description of the target audience
- Optionally narrow the search to a specific event via INLINECODE0
- Return a structured exhibitor table with ICP match reasoning
Use Cases
- - Prospect discovery: Find companies at an upcoming show that match your ICP for pre-show outreach
- Partner sourcing: Locate potential technology partners, resellers, or distribution channels exhibiting
- Competitive mapping: Identify direct and adjacent competitors sharing the floor
Workflow
Step 1: API Key Check
Before making any API call, verify the key is configured:
CODEBLOCK0
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 search exhibitor data.
Contact hello@lensmor.com to purchase access, then set the key:
INLINECODE3
Do not proceed to any API call until the key is confirmed present.
Step 2: Collect Inputs
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) - INLINECODE6 — 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}. - INLINECODE9 — Page number (default: 1)
- INLINECODE10 — 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.
Step 3: Call the API
Endpoint: INLINECODE12
Authentication: INLINECODE13
Request body with company_url:
CODEBLOCK1
Request body with target_audience:
CODEBLOCK2
Step 4: Interpret the Response
Response envelope:
CODEBLOCK3
Item field reference:
| Field | Type | Description |
|---|
| INLINECODE16 | string | Lensmor internal exhibitor ID |
| INLINECODE17 |
string | Company display name |
|
domain | string | Primary domain (e.g.
acme.com) |
|
description | string | Company description as indexed by Lensmor |
|
website | string | Full website URL |
|
industry | string | Top-level industry classification |
|
employeeCount | number | Approximate headcount |
|
country | string | HQ country |
|
logo | string | Logo image URL |
|
linkedinUrl | string | LinkedIn company page URL — primary channel for outreach |
|
fundingRound | string | Latest known funding stage (e.g.
Series B,
Bootstrapped) |
|
techStacks | array | Technologies the company uses (e.g.
["Salesforce", "Marketo"]) |
|
matched_event_ids | array | Show IDs where this company is confirmed as an exhibitor |
ICP signals priority:
- -
industry + employeeCount — quick size-and-sector match - INLINECODE35 — technology affinity (e.g. target companies using a specific CRM)
- INLINECODE36 — budget proxy for enterprise vs. startup buyers
- INLINECODE37 — use with
lensmor-contact-finder for decision-maker lookup
Step 5: Format the Output
Open with a result count summary, then deliver a structured table and ICP match notes.
CODEBLOCK4
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 the value of LENSMOR_API_KEY or contact hello@lensmor.com." |
| 400 |
Missing required parameter | "The request is missing a required field. Provide either
company_url or
target_audience." |
| 404 | Event ID not found | "Event ID
[id] was not found. Use
/external/events/list 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." |
| Empty
items | No matches | "No exhibitors matched this query. Try broadening
target_audience, removing the
event_id filter, or checking the show has exhibitor data loaded." |
Follow-up Routing
| User says | Recommended 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 |
Output Rules
- 1. All URLs formatted as
[text](url) — never bare links - Never output the value of INLINECODE53
- 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 parameter adjustments — never fabricate entries
- End every response with 1–3 contextual follow-up suggestions
- ICP match rationale must be grounded in returned fields (
industry, techStacks, employeeCount, fundingRound) — no guessing - When
totalPages > 1, prompt: "There are more results — say 'next page' to continue." - 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 at least one of
company_url or target_audience was provided; do not fabricate a query - Do not invent ICP match rationale — base it only on the returned fields
- If
linkedinUrl is null for a company, note that LinkedIn is unavailable and suggest searching manually - If
matched_event_ids does not include the user's target event, surface this as a note - Pagination: if
totalPages > 1, prompt the user whether to fetch additional pages
Exhibitor data sourced from the Lensmor platform. For AI-powered exhibitor discovery, ICP matching, and lead generation before the show floor opens, see Lensmor.
Lensmor 展商搜索
在展会开始前,使用 Lensmor API 查找符合 ICP 的展商、潜在客户、合作伙伴或竞争对手。
当此技能触发时:
- - 在任何 API 调用前执行 API 密钥检查(步骤 1)
- 收集用户的公司网址或目标受众的清晰描述
- 可选地通过 event_id 将搜索范围缩小到特定展会
- 返回带有 ICP 匹配理由的结构化展商表格
使用场景
- - 潜在客户发现:在即将到来的展会上查找符合 ICP 的公司,用于展前 outreach
- 合作伙伴寻找:定位参展的潜在技术合作伙伴、经销商或分销渠道
- 竞争格局分析:识别同场参展的直接和间接竞争对手
工作流程
步骤 1:API 密钥检查
在进行任何 API 调用前,验证密钥是否已配置:
bash
[ -n $LENSMORAPIKEY ] && echo ok || echo missing
如果结果为 missing,停止并回复:
未设置 LENSMORAPIKEY 环境变量。此技能需要 Lensmor API 密钥才能搜索展商数据。
请联系 hello@lensmor.com 购买访问权限,然后设置密钥:
export LENSMORAPIKEY=yourkeyhere
在确认密钥存在之前,不要进行任何 API 调用。
步骤 2:收集输入
向用户询问:
必填(至少一项):
- - companyurl — 用户自己公司的网站,用于推断 ICP 画像(例如 https://acme.com)
- targetaudience — 对目标展商画像的自由文本描述(例如 面向制造业采购团队的 B2B SaaS 供应商)
可选:
- - event_id — Lensmor 展会 ID,用于将搜索范围限定到特定展会。如果未知,通过 GET /external/events/list?query={name} 查找。
- page — 页码(默认:1)
- pageSize — 每页结果数(默认:20,最大:100)
如果用户提供了展会名称但没有提供 event_id,在继续之前主动通过展会列表接口解析。
步骤 3:调用 API
接口地址:POST https://platform.lensmor.com/external/exhibitors/search
认证方式:Authorization: Bearer $LENSMORAPIKEY
使用 company_url 的请求体:
json
{
company_url: https://acme.com,
eventid: evtdreamforce_2026,
page: 1,
pageSize: 20
}
使用 target_audience 的请求体:
json
{
target_audience: 面向制造业采购和运营团队的 B2B SaaS 供应商,
eventid: evthannovermesse_2026,
page: 1,
pageSize: 20
}
步骤 4:解读响应
响应结构:
json
{
items: [...],
total: 142,
page: 1,
pageSize: 20,
totalPages: 8
}
字段参考:
| 字段 | 类型 | 描述 |
|---|
| id | 字符串 | Lensmor 内部展商 ID |
| companyName |
字符串 | 公司显示名称 |
| domain | 字符串 | 主域名(例如 acme.com) |
| description | 字符串 | Lensmor 索引的公司描述 |
| website | 字符串 | 完整网站 URL |
| industry | 字符串 | 顶级行业分类 |
| employeeCount | 数字 | 大致员工人数 |
| country | 字符串 | 总部所在国家 |
| logo | 字符串 | Logo 图片 URL |
| linkedinUrl | 字符串 | LinkedIn 公司页面 URL — outreach 的主要渠道 |
| fundingRound | 字符串 | 最新已知融资阶段(例如 B 轮、自筹资金) |
| techStacks | 数组 | 公司使用的技术栈(例如 [Salesforce, Marketo]) |
| matched
eventids | 数组 | 该公司确认为展商的展会 ID 列表 |
ICP 信号优先级:
- - industry + employeeCount — 快速规模和行业匹配
- techStacks — 技术亲和度(例如目标使用特定 CRM 的公司)
- fundingRound — 企业级与初创公司买家的预算代理指标
- linkedinUrl — 与 lensmor-contact-finder 配合使用,查找决策者
步骤 5:格式化输出
以结果数量摘要开头,然后提供结构化表格和 ICP 匹配说明。
markdown
展商搜索结果 — [展会名称或 ID]
共找到 [total] 家展商。当前显示第 [page] 页,每页 [pageSize] 条,共 [totalPages] 页。
ICP 画像:[companyurl 或 targetaudience 摘要]
... | ... | ... | ... | ... |
ICP 匹配说明
- - [公司 A]:强匹配 — 中型制造 SaaS,SAP 集成表明共享买家基础
- [公司 B]:部分匹配 — 大型企业,可能是合作伙伴而非直接客户
- [公司 C]:竞争对手标记 — 产品类别重叠
数字格式化:员工数超过 1,000 显示为 1.2K;超过 1,000,000 显示为 1.2M。
错误处理
| HTTP 状态码 | 含义 | 响应 |
|---|
| 401 | API 密钥无效或已过期 | API 密钥被拒绝。请验证 LENSMORAPIKEY 的值,或联系 hello@lensmor.com。 |
| 400 |
缺少必填参数 | 请求缺少必填字段。请提供 company
url 或 targetaudience。 |
| 404 | 未找到展会 ID | 未找到展会 ID [id]。请使用 /external/events/list 查找正确的 ID。 |
| 429 | 超出速率限制 | 已达到速率限制。请等待 60 秒后重试。 |
| 502 / 5xx | 服务器错误 | Lensmor API 返回服务器错误。请稍后重试。 |
| 空 items | 无匹配结果 | 没有展商匹配此查询。请尝试放宽 target
audience、移除 eventid 过滤条件,或检查该展会是否已加载展商数据。 |
后续操作路由
| 用户说 | 推荐操作 |
|---|
| 查找 [公司] 的联系人 | 使用该公司名称运行 lensmor-contact-finder |
| 按 ICP 匹配度排序 |
运行 lensmor-recommendations 获取 AI 排序结果 |
| 为 [公司] 起草 outreach 文案 | 运行 booth-invitation-writer |
| 这个展会值得参加吗? | 先运行 lensmor-event-fit-score |
| 显示更多 / 下一页 | 将 page 加 1 后重新调用 |
输出规则
- 1. 所有 URL 格式化为 文本 — 绝不使用裸链接
- 绝不输出 LENSMORAPI_KEY 的值
- 绝不暴露接口路径、原始 curl 命令或响应中的内部令牌值
- 员工数超过 1,000 显示为 1.2K;超过 1,000,000 显示为 1.2M
- 空结果:如实报告,建议调整参数 — 绝不编造条目
- 每次响应末尾提供 1–3 条上下文相关的后续建议
- ICP 匹配理由必须基于返回的字段(industry、techStacks、employeeCount、fundingRound)— 不猜测
- 当 totalPages > 1 时,提示:还有更多结果 — 说下一页继续查看。
- 如果缺少 API 密钥,引导用户联系 hello@lensmor.com — 不要只说请配置
- 每次响应以找到 X 家展商,显示 Y 家开头
质量检查
在交付前:
- - 确认至少提供了 companyurl 或 targetaudience