← All runbooks
gooseworks-ai / capabilities-signal-scanner

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…

agent codexmodel gpt-5.5snapshot python312-uveval programmatic7 stepsv1.0.0

Deploy Signal Scanner to your jetty.io

One-click installs this runbook into a collection on your Jetty account. You can run it from the Spot dashboard, schedule it, or pipe inputs in via the API.

The shape of the run

7 steps · start to finish.

  1. 1
    Step 1

    Environment Setup

    1. Create /app/results and verify the configured scanner file exists.
    2. Verify SUPABASE_URL and SUPABASE_SERVICE_ROLE_KEY are present.
    3. If Apify-backed signals are enabled in the config, verify APIFY_TOKEN is present.
    4. If LLM content analysis is enabled, verify ANTHROPIC_API_KEY is present.
    5. 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"
    
  2. 2
    Step 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…

  3. 3
    Step 3

    Run Dry-Run Scan

    Run the scanner with --dry-run first. Use --test for initial validation unless the operator explicitly requested full scope.

  4. 4
    Step 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…

  5. 5
    Step 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.

  6. 6
    Step 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…

  7. 7
    Step 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…