Salesprompter

Docs that map the app, CLI, and extension as one system.

Public documentation for the Salesprompter contracts, workflows, and runtime behavior. This deployment is generated directly from the docs source in the CLI repository.

Source repository

This is the core Salesprompter workflow. It starts with a stable ICP artifact and ends with scored leads ready for CRM or outreach sync.

Flow summary

  1. Define or derive an ICP.
  2. Resolve or target an account.
  3. Generate leads or look them up from BigQuery.
  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

Use icp:from-historical-queries:bq when you want an ICP inferred from prior warehouse query behavior:

node ./dist/cli.js icp:from-historical-queries:bq \
  --vendor deel \
  --market dach \
  --out ./data/deel-icp-historical.json \
  --report-out ./data/deel-historical-report.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

Look up leads from BigQuery

For production-style lead retrieval, use leads:lookup:bq:

node ./dist/cli.js leads:lookup:bq \
  --icp ./data/deel-icp.json \
  --limit 100 \
  --execute \
  --out ./data/deel-leads-raw.json \
  --lead-out ./data/deel-leads.json

This command can emit:

  • generated SQL with --sql-out
  • raw query rows with --out
  • normalized lead artifacts with --lead-out

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

Deel-specific note

When you are selling for Deel, do not use --domain deel.com if the goal is to find prospects at customer accounts. That path targets contacts at Deel itself.

Use this order instead:

  1. icp:vendor --vendor deel --market dach
  2. leads:lookup:bq --execute
  3. leads:enrich
  4. leads:score
  5. sync:outreach --target instantly
  6. add --apply only after reviewing the dry run