Loading...
Loading...
Detect buying signals across TAM companies and watchlist personas. Three-phase architecture: (1) free diff-based signals from existing data (headcount growth, tech stack changes, funding rounds), (2) Apify-powered signals (job postings, LinkedIn content analysis, profile changes), and (3) post-processing with dedup, scoring, and lead status updates. Writes signals to Supabase signals table for downstream activation.
npx skill4agent add nikiandr/goose-skills signal-scannersignalsSUPABASE_URLSUPABASE_SERVICE_ROLE_KEY.envAPIFY_TOKEN.envANTHROPIC_API_KEY.envtam-builder| Priority | Signal | Level | Source | Cost |
|---|---|---|---|---|
| P0 | Headcount growth (>10% in 90d) | Company | Data diffs | Free |
| P0 | Tech stack changes | Company | Data diffs | Free |
| P0 | Funding round | Company | Data diffs | Free |
| P0 | Job posting for relevant roles | Company | Apify linkedin-job-search | ~$0.001/job |
| P1 | Leadership job change | Person | Apify linkedin-profile-scraper | ~$3/1k |
| P1 | LinkedIn content analysis | Person | Apify linkedin-profile-posts + LLM | ~$2/1k + LLM |
| P1 | LinkedIn profile updates | Person | Apify linkedin-profile-scraper | ~$3/1k |
| P2 | New C-suite hire | Company | Derived from person scans | Free |
configs/example.jsonclient_namesignals.*scan_scopesignalsenrichment_logcompaniespeople--dry-run--dry-runlead_statusmonitoringsignal_detected--yes--yes# Dry run first (ALWAYS DO THIS) — detect signals without writing to DB
python skills/capabilities/signal-scanner/scripts/signal_scanner.py \
--config skills/capabilities/signal-scanner/configs/my-client.json --dry-run
# Full scan (only after user reviews dry-run results and approves)
python skills/capabilities/signal-scanner/scripts/signal_scanner.py \
--config skills/capabilities/signal-scanner/configs/my-client.json
# Test mode (5 companies max)
python skills/capabilities/signal-scanner/scripts/signal_scanner.py \
--config configs/example.json --test --dry-run
# Free signals only (skip Apify)
# Set all Apify signals to enabled: false in config| Flag | Effect |
|---|---|
| Path to config JSON (required) |
| Limit to 5 companies, 3 people |
| Auto-confirm Apify cost prompts. Only use for pre-approved scheduled scans. |
| Detect signals but don't write to DB. Always run this first. |
| Override Apify run limit (default 50) |
client_namecompany_idperson_idsignal_levelsignal_typesignal_sourcestrengthsignal_dataactivation_scoredetected_atacted_onrun_idlead_statussignal_detectedmetadata._signal_snapshotraw_data._signal_snapshotenrichment_logtool='apify'action='search''enrich'credits_usedactivation_score = strength * recency_multiplier * account_fit
Recency: <24h = 1.5, 1-3d = 1.2, 3-7d = 1.0, 1-2w = 0.8, 2-4w = 0.5
Account: Tier 1 = 1.3, Tier 2 = 1.0, Tier 3 = 0.7tam-buildercold-email-outreachsignal-scanner/
├── SKILL.md
├── configs/
│ └── example.json
└── scripts/
└── signal_scanner.py