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 are inspected before
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, status, or lead status.
- 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` with the approval status, timestamp, and requested scope.
- 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 `overall_passed=false` when writes exceed the approved scope.
- 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 credentials, ambiguous config scope, unexpected paid enrichment volume, or missing appro