Systems Lab

Agent skill

trade-show-fit-score

Score a trade show against your company profile for an AI-backed exhibit vs.

slowingNeeds a keyActs undeclared1,500 words

Filed under ABM and paid.

From LensmorOfficial/trade-show-skills · 15 skills · 48 · pushed 2026-07-18

What it does when it runs

Score a trade show against your company profile for an AI-backed exhibit vs. skip decision. \"Should we exhibit at this show?\" / \"这个展会值得参加吗\" / \"Lohnt sich diese Messe?\" / \"この展示会は合っている?\" / \"¿Vale la pena esta feria?\". score event, fit score, should we exhibit, worth attending, event ROI, go or no-go, 展会评分, 值不值得参加, 展会匹配度, 要不要参展 Messebewertung Messeignung 展示会評価 puntuación de feria

Read from the skill and the 2 files bundled beside it. A skill’s own description is written to be selected by an agent, so it describes the job and not the dependencies.

Keys and connectors you must supply
  • LENSMOR_API_KEY
Hosts it reaches
  • api.lensmor.com
  • platform.lensmor.com
  • www.hannovermesse.de
  • www.lensmor.com
  • www.medica-tradefair.com
Tool permissions it declares
No allowed-tools in the frontmatter. It does act, so it runs under whatever permissions your session already grants.
Actions present in the files
shell

Ask about trade-show-fit-score

Opens your assistant with this page's verified links already in the prompt.

Is this safe to install?ClaudeChatGPT
Adapt it to my stackClaudeChatGPT
What else do I need for it to workClaudeChatGPT
Rather ask a human? Talk to Cheetah
git clone --depth 1 --filter=blob:none --sparse https://github.com/LensmorOfficial/trade-show-skills.git /tmp/trade-show-skills
git -C /tmp/trade-show-skills sparse-checkout set "trade-show-fit-score"
mkdir -p ~/.claude/skills/trade-show-fit-score
cp -R "/tmp/trade-show-skills/trade-show-fit-score/." ~/.claude/skills/trade-show-fit-score/

Picked up without a restart. A project skill of the same name is shadowed by your personal one. For one repository only, swap ~/.claude/skills for .claude/skills. Claude Code docs ↗

The folder is the same in every client that implements the format — 46 of them — so if yours is not above, only the destination changes.

Before you install: this skill will not complete its job on a bare agent. It needs LENSMOR_API_KEY, which you have to obtain separately.

Reproduced in full from LensmorOfficial/trade-show-skills/blob/e47642be2d94b5ccba2118b623d60d40424f5e8b/trade-show-fit-score/SKILL.md, which is licensed MIT (repository). 1,500 words, 15 headings.

Lensmor Event Fit Score

Score a specific trade show against your company's profile using the Lensmor API to get a data-backed recommendation on whether to exhibit, attend, or skip.

When this skill triggers:

  • Run the API key check (Step 1) before any API call
  • Resolve the event_id for the named show if not already provided
  • Call the fit-score endpoint and return a structured score card with decision band
  • Pair with trade-show-finder for manual scoring or when Lensmor API access is unavailable

Use Cases

  • Exhibit vs. skip decision: Get a quantified answer before committing budget
  • Annual planning triage: Run multiple shows through fit-score to rank investment priorities
  • Internal justification: Produce a data-backed score card to share with leadership

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 LENSMOR_API_KEY environment variable is not set. This skill requires a Lensmor API key to generate fit scores. Contact [email protected] 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.

Step 2: Resolve the Event ID

The fit-score 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?keyword={show+name}

Authentication: Authorization: Bearer $LENSMOR_API_KEY

The response is paginated under items. Pick the id or eventId that matches the show, year, and edition the user intends. Do not use query=: the current API ignores that parameter and returns an unfiltered event list.

If the user already has the event_id, skip directly to Step 3.

Step 3: Call the Fit-Score Endpoint

Endpoint: POST https://platform.lensmor.com/external/events/fit-score

Authentication: Authorization: Bearer $LENSMOR_API_KEY

Request body:

{
  "event_id": "12740"
}

Step 4: Interpret the Response

Response structure:

{
  "event": {
    "id": "12740",
    "eventId": "12740",
    "name": "MEDICA 2026",
    "dateStart": "2026-11-16",
    "dateEnd": "2026-11-19",
    "city": "Düsseldorf",
    "country": "Germany",
    "url": "https://www.medica-tradefair.com"
  },
  "score": 7.8,
  "recommendation": "recommended",
  "breakdown": {
    "profile_match": 7.8,
    "matched_exhibitor_density": 4.2,
    "event_scale": 1.4
  }
}

Response field reference:

FieldTypeDescription
event.idstringLensmor event ID
event.namestringOfficial show name
event.eventIdstringStable Lensmor event identifier
event.dateStart / event.dateEndstringShow dates in ISO format
event.city / event.countrystringShow location
event.urlstringEvent website URL when available
scorenumberOverall fit score on the API's 0–10 scale
recommendationstringAPI decision enum: recommended, consider, or not_recommended
breakdown.profile_matchnumberCompany-profile match on a 0–10 scale
breakdown.matched_exhibitor_densitynumberDensity derived from matched exhibitors, capped at 10
breakdown.event_scalenumberScale derived from exhibitor count, capped at 10

Step 5: Format the Output

## Event Fit Score — [Show Name]

[Show website link] | [dateStart]–[dateEnd] | [city], [country]

