Search Lensmor contact records by company and optional role or person name, then prioritize the returned contacts without inventing titles, seniority, or contact details.
The search response includes an email field, but locked contacts return email: null with contactUnlockStatus: "locked". Already unlocked contacts may return an email. Searching does not unlock email or phone data.
Do not call an unlock endpoint from this skill. Email and phone unlocking are separate paid workflows that require explicit user approval.
bash
[ -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.
Required:
company_name — full or partial company name, 1–200 charactersOptional:
role — job-title or function filterperson_name — narrow the company-scoped search to a named personpage, pageSize — pagination; max page size 100Use a broad role term such as marketing, operations, or procurement when a precise title returns no result.
Endpoint: GET https://platform.lensmor.com/external/contacts/search
Example query:
text
company_name=Siemens%20Healthineers&role=marketing&page=1&pageSize=20
The paginated response includes items, total, page, pageSize, totalPages, and hasMore.
Contact fields include:
FieldMeaningfullName, title, department, seniorityLevelReturned professional identity fieldscompanyNameCompany attached to the record; verify it matches the querylinkedinUrlPublic LinkedIn profile when availablesourceTypeRecord provenance labelemail, contactUnlockStatusEmail value and lock statephone, phoneUnlockStatusPhone value and unlock-processing statelinkedinActivity, linkedinActivityStatusOptional activity evidenceeventCountOptional event-association count
Seniority values are not guaranteed to use a fixed title-case vocabulary. Preserve returned values such as director, manager, senior, or owner. Do not map them to Executive/Director/Manager tiers without evidence.
Prioritize using this evidence order:
This priority is an operational sort created by the skill, not a Lensmor-provided rank. Say so when reordering the API results.
It measures outreach relevance, not verified decision authority. Never call someone a decision-maker, budget holder, champion, or primary authority based only on title, department, or seniority.
Priority notes must use factual wording such as Exact company match; marketing department and manager title matched the requested filter. Do not say buyer scope, decision involvement, or equivalent authority language.
markdown
## Contacts at [Company]
Found [total] contacts. Showing [item count] on page [page] of [totalPages].
Filters: [role/person_name or none]
| Priority | Name | Title | Department | Seniority | Contact state | LinkedIn |
|---:|---|---|---|---|---|---|
| 1 | [fullName] | [title] | [department] | [seniorityLevel] | Email [locked/available] | [LinkedIn](url) |
### Priority Notes
- **[Contact]**: [company match + role/title evidence]
Email search status: [locked contacts remain null / already unlocked email available]. No unlock was performed.
ConditionResponse behavior400company_name is missing or invalid401API key invalid or expired429Wait for the rate-limit window and retrytotal: 0Broaden the role filter or verify the company name
booth-invitation-writertrade-show-linkedin-templatestrade-show-exhibitor-searchtrade-show-lead-recommenderLENSMOR_API_KEY or raw authorization headers.Contact data is sourced from the Lensmor platform. For exhibitor discovery and pre-show outreach, see Lensmor.