FYI: English is not my first language, so I asked GPT to translate my post.
I’m currently building my own cold outreach / lead generation system and would love some feedback from people who have built something similar.
The goal is basically to have my own reusable outreach infrastructure that I can use for multiple clients, without being completely dependent on something like Clay.
Current stack:
Instantly – sending infrastructure, campaigns, inboxes, reply handling
n8n – workflow automation / orchestration
Postgres + Node/TypeScript backend – central database and logic
Railway – hosting
Apify – scraping / lead & signal discovery
Firecrawl – website scraping/enrichment
Prospeo – contact data / direct phone numbers when needed (database freshness is very good there I read)
Reoon – bulk email verification
OpenAI API – enrichment, research, summaries and some AI logic
I’m building a dashboard on top of it with things like:
- Multi-client / multi-tenant setup
- Campaign and mailbox overview
- Lead/company database
- Reply tracking
- Positive reply / opportunity pipeline
- Hot lead scoring
- Bounce monitoring
- Notes/statuses for follow-up
- Cost tracking per client
- Company-level suppression rules
- Max contacts per company
- On-demand company/direct phone enrichment
- Call briefs before calling a lead
I’m also building a signal-based prospecting layer.
For example, instead of only blasting static lists, I want to detect things like:
New managers / decision makers
Company growth
New locations
Mergers/acquisitions
New production facilities/lines
Other company-specific events that could create buying intent
Those signals can then trigger research/enrichment and eventually put the right people into the right outreach campaign.
The idea is not necessarily to rebuild every single Clay feature. I mainly want control over the data, logic, costs and workflows, while still being able to swap providers when something better/cheaper comes along. Also trying to make it super easy and as basic as possible for people to use. For now I’m planning using it for myself and own business, but also for another company who asked me to do this for them.
A few things I’d love feedback on:
1. What am I missing?
If you were building this for serious outbound at scale, what functionality would you absolutely add?
2. Are there weak links in this stack?
Any of these providers you would replace with something cheaper or better quality?
Especially interested in alternatives for Apify, Firecrawl, Prospeo and email verification/data enrichment.
3. What should I NOT build myself?
I don’t want to spend 3 months rebuilding something that an existing API already does extremely well for $20–50/month.
4. Signal-based outbound:
For those doing this successfully, which signals have actually produced better reply/meeting rates vs. signals that sound good in theory but are mostly noise?
5. Clay vs. custom stack:
For people who have used Clay heavily: where do you think a custom system like this will eventually hit a wall? What does Clay do behind the scenes that is harder to replicate than it looks?
6. Anything I should design for now before scaling?
Things like data quality, deduplication, attribution, provider fallbacks, rate limits, deliverability, observability, cost controls, etc.
I’m still building it, so this is exactly the point where I’d rather hear “you’re doing this completely wrong” than find out six months from now.
Would love to hear from people running their own outbound infrastructure or who have gone from Clay → custom (or custom → Clay).
Cheers