| name | find-first-customers |
| description | Find and qualify a startup's first customers from current public pain, intent, hiring, migration, and tool-switching signals. Use when Codex is asked to discover early adopters, build a prospect shortlist, research evidence-backed sales leads, score customer fit and timing, or create personalized founder outreach from a startup URL or product description. |
Find First Customers
Turn a startup URL or product description into an evidence-backed prospect report. Never invent prospects, quotes, contact details, or source URLs.
Inputs
Collect or infer:
- startup URL or product description
- target geography, if constrained
- B2B, B2C, developer, or local-business motion
- maximum prospect count, default 20
- freshness window, default 90 days
Ask only when a missing constraint would materially change the search. Otherwise state the assumption and proceed.
Workflow
- Inspect the product and derive an Ideal Customer Profile with pains, triggers, exclusions, likely roles, and search vocabulary.
- Read
references/research-playbook.md. Build queries across at least three relevant public-source families.
- Search current public discussions. Capture the exact source URL, date, author or organization, a short evidence excerpt, and the signal type.
- Read
references/evidence-schema.md. Store candidates in its JSON shape. Use null for unknown fields; never guess an email or identity.
- Read
references/scoring.md. Score fit, intent, authority, reachability, and freshness independently. Record a one-sentence rationale for every component.
- Deduplicate candidates by canonical source, public handle, organization, and underlying event. Merge corroborating evidence rather than creating duplicate cards.
- Resolve this skill folder as
SKILL_DIR, then run the deterministic report builder from any working directory:
node "$SKILL_DIR/scripts/build-report.mjs" --input prospects.json --out customer-signal-report
- Inspect
summary.json and report.html. Recheck the top five sources before presenting results.
Quality gates
- Require a working original source URL for every prospect.
- Separate direct buying intent from weak topical interest.
- Prefer recent first-person pain, active migration, budget, hiring, or evaluation signals.
- Mark stale evidence instead of silently treating it as current.
- Use only public professional channels explicitly exposed by the person or organization.
- Keep outreach openers specific to the evidence, low-pressure, and under 70 words.
- Do not automate contact or post/send messages without explicit authorization.
Outputs
The report builder creates:
report.html — searchable, filterable evidence dashboard
prospects.json — normalized, deduplicated machine-readable data
prospects.csv — CRM-friendly export
outreach.md — personalized opener variants
summary.json — run metrics and signal/source coverage
Gotchas
- Search-result snippets are discovery aids, not evidence. Open the original page.
- A complaint about a category is not automatically purchase intent. Score the timing separately.
- A company name in a profile does not prove employment. Use the public source's own context and qualify uncertainty.
- Do not infer private emails from names or domains.
- Avoid broad scraping or login-gated sources. Respect platform terms, robots rules, and rate limits.
- Do not include sensitive personal data, protected-class inferences, or non-professional contact details.