Find and Qualify Leads
Define who you want to target, build a lead list, enrich contacts, score fit, and send qualified leads into outreach.
This is the main Salesprompter workflow most users care about. It starts with a clear target profile and ends with qualified leads you can review before you send them anywhere.
Flow summary
- Define or derive an ICP.
- Resolve or target an account.
- Generate leads or pull them from a connected data source.
- Enrich the leads.
- Score them against the ICP.
- Sync them into CRM or outreach tools.
Create an ICP
Use icp:define for ad hoc work:
node ./dist/cli.js icp:define \
--name "EU SaaS RevOps" \
--description "RevOps and sales leaders in European growth-stage software companies" \
--industries "Software,Financial Services" \
--company-sizes "50-199,200-499" \
--regions "Europe" \
--countries "DE,NL,GB" \
--titles "Head of Revenue Operations,VP Sales" \
--required-signals "recent funding,growing outbound team" \
--keywords "revenue operations,outbound,sales tooling" \
--out ./data/icp.json
Use icp:vendor when the repo already has a vendor-specific template:
node ./dist/cli.js icp:vendor --vendor deel --market dach --out ./data/deel-icp.json
Generate targeted leads
For a targeted account:
node ./dist/cli.js leads:generate \
--icp ./data/icp.json \
--count 5 \
--domain deel.com \
--company-name Deel \
--out ./data/deel-leads.json
If you only want the normalized account first:
node ./dist/cli.js account:resolve \
--domain deel.com \
--company-name Deel \
--out ./data/deel-account.json
Enrich and score
node ./dist/cli.js leads:enrich --in ./data/deel-leads.json --out ./data/deel-enriched.json
node ./dist/cli.js leads:score --icp ./data/deel-icp.json --in ./data/deel-enriched.json --out ./data/deel-scored.json
The default implementations in this repo are heuristic. They preserve contract shape and workflow semantics while clearly labeling output as fallback when appropriate.
Sync to downstream systems
CRM sync is dry-run only in the current implementation:
node ./dist/cli.js sync:crm --target hubspot --in ./data/deel-scored.json
Instantly supports real writes but defaults to dry-run:
node ./dist/cli.js sync:outreach --target instantly --in ./data/deel-scored.json --campaign-id "$INSTANTLY_CAMPAIGN_ID"
node ./dist/cli.js sync:outreach --target instantly --in ./data/deel-scored.json --campaign-id "$INSTANTLY_CAMPAIGN_ID" --apply
Review before sync
Before you apply a sync:
- inspect the scored lead file
- confirm the campaign or CRM target
- run the dry run first
- add
--applyonly when the preview matches your intent