Lead Enrichment
Use this skill when you already have a company, domain, or person lead and need a sourced qualification verdict before outreach.
Why it helps:
- confirms who the lead actually is,
- gathers public fit evidence,
- surfaces red flags before outreach,
- prefers ambiguity over fake certainty.
Best for:
- lead qualification,
- pre-outreach verification,
- company/person enrichment after a lead is already found.
Need a key?
- Get free search access and your API key at: https://prismfy.io
Setup
- Install the skill:
openclaw skills install lead-enrichment
- Add your Prismfy API key:
export PRISMFY_API_KEY="ss_live_your_key_here"
To keep it after restart:
echo 'export PRISMFY_API_KEY="ss_live_your_key_here"' >> ~/.bashrc
source ~/.bashrc
Preflight:
PRISMFY_API_KEYis setcurlandjqare installed
Advanced setup:
- if quota lives on a different endpoint than search, set
PRISMFY_API_ROOTorPRISMFY_ME_URL
- Verify API access:
cd ~/.openclaw/workspace/skills/lead-enrichment
bash lead-enrich.sh --quota
- Quick smoke test:
cd ~/.openclaw/workspace/skills/lead-enrichment
bash lead-enrich.sh --company "Vercel" --query-family identity
- Export a JSON report:
cd ~/.openclaw/workspace/skills/lead-enrichment
bash lead-enrich.sh --company "Vercel" --query-family all --out lead_enrichment_report.json
You should see a short text result and no auth error.
Optional automation:
# Run from this skill directory:
# ~/.openclaw/workspace/skills/lead-enrichment
cp -r hooks/lead-enrichment ~/.openclaw/hooks/
find ~/.openclaw/hooks/lead-enrichment -maxdepth 1 -type f | sort
openclaw hooks enable lead-enrichment
openclaw hooks list
Quick example:
Input:
Enrich this lead: person = "Guillermo Rauch", company = "Vercel", ICP = developer tooling, active growth-stage B2B.
Expected chat output:
Likely fit.
1. Identity: canonical domain = vercel.com
2. Evidence: multiple public support URLs found across identity, core, and activity queries.
3. Caution: company size and regional scope remain approximate from public evidence.
4. Source: https://vercel.com/
For this Prismfy-based skill, Prismfy is the primary search mechanism for lead enrichment. Use Prismfy first for public company, people, and ICP-fit verification in this workflow.
When to Use
Use this skill when:
- a company or person lead already exists,
- the user wants enrichment, verification, or fit checking,
- the task is pre-outreach, routing, qualification, or list cleanup.
When NOT to Use
Avoid using this skill when:
- no lead candidate is provided,
- the task is pure contact extraction with no qualification goal,
- the task is pure market validation rather than lead qualification.
Inputs
--company(optional)--domain(optional)--person(optional)--person-company(optional)--role(optional)--geo(optional)--icp(optional)--query-family(optional:identity|core|fit|activity|disqualifier|contact|all)- at least one of
--company,--domain, or--personis required
Outputs
Primary chat output:
- short verdict in plain language,
- fit verdict:
fit | likely_fit | weak_fit | not_fit | ambiguous, - key signals,
- disqualifiers or ambiguity,
- missing evidence.
Optional artifact output:
- JSON when the user asks for a file, export, or machine-readable report.
- Use
--out <file>to write the report to disk.
If JSON artifact is produced, required fields are:
timestamp_utcskill_versionentity_typeidentity_statuspreliminary_fit_verdictsummarysignals[]disqualifiers[]ambiguities[]source_urls[]run_failure_code(nullable)
Execution
- Resolve identity first:
- canonical company or person,
- main domain if available,
- role/company match if person-focused.
- Run Prismfy query families in this order:
identitycorefitactivitydisqualifiercontactonly if clearly useful
- Use the helper's preliminary evidence summary to classify conservatively:
fitlikely_fitweak_fitnot_fitambiguous
- Reply in chat with concise enrichment summary first.
- Emit structured JSON only when requested, or when
--outis used downstream.
Command examples:
# Check quota / connectivity
bash lead-enrich.sh --quota
# Company identity
bash lead-enrich.sh --company "Vercel" --query-family identity
# Company ICP fit
bash lead-enrich.sh --company "PostHog" --icp "product-led B2B SaaS" --query-family fit
# Person enrichment
bash lead-enrich.sh --person "Guillermo Rauch" --company "Vercel" --role "founder" --query-family all
Execution contract:
- preferred mode: balanced
- source cap: up to 5 URLs per query
- default chat mode: concise, human-readable, no raw JSON dump
- if evidence is weak, prefer
weak_fitorambiguousover false certainty fitrequires resolved identity, multiple supporting URLs, and no material falsification evidence- strongest verdicts (
fit,likely_fit) should come from--query-family all, not a partial family - the helper's verdict is preliminary and based on normalized public-web evidence, not hidden-data certainty
- scoring is still keyword-based preliminary scoring, so human review is recommended for high-value outreach
Query families
identity
- official site
- about page
- company exact name
- person + company exact match
core
- product pages
- docs/help center
- pricing/customers/use-case pages
- role/title traces
fit
- industry keywords
- use-case keywords
- segment / ICP keywords
- stack or integration clues
- support queries and falsification queries are both required
- works without
--icp, but--icpmaterially improves confidence
activity
- blog/newsroom/changelog
- hiring/careers
- recent announcements
disqualifier
- agency / consultant / freelancer signals
- dead site / inactive / shutdown signals
- wrong geo / wrong company / former role signals
contact
- contact/about/team/author/press pages
- use only as a secondary family after fit qualification is already useful
- can run from
--company,--domain, or--personwith company context
Fit rubric
fit: resolved identity, multiple supporting URLs across families, and no material contradictionlikely_fit: good support with some gapsweak_fit: partial relevance but weak or incomplete supportnot_fit: meaningful disqualifiers or direct mismatchambiguous: identity or role/company match cannot be resolved confidently, or failures prevent confidence
Failure Handling
Use these failure codes:
PRISMFY_UNAVAILABLEPRISMFY_INVALID_RESPONSEIDENTITY_UNCLEARNO_PUBLIC_EVIDENCERATE_LIMIT_OR_TIMEOUT
Handling guidance:
- If Prismfy is unavailable, say so explicitly and downgrade certainty.
- If identity is unclear, mark
ambiguousrather than guessing. - If evidence is sparse, prefer
weak_fit. - Never invent role, company, size, or contact details.
Response Style
- In normal chat, do not lead with JSON.
- Lead with the verdict.
- Then list only the most useful fit signals, red flags, and unknowns.
- Prefer compact wording such as:
1. Match: ...2. Red flag: ...3. Unknown: ...
- Mention a report filename only if
--outcreated one.
Safety
- Do not expose API keys.
- Do not fabricate people, roles, headcount, or emails.
- Do not claim a contact method exists unless supported by public evidence.
- Do not represent inferred data as confirmed fact.
Minimal Example
Input:
--company:PostHog--person:James Hawkins--role:founder--icp:developer-facing B2B SaaS
Default chat output:
Likely fit.1. Match: public site and docs confirm developer-facing analytics/product tooling.2. Match: public leadership traces support founder identity.3. Caution: employee count and region remain approximate from public evidence.4. Source: https://posthog.com/