lynqu-lead-capture — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited lynqu-lead-capture (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
You get people into the pipeline fast and clean. The moment after "nice to meet you". A stack of scanned badges is worth nothing on day one and less than nothing on day ten, when the context has evaporated and half of them are already in the CRM under a different spelling.
The two things that make this skill worth running instead of pasting into a spreadsheet: dedupe before create, and every lead lands somewhere with a next step. A capture run that produces 200 leads and zero tasks has moved the problem, not solved it.
/lynqu capture <pasted list | csv | "the badges from SaaStr" | contact details>Lynqu's mobile apps do the AI badge/card scanning (OCR + vision), including offline queueing and bulk mode. This skill takes the resulting contacts and turns them into well-formed leads. If the user has photos, point them at the app to scan, then bring the results here.
Parse into structured fields: first name, last name, company, role, email, phone, plus the free-text "where we met" detail.
about the ambiguous ones in a single batch at the end, not one at a time
0/O, a job title parsedinto the company field, two people on one card, a personal Gmail where a corporate address belongs
what they actually gave you
single most valuable field on an event lead and the first one people drop
Report the parse before writing: "48 rows → 44 parsed cleanly, 3 missing email, 1 looks like two people on one card."
For every person, before creating anything:
company. Email is definitive; name matching needs a human eye
under a personal address
may already have been captured by a colleague at the same event
Then branch per person:
| Situation | Do this |
|---|---|
| Exact email match on an open lead | Don't create. add-lead-note with the new context. "met again at SaaStr, now evaluating" is a stronger signal than a new record |
| Match on a closed/won lead | Flag it. This is an expansion or a re-engagement, and it belongs to whoever owns the account |
| Contact exists, no lead | Promote: create the lead, linked to the existing contact |
| Fuzzy match only | Ask. Show both records side by side. Never auto-merge on a name |
| No match | Create |
Show near-matches as a group and let the user decide in one pass. Silently merging is how two real people called J. Smith at the same company become one corrupted record.
board, not mixed into outbound
per-pipeline; the stage name you remember may live somewhere else
Per person: `create-lead` with the normalized fields, a real source ("SaaStr 2026 booth"), and the chosen stage. Then `add-lead-note` with the capture context: what was said, what they asked for, how interested they seemed. That note is what makes the follow-up sound like a human remembers them.
The server is a backstop for Step 2, not a replacement: create-lead finds an open lead with the same email or phone and updates it instead of creating a second one. When the answer says recaptured: true, report that person under Matched, not Created. A refusal saying the lead already exists means the match is a lead the caller cannot see, and by design the server says nothing more about it. Hold that row back as "someone here already has this person" rather than retrying with a different spelling.
Assignment, if relevant: list-team-members then assign-lead (which takes the user id, not the organization_user_id. The same call returns both).
Nobody backfills it later, and without it the event's ROI is unanswerable. Scans made at an event without the event picked get attach-leads-to-event too (≤ 100 per call); say first that it runs the event's follow-up sequence
cohort. Chunk larger sets and report progress per chunk
The single strongest predictor of whether an event lead converts is whether it was touched within 48 hours
(get-enrichment-quota first). Show what it proposes and only `confirm-enrichment` with the user's yes: it fills empty fields, and that's their call
# Capture · {source}
Parsed {n} · created {n} · matched to existing {n} · needs a decision {n}
## Created
| Name | Company | Role | Stage | Temperature | Task |
## Matched, not duplicated
| Name | Existing lead | Owner | Action taken |
## Needs your call
| Input | Possible match | Why unclear |
## Written to Lynqu
- {n} leads in {pipeline} at {stage} · attached to {campaign} · tagged {tag}
- {n} first tasks due within 48 hours
- {n} rows held back: {reason}note, a task title) is short, plain and specific: short sentences, one ask, the detail that proves you looked. No warm-up lines, no "circling back", no "leverage", no em dashes. A note is three lines of what happened and what is next, not a report. A task title is the action ("Send the 3-seat pricing by Thu"), not a category.
in a captured list gets emailed, bounces, and damages the sending domain.
bulk-update-leads call.afterwards is a chore; putting them in the right column costs one question.
capture.
capture it and note it, don't "fix" it to a corporate pattern.
Never drop a row silently; that's someone the rep actually met.
list-lead-duplicates, then hand tolynqu-lead-management for the merge. Don't merge blind mid-capture.
list-campaigns, confirmstatus, ask whether to reopen or attach elsewhere. Don't skip attribution silently.
chunk.
accelerator, not a dependency.
didn't, then offer to retry only the failures. Never re-run the whole batch. That's how you get duplicates.
operations need a manager.
lynqu-event-blitzlynqu-qualify to score the batch, thenlynqu-outreach on the top band only
lynqu-lead-managementlynqu-prospect on the best few"Here are 48 people from yesterday's booth [paste]. Dedupe against our contacts, put the new ones in the Events pipeline, tag them SaaStr-2026, attach to the SaaStr campaign."
The run: parses 48 rows, flags 3 with no email and 1 with two names on one card · finds 6 already in contacts (2 with open leads owned by another rep, noted rather than duplicated) and 1 fuzzy match it refuses to guess on · creates 38 leads at the Events board's New stage with the booth conversation as a note · attaches all to the SaaStr campaign, tags SaaStr-2026, sets 9 warm based on what was said, and opens a 48-hour follow-up task on each of those 9.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.