Tech-Stack Fit Lists
Outcome: an outbound list built on stack evidence, with a displacement or complement angle, and a job-post fallback where detection cannot see the tool.
- Surface
- App and MCP server
- Level
- Intermediate
- Uses
- find_company_techstack · company_job_listings · find_companies
- Credits
- ~15 for a 100-account list
- Prerequisite
- A sourced account list
Two plays, two messages
Displacement
They run a competitor. You know what its limits are, who hits them, and when.
The message writes itself: name the ceiling, not the tool. “Most teams hit Acme’s reporting limits around 40 seats” beats “I see you use Acme.”
Complement
They run something yours works alongside. The angle is the gap between the two, not a replacement.
“Teams running X usually end up doing Y by hand” — an observation about their workflow rather than about their vendor.
Displacement converts better and is harder to source. Complement is easier to source and needs a sharper message.
What detection actually sees
Stack detection reads what a website exposes publicly — scripts, DNS, headers, embedded widgets.
| Layer | Coverage |
|---|---|
| Analytics, tag managers, chat, marketing automation | Strong |
| CDN, CMS, payments, ad pixels | Strong |
| CRM, data warehouse, internal tooling, HR | Weak |
| Anything behind auth | None |
A positive detection is evidence. A negative is not. Building a list of “companies that do not run X” from detection data produces a list dominated by companies whose stack simply is not visible — disproportionately larger, more security-conscious organizations. Never source on an absence.
Reference: find_company_techstack, Company techstack.
Where detection cannot reach, job posts can
If your product displaces something that does not render in a browser — a CRM, a warehouse, an internal system — detection will not find it. Job posts will.
A job post names the tools the person will work with, explicitly and in the company’s own words. company_job_listings plus an extraction step gives you stack data for exactly the layer detection misses.
The pattern:
1. company_job_listings for the account
2. Extract every named tool, verbatim
3. Classify: does the list include a competitor?
4. Store the quote as evidenceThe quote is a bonus: “your platform engineer posting mentions Acme” is stronger personalization than a detection result, because it is verifiable and it came from them.
See AI-Powered GTM lesson 09 for the extraction mechanics.
Sourcing the list
Two directions, and both are valid:
| Direction | How | Best for |
|---|---|---|
| Filter an existing universe | Run detection over accounts you already sourced, keep positives | You have a TAM already |
| Source on the stack filter | Use stack as a sourcing criterion where available | Building a list from scratch |
The first is usually cheaper and more accurate, because your ICP filters have already run.
Timing beats presence
A company that has run a competitor for four years is not in market. A company that just adopted one, or just removed one, is.
| Stack event | Meaning |
|---|---|
| Added a competitor recently | Just bought — bad timing for displacement, good for complement |
| Removed a competitor recently | In transition — the strongest possible timing |
| Added a complement recently | Building out that area — good timing |
| Has run the same stack for years | Presence without timing — needs another signal |
Detecting the change requires a baseline: run detection, store the result, re-run quarterly and diff. Techstack change does this directly.
Do this now
Decide the play
Displacement or complement. They are different lists and different messages.
Run detection over your qualified accounts
Positives only.
Add the job-post route
For any tool detection cannot see.
Store the evidence
Detection result or the job-post quote, with a date.
Check timing
Recent adoption, recent removal, or long-standing.
Write the message from the ceiling, not the tool name
Enrich and verify contacts
Standard path, on the filtered list only.
Check your work
- The list was built on positive detections, never absences
- Job posts cover the tools detection cannot see
- Evidence is stored with a date and, where possible, a quote
- The message references a consequence, not a vendor name
- A baseline exists so you can detect changes next quarter
Where this breaks
Naming a competitor’s product in the first line reads as either a threat or a sales script, and a prospect who likes their current tool will disengage immediately. Lead with the situation you know they are in — the limit, the manual workaround, the reporting gap — and let them supply the vendor name if they want to. You lose nothing by not naming it and you avoid the defensive reaction entirely.
Course complete
You now have four routes to a list, a deliverable enrichment and verification layer, evidence-driven personalization, conditional runs that keep the cost down, a working sequencer handoff, and two advanced sourcing plays.
Where to go next:
| You want | Course |
|---|---|
| Triggers instead of static lists | Signals & ABM |
| Hiring as the primary signal | Hiring Signals |
| Warm outreach to past buyers | Job Changes & Champions |
| The whole chain run from chat | AI-Powered GTM |
Reference for this lesson: find_company_techstack, Techstack change, company_job_listings, TAM Sourcing.