SalesprompterSalesprompter Docs
Guides

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

  1. Define or derive an ICP.
  2. Resolve or target an account.
  3. Generate leads or pull them from a connected data source.
  4. Enrich the leads.
  5. Score them against the ICP.
  6. 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:

  1. inspect the scored lead file
  2. confirm the campaign or CRM target
  3. run the dry run first
  4. add --apply only when the preview matches your intent