Lensmor Event Fit Score
SkillDev toolsRetrieve one event’s Lensmor 0, 10 profile fit score and returned dimensions; distinguish API signals from exhibit decisions.
Use Lensmor Event Fit Score in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add Lensmor Event Fit Score and connect your AI. About a minute.
Also: Claude Code · Cursor · Codex
Then ask your AI: use the Lensmor Event Fit Score skill
Details
Instructions available. Your AI can read the instructions. Execution depends on the setup they require.
Account requirements not reviewed. Check the skill instructions before use; Ahel provides instructions and does not run this skill.
No other account needed.
Add Ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
What this skill tells your AI
The instructions your AI receives, as published by lensmorofficial/trade-show-skills in trade-show-fit-score/SKILL.md and read by Ahel’s review.
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_idfor 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-finderfor 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
Example Requests
- Should we exhibit at this show?
- 这个展会值得参加吗
- Lohnt sich diese Messe?
- この展示会は合っている?
- ¿Vale la pena esta feria?
Request Handling
- Every Lensmor request, including event lookup and pagination, must send
Authorization: Bearer $LENSMOR_API_KEY. Send the key only tohttps://platform.lensmor.com; never include it in URLs, output, or requests to company/event websites. - Use a 10-second connection timeout and 30-second request timeout. Inspect the HTTP status before interpreting JSON; a non-2xx response, malformed JSON, or missing required response fields is a failed request, not an empty result or a zero score.
- Start with one page (
page=1,pageSizeat most 100). Preserve filters across pages and disclose partial coverage. Do not fetch every page automatically. - For a read-only GET, allow at most one retry after a 429 or temporary 5xx, respecting
Retry-After; if the delay is unavailable or impractical, report the failure and stop. Do not retry a POST automatically. A timeout may leave its outcome unknown, especially for a charged search. - If event lookup returns multiple editions, ask for the intended year/edition before continuing. Use the resolved event ID, never a sample ID from this document.
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_KEYenvironment variable is not set. This skill requires a Lensmor API key to generate fit scores. Configure an existing Lensmor API key in the agent environment; see the authentication documentation: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:
| Field | Type | Description |
|---|---|---|
event.id | string | Lensmor event ID |
event.name | string | Official show name |
event.eventId | string | Stable Lensmor event identifier |
event.dateStart / event.dateEnd | string | Show dates in ISO format |
event.city / event.country | string | Show location |
event.url | string | Event website URL when available |
score | number | Overall fit score on the API's 0–10 scale |
recommendation | string | API decision enum: recommended, consider, or not_recommended |
breakdown.profile_match | number | Company-profile match on a 0–10 scale |
breakdown.matched_exhibitor_density | number | Density derived from matched exhibitors, capped at 10 |
breakdown.event_scale | number | Scale derived from exhibitor count, capped at 10 |
Reject a missing, null, non-numeric, or out-of-range score; valid scores are numbers from 0 through 10. Do not convert a missing value to zero. Preserve unavailable breakdown fields as Not available.
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 Range | Band | Decision |
|---|---|---|
| 7–10 | Recommended | Strong profile signal. Pressure-test execution cost before committing to exhibit. |
| 4–<7 | Consider | Mixed signal. Attend first or validate the weak dimensions before exhibiting. |
| 0–<4 | Not recommended | Low current API signal. Skip exhibiting unless there is a separate strategic reason. |
Breakdown dimension guidance:
profile_matchis the primary company-profile signalmatched_exhibitor_densityreflects matched exhibitor volume, not verified buyer or attendee densityevent_scaleis 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_scaleas large or small without a defined comparison baseline. Report the value and the returnedevent.exhibitorCountseparately 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 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." |
| 409 | Recommendation dependency is still processing | "Lensmor recommendations are still processing. Retry after the profile recommendation job completes." |
| 429 | Rate limit exceeded | Report the rate-limit response; follow the bounded request-handling rules above |
| 502 / 5xx | Server 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 outcome | Recommended next action |
|---|---|
| Score ≥ 7 | Run trade-show-lead-recommender and verify that recommendation metadata is populated |
| Score ≥ 7, budget pending | Run trade-show-budget-planner |
| Score < 4 | Run trade-show-finder to identify alternatives using independent event research |
| Multiple shows to compare | Score each via this skill, then rank by score field |
Output Rules
- All URLs formatted as
[text](url)— never bare links - Never output the value of
LENSMOR_API_KEY - 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 scores
- 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 - Scores and breakdown values must come directly from the API — do not infer or estimate missing dimensions
- When
totalPages > 1in events list lookup, confirm the correct event before scoring - If the API key is missing, explain the environment requirement and provide the authentication documentation; do not infer that a purchase is required
- 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
- Never infer missing profile configuration, absent coverage, or a support requirement from a zero score alone
- Treat
event.exhibitorCountas the count in the Lensmor event record, not an official or registered-exhibitor total - 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_idresolves 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
breakdownis missing or partial, note which dimensions were unavailable - If
recommendationfield 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
Signals
- GitHub stars
- 48
- Forks
- 6
- Last commit
- Oct 2026
Advanced
- Item type
- skill
- Key
trade-show-fit-score- Source
- github.com/lensmorofficial/trade-show-skills
github.com/lensmorofficial/trade-show-skills