Lensmor 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
event_id for the target show - 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
lensmor-contact-finder for decision-maker lookup
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:
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 fetch exhibitor recommendations.
Contact hello@lensmor.com to purchase access, then set the key:
INLINECODE4
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: INLINECODE6
Authentication: INLINECODE7
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 |
|---|
| INLINECODE9 | string | Required. Lensmor event ID | INLINECODE10 |
| INLINECODE11 |
string | Filter by country or region |
United States,
Germany,
APAC |
|
searchQuery | string | Free-text search across company name and description |
procurement automation |
|
exhibitorName[] | array | Exact company name match (account-based lists) |
["Acme Corp", "OperaOps"] |
|
category[] | array | Product/industry category filter |
["Manufacturing SaaS", "Procurement Tech"] |
|
employeesMin | number | Minimum employee count |
100 |
|
employeesMax | number | Maximum employee count |
1000 |
|
page | number | Page number (default: 1) |
1 |
|
pageSize | number | Results per page (default: 20, max: 100) |
50 |
Filter selection guidance:
- -
employeesMin / employeesMax: Most effective ICP filter for B2B — "mid-market" (100–1,000), "enterprise" (1,000+), "SMB" (< 100) - INLINECODE31 : Use when the user's ICP is vertical-specific; avoids surfacing adjacent-but-irrelevant companies
- INLINECODE32 : Use when regional focus is a hard constraint (e.g. EMEA-only sales territory)
- INLINECODE33 : Use for keyword-based discovery when category is unclear or broad
- INLINECODE34 : Use for account-based mode when the user has a specific hit list to validate against the show floor
Step 4: Call the API
Endpoint: INLINECODE35
Authentication: INLINECODE36
Query parameter combinations:
| Use case | Parameters |
|---|
| Basic (event only) | INLINECODE37 |
| Mid-market + category |
event_id=evt_dreamforce_2026&employeesMin=100&employeesMax=1000&category[]=Procurement+Tech |
| Location + keyword |
event_id=evt_hannovermesse_2026&location=Germany&searchQuery=industrial+automation |
| Account-based |
event_id=evt_dreamforce_2026&exhibitorName[]=OperaOps&exhibitorName[]=Spendly |
Step 5: Interpret the Response
Response envelope:
CODEBLOCK1
Item field reference:
| Field | Type | Description |
|---|
| INLINECODE41 | string | Lensmor internal exhibitor ID |
| INLINECODE42 |
string | Company display name |
|
description | string | Company description |
|
logo | string | Logo image URL |
|
website | string | Company website URL |
|
country | string | HQ country |
|
industry | string | Top-level industry classification |
|
categories | array | Product/service categories (more granular than
industry) |
|
employeeCount | number | Approximate headcount |
|
fundingRound | string | Latest known funding stage |
|
techStacks | array | Technologies the company uses |
ICP evaluation using response fields:
- -
categories — most granular signal for product fit; compare against your product's adjacent categories - INLINECODE54 — technology affinity; look for overlap with your integrations or target buyer's existing stack
- INLINECODE55 — size filter; cross-check against the user's ICP definition
- INLINECODE56 — budget proxy:
Series B+ = active growth budget; Bootstrapped = cost-sensitive buyer
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.
CODEBLOCK2
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 LENSMOR_API_KEY or contact hello@lensmor.com." |
| 404 |
Event ID not found | "Event ID
[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." |
|
total: 0 | No matches | "No exhibitors matched these filters. Try loosening them: remove
category, widen the employee range, or drop the
location filter." |
Follow-up Routing
| User says | Recommended action |
|---|
| "find contacts at [company]" | Run INLINECODE64 |
| "is this show worth it first?" |
Run
lensmor-event-fit-score before recommendations |
| "search by our company profile" | Run
lensmor-exhibitor-search with
company_url |
| "show me more" / "next page" | Re-call with
page incremented by 1 |
| "draft outreach for these companies" | Run
booth-invitation-writer |
Complete Pre-Show Workflow
- 1.
lensmor-event-fit-score (optional) — confirm the event is worth investing in lensmor-recommendations (this skill) — AI-ranked ICP exhibitors at a specific event- INLINECODE72 — decision-makers at each matched company
- INLINECODE73 — personalized LinkedIn messages per seniority tier
Relationship to lensmor-exhibitor-search
| Skill | Input | Best For |
|---|
| INLINECODE74 | INLINECODE75 + optional filters | AI-driven ICP ranking for a specific event |
| INLINECODE76 |
company_url or
target_audience | Profile-based search across all events or a specific event |
Output Rules
- 1. All URLs formatted as
[text](url) — never bare links - Never output the value of INLINECODE80
- 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, 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
event_id resolves to the correct show and edition - Do not fabricate ICP match rationale — base all reasoning on returned fields
- If
total: 0, suggest loosening filters before reporting no results - Results are AI-ranked; present in returned order unless user asks for a re-sort
- INLINECODE88 may be stale — treat it as a proxy, not a current verified fact
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.
Lensmor 推荐
获取与您特定展会的理想客户画像(ICP)匹配的AI排名参展商——按公司规模、地点、类别和技术栈进行筛选——然后转交至联系人查找和外联环节。
当此技能触发时:
- - 在任何API调用前先执行API密钥检查(步骤1)
- 确认目标展会的event_id
- 根据用户的ICP(员工规模、地点、类别)应用相关筛选条件
- 返回一份排名优先的匹配参展商列表,并附上ICP匹配理由
- 转交至lensmor-contact-finder进行决策者查找
使用场景
- - AI驱动的ICP匹配:在大型展会的数百家公司中寻找最合适的参展商
- 客户优先级排序:将长长的参展商列表缩减至展前值得外联的前20家客户
- 特定类别定向:在确定外联范围前,将范围缩小至特定产品类别的供应商
工作流程
步骤1:API密钥检查
在执行任何API调用前,验证密钥是否已配置:
bash
[ -n $LENSMORAPIKEY ] && echo ok || echo missing
如果结果为missing,则停止并回复:
未设置LENSMORAPIKEY环境变量。此技能需要Lensmor API密钥才能获取参展商推荐。
请联系hello@lensmor.com购买访问权限,然后设置密钥:
export LENSMORAPIKEY=yourkeyhere
在确认密钥存在之前,不得进行任何API调用。
步骤2:确认活动ID
推荐端点需要一个Lensmor event_id。如果用户只有展会名称,请先进行查询:
端点:GET https://platform.lensmor.com/external/events/list?query={展会名称}
认证:Authorization: Bearer $LENSMORAPIKEY
使用响应中匹配活动的id。在继续之前确认正确的展会、年份和届次。
步骤3:设置筛选参数
讨论用户的ICP以确定应用哪些筛选条件。仅使用能增加精确度但不过度缩小结果范围的筛选条件。
可用筛选参数:
| 参数 | 类型 | 描述 | 示例 |
|---|
| eventid | 字符串 | 必填。 Lensmor活动ID | evtdreamforce_2026 |
| location |
字符串 | 按国家或地区筛选 | United States, Germany, APAC |
| searchQuery | 字符串 | 对公司名称和描述进行自由文本搜索 | procurement automation |
| exhibitorName[] | 数组 | 精确公司名称匹配(基于客户列表) | [Acme Corp, OperaOps] |
| category[] | 数组 | 产品/行业类别筛选 | [Manufacturing SaaS, Procurement Tech] |
| employeesMin | 数字 | 最小员工数 | 100 |
| employeesMax | 数字 | 最大员工数 | 1000 |
| page | 数字 | 页码(默认:1) | 1 |
| pageSize | 数字 | 每页结果数(默认:20,最大:100) | 50 |
筛选条件选择指南:
- - employeesMin / employeesMax:B2B最有效的ICP筛选条件——中型市场(100–1,000)、企业级(1,000+)、中小企业(< 100)
- category[]:当用户的ICP针对特定垂直领域时使用;避免出现相关但不相关的公司
- location:当区域聚焦是硬性约束时使用(例如仅EMEA销售区域)
- searchQuery:当类别不明确或过于宽泛时,用于基于关键词的发现
- exhibitorName[]:当用户有特定的目标列表需要在展会中验证时,用于基于客户列表的模式
步骤4:调用API
端点:GET https://platform.lensmor.com/external/profile-matching/recommendations/exhibitors
认证:Authorization: Bearer $LENSMORAPIKEY
查询参数组合:
| 使用场景 | 参数 |
|---|
| 基础(仅活动) | eventid=evtdreamforce2026&page=1&pageSize=20 |
| 中型市场 + 类别 |
eventid=evt
dreamforce2026&employeesMin=100&employeesMax=1000&category[]=Procurement+Tech |
| 地点 + 关键词 | event
id=evthannovermesse_2026&location=Germany&searchQuery=industrial+automation |
| 基于客户列表 | event
id=evtdreamforce_2026&exhibitorName[]=OperaOps&exhibitorName[]=Spendly |
步骤5:解读响应
响应结构:
json
{
items: [...],
total: 84,
page: 1,
pageSize: 20,
totalPages: 5
}
项目字段参考:
| 字段 | 类型 | 描述 |
|---|
| id | 字符串 | Lensmor内部参展商ID |
| companyName |
字符串 | 公司显示名称 |
| description | 字符串 | 公司描述 |
| logo | 字符串 | Logo图片URL |
| website | 字符串 | 公司网站URL |
| country | 字符串 | 总部所在国家 |
| industry | 字符串 | 顶级行业分类 |
| categories | 数组 | 产品/服务类别(比industry更精细) |
| employeeCount | 数字 | 大致员工数 |
| fundingRound | 字符串 | 最新已知融资阶段 |
| techStacks | 数组 | 公司使用的技术栈 |
使用响应字段进行ICP评估:
- - categories——产品匹配最精细的信号;与您产品的相邻类别进行比较
- techStacks——技术亲和力;寻找与您的集成或目标买家现有技术栈的重叠
- employeeCount——规模筛选;与用户的ICP定义进行交叉核对
- fundingRound——预算代理:Series B+ = 活跃增长预算;Bootstrapped = 成本敏感型买家
步骤6:格式化输出
以结果计数摘要开头,然后提供排名表格和ICP匹配理由。结果为AI排名——按返回顺序呈现。
markdown
AI参展商推荐 — [展会名称]
找到[total]家匹配参展商。显示第[page]页,共[totalPages]页,每页[pageSize]条。
活动:[event_id] | 应用筛选条件:[列出活跃筛选条件]
| 排名 | 公司 | 行业 | 员工数 | 国家 | 匹配理由 |
|---|
| 1 | OperaOps | 制造业SaaS | 320 | 美国 | 采购技术 + SAP技术栈,B轮预算成熟度 |
| 2 |
Spendly | 金融科技 | 95 | 英国 | 支出分析相邻领域,联合销售机会 |
| 3 |
VendorVault | 治理、风险与合规 | 210 | 美国 | 供应商风险/采购相邻领域,销售周期较长 |
ICP匹配理由
- - OperaOps(排名1):强匹配——中型市场制造业SaaS,技术栈含SAP和Coupa,B轮预算成熟度;直接潜在客户
- Spendly(排名2):良好匹配——支出分析与采购自动化相邻;团队规模较小表明初创公司联合销售或合作机会
- VendorVault(排名3):部分匹配——通过供应商风险实现采购相邻;210名员工表明销售周期较长
建议下一步:对排名靠前的公司运行lensmor-contact-finder以查找决策者。
数字格式:员工数超过1,000显示为1.2K;超过1,000,000显示为1.2M。
错误处理
| HTTP状态码 | 含义 | 响应 |
|---|
| 401 | API密钥无效或已过期 | API密钥被拒绝。请验证LENSMORAPIKEY或联系hello@lensmor.com。 |
| 404 |
未找到活动ID | 未找到活动ID [id]。请使用活动列表端点查找正确的ID。 |
| 429 | 超出速率限制 | 已达到速率限制。请等待60秒后重试。 |
| 502 / 5xx | 服务器错误 | Lensmor API返回服务器错误。请稍后重试。