Track a tech stack over time
Use a Radar to monitor when target companies adopt or drop technologies.
A one-off /signals/techstack call gives you a company's tech list today. To catch changes — a prospect adopting a competitor's product, or dropping a tool you replace — run a Radar with techstack tracking and diff each run against the last.
1. Create a radar → POST /radar/create (signals_to_track: ["techstack"])
2. Pull captured signals → GET /radar/{id}/signals
3. Diff vs your last run → detect new / removed vendors
4. Pull matching leads → GET /radar/{id}/leads
5. Push leads to outreach → POST /leads/push
Poll steps 2–5 on a fixed cadence (daily or weekly). Each run, store the vendor list per company so the next run can compute the delta — the new and removed technologies are your buying signals.
Step 1: create the radar
Scope the radar to your ICP, and include techstack in signals_to_track. At least one filter is required so the radar has something to match against.
curl -i -X POST "https://api-staging.satellyte.ai/api/v1/radar/create" \ -H "X-Satellyte-API-Key: $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "Competitor Tech Watch", "industries": ["saas", "ai"], "titles": ["Founder", "CEO", "Head of Engineering"], "location": "Singapore", "signals_to_track": ["techstack"] }'
{ "data": { "radar_id": "nJBj9azouTmbmiOY1x3Cn" } }
Save the returned radar_id — every following call uses it.
Step 2: pull captured signals
curl -i "https://api-staging.satellyte.ai/api/v1/radar/$RADAR_ID/signals?date_range=last_30_days" \ -H "X-Satellyte-API-Key: $API_KEY"
An empty data array means the radar has not captured matching signals yet — that is normal right after creation. Give it a cycle, then poll again.
Step 3: diff against your last run
The API returns the current state, not the delta — you compute the change client-side. Persist the vendor list per company after each run, then compare:
last run : { "stripe.com": ["NextJS", "Segment"] } this run : { "stripe.com": ["NextJS", "Amplitude"] } ───────────────────────────────────────────── added : Amplitude ← new buying signal removed : Segment ← displacement / churn signal
A newly added vendor that competes with your product is your highest-intent trigger. A removed vendor you replace is a warm displacement opening.
Step 4: pull matching leads
Once a company trips a signal, pull the decision makers the radar already resolved for it. Use min_score to keep only high-fit contacts.
curl -i "https://api-staging.satellyte.ai/api/v1/radar/$RADAR_ID/leads?min_score=70&date_range=last_30_days" \ -H "X-Satellyte-API-Key: $API_KEY"
Lead items follow the same shape as /contacts/find, plus a radar_id field.
Step 5: push leads to outreach
curl -i -X POST "https://api-staging.satellyte.ai/api/v1/leads/push" \ -H "X-Satellyte-API-Key: $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "lead_ids": ["lead_1", "lead_2"], "destination": "webhook_url", "webhook_url": "https://example.com/webhook" }'
Then close the loop the same way as the end-to-end workflow: send outcomes to /feedback/events and read /feedback/insights so the next run targets the tech triggers that actually convert.