| Dimension | Score |
|-----------|-------|
| **Overall Fit** | **[score] / 10** |
| Profile Match | [breakdown.profile_match] |
| Matched Exhibitor Density | [breakdown.matched_exhibitor_density] |
| Event Scale | [breakdown.event_scale] |

**Decision**: [decision band — see table below]

**API Recommendation**: [exact `recommendation` enum]

**Interpretation**: [brief explanation grounded only in the returned score and three breakdown fields]

Exact-zero hard gate: If score == 0, use only this interpretation: The current API result is 0/10; this response does not identify the cause. The only permitted follow-up is independent event research with trade-show-finder. Do not mention profile validation, missing matches, database coverage, support, or possible causes anywhere in the response.

Score Interpretation Guide

Apply this interpretation to every fit-score result:

Score RangeBandDecision
7–10RecommendedStrong profile signal. Pressure-test execution cost before committing to exhibit.
4–<7ConsiderMixed signal. Attend first or validate the weak dimensions before exhibiting.
0–<4Not recommendedLow current API signal. Skip exhibiting unless there is a separate strategic reason.

Breakdown dimension guidance:

  • profile_match is the primary company-profile signal
  • matched_exhibitor_density reflects matched exhibitor volume, not verified buyer or attendee density
  • event_scale is derived from exhibitor count and does not measure geographic fit, content fit, or expected ROI
  • Do not invent dimensions that are not returned by the API
  • A zero score does not prove that the user's Lensmor profile is missing or incomplete. It can also mean that no recommendation match was returned. Do not diagnose the cause unless the API returns an explicit error or status.
  • For an exact zero, the interpretation must be limited to: "The current API result is 0/10; this response does not identify the cause." Do not add possible causes, profile-review advice, coverage speculation, or a support-contact recommendation.
  • Do not label event_scale as large or small without a defined comparison baseline. Report the value and the returned event.exhibitorCount separately when helpful.
  • If explaining event_scale, use: "The API returned event scale [X]/10 and event exhibitor count [Y]; this response does not define a qualitative size benchmark." Never call the count registered, official, total-market, minimal, or large.

Error Handling

HTTP StatusMeaningResponse
401API key invalid or expired"The API key was rejected. Verify LENSMOR_API_KEY or contact [email protected]."
404Event ID not found"Event ID [id] was not found. Use the events list endpoint to look up the correct ID."
409Recommendation dependency is still processing"Lensmor recommendations are still processing. Retry after the profile recommendation job completes."
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."

Relationship to trade-show-finder

This skill calls the Lensmor API for a data-driven score on a single named event. Use trade-show-finder for:

  • Manual scoring and comparison across multiple shows when you do not have API access
  • Annual planning and shortlist discovery driven by web research
  • Scoring shows not yet in the Lensmor database

The two skills are complementary: trade-show-finder helps you build the shortlist; trade-show-fit-score gives you a data-backed score on a specific candidate.

Follow-up Routing

Score outcomeRecommended next action
Score ≥ 7Run trade-show-lead-recommender and verify that recommendation metadata is populated
Score ≥ 7, budget pendingRun trade-show-budget-planner
Score < 4Run trade-show-finder to identify alternatives using independent event research
Multiple shows to compareScore each via this skill, then rank by score field

Output Rules

  1. All URLs formatted as [text](url) — never bare links
  2. Never output the value of LENSMOR_API_KEY
  3. Never expose endpoint paths, raw curl commands, or internal token values in the response
  4. Employee counts above 1,000 shown as "1.2K"; above 1,000,000 as "1.2M"
  5. Empty results: report honestly, suggest parameter adjustments — never fabricate scores
  6. End every response with 1–3 contextual follow-up suggestions; for an exact-zero result, the only permitted suggestion is independent event research with trade-show-finder
  7. Scores and breakdown values must come directly from the API — do not infer or estimate missing dimensions
  8. When totalPages > 1 in events list lookup, confirm the correct event before scoring
  9. If API key is missing, direct user to [email protected] — do not just say "please configure"
  10. Treat the score as 0–10 and preserve the exact recommendation enum; never convert it to 0–100 unless the user explicitly requests a labeled conversion
  11. Never infer missing profile configuration, absent coverage, or a support requirement from a zero score alone
  12. Treat event.exhibitorCount as the count in the Lensmor event record, not an official or registered-exhibitor total
  13. If the exact score is zero, do not suggest profile changes, coverage checks, or support escalation unless the API returns a specific error or status that supports that advice

Quality Checks

Before delivering:

  • Confirm event_id resolves to the correct show, year, and edition — do not use an ID from a prior year
  • Do not infer or fabricate dimension scores; use only what the API returns
  • If breakdown is missing or partial, note which dimensions were unavailable
  • If recommendation field is empty, present the numeric score alone and apply the interpretation guide
  • If the result is zero, state only that the current API result is zero and that the cause is not identified by this response

Fit scores are generated by the Lensmor AI platform based on your company profile and Lensmor's trade show database. For event discovery, exhibitor intelligence, and pre-show lead generation, see Lensmor.

Files bundled with it

These load only when the skill asks for them, so they cost nothing until it runs.

Other skills for the same job

Different authors, same problem. Matched on the words in the skill name, across every library in the catalogue except this one.

Need help setting it up?

This page tells you what trade-show-fit-score does and what it needs. Cheetah builds the agent setup it runs inside: data, CRM, sequencing and the guardrails.

Book a call →

The directory stays free. There is nothing gated behind this.