Install
openclaw skills install @weilun88313/trade-show-fit-scoreScore 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
openclaw skills install @weilun88313/trade-show-fit-scoreScore 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:
event_id for the named show if not already providedtrade-show-finder for manual scoring or when Lensmor API access is unavailableBefore 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. Contact hello@lensmor.com 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.
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.
Endpoint: POST https://platform.lensmor.com/external/events/fit-score
Authentication: Authorization: Bearer $LENSMOR_API_KEY
Request body:
{
"event_id": "12740"
}
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 |
## 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.
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_match is the primary company-profile signalmatched_exhibitor_density reflects matched exhibitor volume, not verified buyer or attendee densityevent_scale is derived from exhibitor count and does not measure geographic fit, content fit, or expected ROIevent_scale as large or small without a defined comparison baseline. Report the value and the returned event.exhibitorCount separately when helpful.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.| 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 | "Rate limit reached. Wait 60 seconds and retry." |
| 502 / 5xx | Server error | "The Lensmor API returned a server error. Try again in a moment." |
This skill calls the Lensmor API for a data-driven score on a single named event. Use trade-show-finder for:
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.
| 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 |
[text](url) — never bare linksLENSMOR_API_KEYtrade-show-findertotalPages > 1 in events list lookup, confirm the correct event before scoringevent.exhibitorCount as the count in the Lensmor event record, not an official or registered-exhibitor totalBefore delivering:
event_id resolves to the correct show, year, and edition — do not use an ID from a prior yearbreakdown is missing or partial, note which dimensions were unavailablerecommendation field is empty, present the numeric score alone and apply the interpretation guideFit 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.