Signal Scanner
Detect buying signals across TAM companies and watchlist personas, then prepare reviewed signal records for downstream activation. The runbook enforces a dry-run-first workflow so signal counts, affected records, Apify spend, and proposed lead-status changes…
7 steps · start to finish.
- 1Step 1
Environment Setup
▶- Create
/app/resultsand verify the configured scanner file exists. - Verify
SUPABASE_URLandSUPABASE_SERVICE_ROLE_KEYare present. - If Apify-backed signals are enabled in the config, verify
APIFY_TOKENis present. - If LLM content analysis is enabled, verify
ANTHROPIC_API_KEYis present. - Write a setup stage into
/app/results/validation_report.json.
mkdir -p /app/results test -n "$SUPABASE_URL" test -n "$SUPABASE_SERVICE_ROLE_KEY" test -f "$CONFIG_PATH" - Create
- 2Step 2
Inspect Config and Scope
▶Read the config JSON and confirm client_name, signals.*, and scan_scope match the requested run. Summarize enabled signal types, estimated Apify usage, and whether the scan is limited by tier…
- 3Step 3
Run Dry-Run Scan
▶Run the scanner with --dry-run first. Use --test for initial validation unless the operator explicitly requested full scope.
- 4Step 4
Present Findings and Require Approval
▶Present dry-run results to the user before any write. Do not run the scanner without --dry-run until the user explicitly approves the exact config and scope. Write /app/results/approval_record.json…
- 5Step 5
Execute Approved Scan
▶Only after approval, run the scanner without --dry-run. Never pass --yes on a first run; reserve it for pre-approved scheduled scans where the user has already validated signal detection logic.
- 6Step 6
Validate Database Effects
▶Confirm inserted signals, enrichment_log entries, company signal snapshots, and person lead_status changes match the approved dry-run expectations. Flag discrepancies in summary.md and set…
- 7Step 7
Iterate on Errors (max 3 rounds)
▶If setup, dry-run parsing, scanner execution, or database validation fails, apply a targeted fix and repeat the affected step for max 3 rounds. Stop before write execution if failures involve…