How to Find B2B SaaS Customers on X Without Cold DMs
Most founders on X do not have a distribution problem. They have a list problem. The reach is there — a post lands, a few hundred people see it, someone with a real company in their bio leaves a reply. Then nothing. Two days later that person is thirty screens down the notification tab and gone for good. The audience keeps growing. The pipeline stays empty. And the standard advice for closing that gap is to open the DM window, which is exactly the move that makes the next six months harder.
The problem is not reach. It is that you cannot remember anyone.
Ask a founder with 8,000 followers who their last twenty conversations were with. Most cannot say. They can tell you their best-performing post, their follower count this month, maybe their impressions. Those are audience metrics. Selling is not an audience activity. It happens between two named people, over weeks, and the only thing that makes it work is that both of them remember the previous exchange.
X gives you no memory. The timeline is built to show you what is happening now, and a buyer relationship is made almost entirely of what happened three weeks ago. There is no field for why this person matters. There is no record of when you last spoke. And there is no way to separate the handful of people who could sign a contract from the hundreds who build the same kind of thing you do and never will.
So it is not a reach problem. It is not even a content problem, most of the time. It is that the platform is a feed and selling needs a table.
What the missing list actually costs you
The first cost is that you build an audience of peers. Founders reply to founders, because founders are the ones posting about the thing you are posting about. Peer engagement feels identical to buyer engagement from inside the notification tab — same likes, same replies, same warm feeling. It is not the same. A room full of people building competing products will applaud you for a year and buy nothing. They are not the buyer. Nothing in the metrics will tell you that.
The second cost is that you start DMing. This is the part that does the damage. Without a record of a relationship, every conversation feels like it starts from zero, which means every conversation feels like it needs a pitch. So you send the DM. And that DM has to carry the entire relationship in one message. There is nothing behind it: no history of you replying usefully, no reason for them to recognise your name. So the message reads as cold whatever you put in it, because it is cold. You did the work of being visible for six months and then spent it in a single unprompted paragraph.
The third cost is the one that actually kills companies. Because the DM does not work, you conclude you need more audience. That is the wrong conclusion, and it is expensive. It puts you back on the treadmill of posting more, which produces more peers, which produces more of the same. You can run that loop for a year. Plenty of people do.
The shift: an audience is not an asset, a list is
Here is the belief worth adopting. Followers are a byproduct. The asset is a list of named people, each with a reason they are on it and a date you last spoke. Everything else — the follower count, the impressions, the viral post from March — is evidence that the list can be built, not the list itself.
That reframes what a reply is for. A reply is not engagement. It is a deposit against a specific person, and it only compounds if you make several of them to the same person over time. Ten thoughtful replies spread across ten strangers is content. Ten replies to one buyer over six weeks is a relationship. By the end of it a DM is not cold. It is the obvious next message between two people who already talk.
You do not need more followers. You need to be able to answer: who are the twenty people who could buy this, and when did I last say something useful to each of them?
The system: how to run this without a DM script
What follows is the mechanism, in the order it runs. It is also, roughly, what xpush does at /engage. Where a step maps onto something the product ships, I will say exactly what it does and what it refuses to do.
1. Define the buyer as a person, not a segment
"Series A SaaS companies" is not something you can reply to. "Heads of support at companies who post about their ticket queue" is. The test is whether the definition tells you what to search for on X tomorrow morning. If it does not, it is a market description and you cannot act on it.
2. Build the table, not the feed
Take the people who fit and put them in a real list with a reason attached. In xpush this is Reply Radar, and it is deliberately a table rather than a feed — rows, not a scroll. Each person can be filed into a list with a goal, picked from a closed set. Learn from, build a relationship, could become a customer, could collaborate, just monitoring. That closed set is the point. "Could become a customer" is a filter you can actually work from on a Tuesday, and it is a different daily job from "learn from".
The working list is capped per plan, in the tens to low hundreds. That is not a limitation being sold back to you as a feature — a cohort you cannot get through is a cohort you stop opening. Twenty names you actually talk to beats a thousand you skim.
3. Let a cadence tell you today's names
Attach an attention level to each row and let the interval do the picking. In xpush those intervals are three days, ten days and thirty days. Roughly twice a week for the people who matter most, three times a month for the middle, monthly for the rest. The due queue is computed from when you last touched someone, not from a rate. A long session on Sunday does not leave you behind on Monday.
One design rule matters more than the numbers: nothing in that system moves a row on its own. It ranks and it shows. You pause, you resume, you remove. A CRM that quietly retires people it decided were cold is making a judgement about a relationship it cannot see. It will be wrong about the ones that were about to turn.
4. Warm them in public, and write the reply yourself
The whole reason this beats DMs is that a reply is visible. It is seen by the person you wrote it for, by their audience, and by anyone who checks your profile later. A good reply under a buyer's post does three jobs a DM cannot. It shows you understand their problem. It puts you in front of everyone else with that problem. And it costs the recipient nothing to ignore.
Be clear about what software can and cannot do here. xpush improves a reply you have already written — you bring the draft, it sharpens it. It does not generate replies for you to fire off. It cannot send anything either. Publishing a reply through the X API is not permitted, so you copy the text and post it yourself. There is no auto-DM feature and there will not be one. That is a platform rule, not a roadmap gap. Any tool promising otherwise is either lying or about to get its users restricted.
5. Track the ladder honestly
You need to know where each relationship stands, and you need that reading to be true. xpush derives four rungs: new, warming, followed you, mutual. New means they are on the list and you have not started. Warming means you have started replying. Followed you and mutual are follows, which are facts the platform actually reports.
Notice what is missing. There is no "warm" rung meaning "we have talked a few times", because nothing observable proves that. The app can see that you copied a reply. It cannot see whether they answered. Inventing a rung on that basis would have the tool asserting a relationship nobody witnessed, on the exact screen where that assertion is the whole value. A follow-back is stored as a fact, and it moves nobody out of your working list. The moment someone follows you back is the moment the relationship starts. Removing them from the list to celebrate that is backwards.
6. Keep a history you can read before you type
Before replying to someone for the fourth time, you should be able to see the previous three. xpush keeps a per-person event history: what happened and when, not the contents of your private notes. It loads only when you open that person, so the board stays fast. This is the piece that makes the eventual direct message work. When you finally do send one, you are not opening with a pitch. You are continuing something.
7. Keep prospects and partners in separate boards
Some accounts are not buyers. They are people whose audience contains your buyers — creators worth paying or partnering with. xpush handles those in a separate creator pipeline with its own stages: saved, contacted, replied, negotiating, booked, posted, passed. Searching that corpus of public accounts is free and unlimited, because no metered read happens. Filing someone takes no slot in your reply cohort and changes no price. Every stage is stored, and only you move it. Nothing there advances because a clock ticked or because someone went quiet.
The reason those two boards are kept apart is boring and important: nurturing someone daily and paying someone once are different jobs with different cadences. Merging them means your prospecting eats your relationship capacity, and you notice at exactly the wrong moment.
What you post still matters, but it has one job
None of this replaces posting. It changes what posting is for. Once you have a named list, your feed has a job: give the people on that list a reason to reply to you. That is a much sharper brief than "post valuable content". It means writing about the problem your buyer has this week, in the language they use for it. Often enough that replying to you feels natural rather than notable.
That is the other half of xpush: the canvas at /write. Your queue and your last seven days sit on it together. Each published post carries its own score, worked out from X's published ranking weights. Your content pillars feed the composer, so you are never starting from an empty box. But the sequence matters. Content without a list produces an audience. A list without content produces a stranger asking for time. You want both, in that order.
The one thing to do next
Open a blank file. Write down every person on X you have ever thought could be a customer. Not their segment — their handle. Expect the list to run out sooner than your follower count suggests it should. Whatever number you reach, that is your actual pipeline. Everything else is reach.
Then decide how often each of them hears something useful from you, and put that list somewhere it will still exist in six weeks. If you would rather it lived next to the posting, that is what xpush is: the list, the cadence, the history and the composer in one place. Start at xpush.app, put twenty names in, and stop trying to sell to a feed.
Common questions
How do I find B2B SaaS customers on X without cold DMing them?
Build a named list of accounts who fit your buyer and reply to their posts publicly over several weeks before you ever message them. Public replies are seen by the person and by their audience, and they cost the recipient nothing to ignore. By the time you send a direct message, it continues a conversation instead of starting one.
Why doesn't my X audience convert into customers?
Usually because the audience is made of peers rather than buyers — founders reply to founders, and that engagement looks identical to buyer interest in your notifications. The second reason is that X has no memory, so the buyers who did engage are lost within days. Track named people in a list rather than judging the audience by follower count.
Do cold DMs work for B2B SaaS?
A cold DM has to carry the whole relationship in one message, because nothing sits behind it, which is why it reads as a pitch no matter how it is worded. Direct messages work far better as the continuation of a public relationship you have already built. Warm the person in replies first, then move to DMs.
How often should I follow up with prospects on X?
Set the interval by how much the person matters rather than following up with everyone at the same pace. A workable split is every three days for your highest-priority accounts, every ten days for the middle, and monthly for the rest. Measure it from when you last spoke to them, not as a fixed weekly quota.
Keep reading
More from Xpush