Coding

Trade Show Lead Recommender

Try it

Get ranked exhibitor recommendations for a trade show, clearly separated from unranked event listing fallbacks.

What it does

Resolves a trade show by name to a Lensmor event ID, then queries the exhibitor recommendations endpoint with filters such as location, category, industry, and company size. The skill distinguishes between responses with populated recommendation metadata (rank, score, tier, reason) and unranked event-exhibitor fallback records, and labels each mode accordingly. Results are rendered as markdown tables, with raw ranks and scores preserved and null fields shown as "Not available".

When to use it

  • Pre-show exhibitor shortlisting for a specific event
  • Filtering exhibitors by country, industry, or company size
  • Distinguishing AI-ranked matches from unranked event listings
  • Routing ranked results to a downstream contact-finding workflow

The skill document

Lensmor Exhibitor Recommendations

Retrieve event-scoped exhibitor recommendations from Lensmor. The endpoint may return either populated recommendation metadata or an unranked event-exhibitor fallback. Never call fallback rows AI-ranked.

Workflow

Step 1: API Key Check

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

If missing, stop and direct the user to obtain a Lensmor API key. Never print its value.

Step 2: Resolve the Event

If only a show name is available, call:

GET https://platform.lensmor.com/external/events/list?keyword={show+name}

Authenticate the event lookup as well as the recommendation request. Every Lensmor API call in this workflow must send Authorization: Bearer $LENSMOR_API_KEY; never call the event lookup without the header.

curl -sS "https://platform.lensmor.com/external/events/list?keyword=MEDICA%202026" \
  -H "Authorization: Bearer $LENSMOR_API_KEY"

Use the matching items[].id or items[].eventId. Confirm the year and edition before continuing. Do not use query= because it is not a supported event filter.

Step 3: Select Filters

The recommendations endpoint accepts:

ParameterTypeNotes
event_idstringRequired
locationstring or repeated stringCountry or region filter
searchQuerystringCompany-name or description search
exhibitorNamestring or repeated stringExact account filter
categorystring or repeated stringCategory filter
industrystring or repeated stringIndustry filter
employeesMin, employeesMaxintegerCompany-size range
page, pageSizeintegerPagination; max page size 100

Use repeated parameter names for arrays, for example:

event_id=12740&category=Medical%20Devices&category=Drug%20Delivery&page=1&pageSize=20

Step 4: Call the API

Endpoint: GET https://platform.lensmor.com/external/profile-matching/recommendations/exhibitors

Authentication: Authorization: Bearer $LENSMOR_API_KEY

Step 5: Classify the Response Mode

The response contains items, pagination fields, and may contain:

  • recommendationProcessing
  • show_refresh_hint

Item recommendation fields include:

  • isRecommended
  • recommendationRank
  • matchStatus
  • matchScore
  • matchTier
  • reason

Apply this gate before writing the result:

  1. Processing — if recommendationProcessing is true, say recommendations are still processing. Do not rank the rows.
  2. Ranked recommendations — use this label only when returned items contain meaningful recommendation evidence such as isRecommended: true, a non-null recommendationRank, matchScore, matchTier, or reason.
  3. Unranked fallback — if recommendation fields are null/false across the returned rows, label them event exhibitor records, not AI recommendations. Preserve the API order but do not interpret it as ranking.
  4. If show_refresh_hint is true, report only: The API returned show_refresh_hint=true; this flag does not identify a cause or required action. Do not mention profile updates or prescribe changes unless the API returns that instruction separately.

Useful company fields include companyName, description, website, country, industry, categories, employeeCount, fundingRound, and techStacks.

Step 6: Format the Output

For populated recommendations:

## Exhibitor Recommendations — [Show]

Found [total] records; [N] returned rows contain recommendation evidence.

| Rank | Company | Match | Tier | Why |
|---:|---|---:|---|---|
| [recommendationRank] | [Company](website) | [matchScore] | [matchTier] | [reason] |

For fallback results:

## Event Exhibitors — Recommendation Data Not Available

The API returned [total] event exhibitors, but the current page does not contain populated recommendation scores, ranks, or reasons. The order below is not an ICP ranking.

| Company | Industry | Categories | Employees | Country |
|---|---|---|---:|---|
| [Company](website) | [industry] | [categories] | [employeeCount] | [country] |

[Show refresh hint, if returned]

Error Handling

ConditionResponse behavior
401API key invalid or expired
404Event ID was not found; resolve the current edition again
429Wait for the rate-limit window and retry
total: 0Loosen filters one at a time
Recommendation fields emptyUse the unranked fallback format

Follow-up Routing

  • Populated ranked result → trade-show-contact-finder for the top accounts
  • Fallback result → use trade-show-exhibitor-search for factual filtering; do not prescribe profile changes from fallback state alone
  • Need outreach → booth-invitation-writer
  • Need an event-level go/no-go decision → trade-show-fit-score

Output Rules

  1. Never output LENSMOR_API_KEY or raw authorization headers.
  2. Do not call results AI-ranked unless recommendation metadata is populated.
  3. Do not invent a match reason from category, funding, or tech-stack fields.
  4. If you add your own operational interpretation, label it separately from Lensmor's returned recommendation.
  5. Preserve returned rank and score values exactly; do not fill null fields.
  6. Treat fundingRound and company metadata as potentially stale profile signals.
  7. If there are more pages, offer to continue and retain the active filters.
  8. Format public URLs as Markdown links.
  9. Render null company fields as "Not available" in user-facing tables; never fill them from inference.
  10. Never say recommendation data can be unlocked or enabled by profile changes based only on show_refresh_hint.
  11. When show_refresh_hint is the only signal, do not mention profile updates at all; report the flag and its uncertainty boundary only.
  12. When routing to trade-show-contact-finder, say find relevant contacts; do not promise decision-makers or verified authority.

Recommendations and exhibitor records are sourced from the Lensmor platform. For pre-show prospecting and contact discovery, see Lensmor.

Related skills

Find exhibitors at a specific trade show or discover exhibitor companies across the Lensmor dataset. "Who is exhibiting at this show?" / "参展商搜索" / "Ausstelle...

16 installs

Find decision-makers and relevant contacts at exhibitor companies using the Lensmor API. "Who should I contact at this company?" / "找联系人" / "Entscheidungsträ...

17 installs

Score and compare trade shows to decide where to exhibit, attend, or skip this year. "Which trade shows should we go to?" / "哪些展会值得参加" / "Welche Messen lohne...

20 installs1 stars

Rank upcoming trade shows by how many of your competitors appear in Lensmor exhibitor records.

16 installs

Score a trade show against your company profile for an AI-backed exhibit vs. skip decision. "Should we exhibit at this show?" / "这个展会值得参加吗" / "Lohnt sich die...

15 installs

Turn raw trade-show competitor observations into tagged, source-grounded intelligence notes for your team.

20 installs1 stars