Blog / Selling B2B SaaS

How to Post for B2B SaaS Buyers, Not Other Founders

The reason your posts pull founders instead of buyers is simple. You are writing to the room you can see. The room you can see is made of people who post. Your buyer mostly does not post. Your buyer reads on a phone between meetings and has never opened a thread about shipping velocity. So the replies come from people building roughly what you are building, you read that as traction, and you write more of the thing that produced it. The loop closes quietly. Nothing in it is broken enough to notice.

This is not an audience problem. It is a reader problem.

Most founders describe this as conversion. Eight thousand followers, decent engagement, empty pipeline. That word sends you off to inspect the funnel — the bio link, the landing page, the button copy. None of those is where it breaks. It breaks earlier than that. It breaks at the sentence.

Every post is written for somebody. Usually not on purpose. You write for whoever replied last time, because that reply is the only feedback the platform hands you. If founders replied last time, your next post is written for founders. Repeat for six months and you have an editorial line aimed with real precision at people who will never buy anything from you.

Nobody decides to do that. It is drift. And drift is hard to catch because every number rises while it happens. Followers up. Impressions up. Replies up. The one number that would tell you something is the count of people in your replies who have the problem you charge for, and no dashboard shows it.

What the drift costs you, in order

The first cost is that your data stops meaning anything. Peer engagement and buyer engagement are identical inside the notification tab. Same avatars, same length, same little jolt. So your best post teaches you what founders enjoy. Then you apply that lesson to a business selling to heads of support. You are learning fast. You are learning the wrong subject.

The second cost is that you get good at it. This is worse than being bad at it. Six months of writing for peers makes you genuinely good at it. The callbacks, the shared references, the format that lands in that room. That skill is real and it is not transferable. The post that works on founders often reads as noise to a buyer. It assumes context the buyer does not have and never wanted.

The third cost is the conclusion you reach at the end. The channel does not work for B2B, you decide, and you go and buy ads. Which means you spend money to reach people you could have reached by writing a different sentence. That is the expensive version of this mistake, and it is extremely common.

How the drift feels from the inside

It does not feel like failure. That is the whole problem with it. It feels like a good week. A post does better than usual, twenty people reply, several of them have followings you respect, and the conversation underneath is genuinely interesting. You close the tab satisfied. Nothing about that afternoon tells you that not one of those twenty people has a budget line your product could sit on.

The signal that something is off arrives late and sideways. Usually it is a quiet month where you post as much as ever and nobody books anything. Then you go back through three months of replies, read the bios, and count. The count is the moment it lands.

The shift: write for the person who never replies

Here is the belief worth swapping in. Your reader is not the person who replies. Your reader is the person who reads it, recognises their own week in it, and does nothing visible at all. They do not reply because replying in public under a work problem is a small professional risk. They lurk. They lurk for weeks. Then one day they need a solution and your name is the one already in their head.

That reframes what a post is for. It is not a bid for engagement. It is a demonstration, in public, that you understand a specific problem better than the person who has it. Engagement is a side effect, and it will often come from the wrong people even when the post is right. That is fine. You are not writing for the replies. You are writing so that the reply you eventually get is from someone worth talking to.

The buyer is not in your replies. The buyer is in your read receipts, and X does not show you those. So you have to aim on purpose instead of aiming at feedback.

Aiming on purpose means the target has to be written down somewhere outside your head. Otherwise you drift again within a fortnight, because the feedback is loud and the intention is quiet.

The system: six moves that change who a post is for

What follows is the mechanism in the order it runs. It is also roughly what the Plan sheet and the canvas at /write do in xpush. Where a step maps to something the product ships, I will say what it does and what it refuses to do.

1. Name three or four subjects, and let them exclude things

Content pillars are the durable subjects your account is about. In xpush there are between three and four of them, and that ceiling is the entire discipline. Fewer than three and you have no declared promise. More than four and your account is about everything, which is the same as being about nothing. Five posts in a row should tell a stranger what you talk about.

They are free text, deliberately — not a picklist of preset buckets. A founder whose positioning has to fit six dropdown options does not have positioning. What matters is that the set excludes things. The instruction attached to them is blunt. A post fitting none of them is off-brand, however good it is. That sentence is the point. A pillar you never say no because of is decoration.

2. Write the pillars in your buyer's language, not your builder's

This is where most of the drift is fixed, and it costs nothing. Look at your pillars and ask whose vocabulary they are in. Building in public, shipping, indie hacking, growth — those are builder words. Your buyer does not describe their Tuesday with any of them.

The same product yields two completely different pillar sets depending on who you point them at. One is about how the thing gets made. The other is about the problem it removes, named the way the person with the problem names it. Only one of those attracts a buyer. You do not have to change what you build or how honest you are about it. You change whose words the subject is written in.

3. Give every recurring post a job

A weekly plan in xpush is a small set of slots — at most eight — and each slot carries more than a topic. It has a format, a target length, an angle, and a job. The angle is a move, not a template: teach the how, name the mistake, push back. The job is one of reply, repost or follow: what you want the post to cause.

Naming the job on a per-slot basis is what stops your week collapsing into one register. Posts written to be reposted are broad by nature, and broad pulls peers. Posts written to be replied to are narrow and specific, and specific is what a buyer recognises. You want both, in a ratio you chose rather than one you fell into.

4. Fix the mix so buyer posts are not the leftovers

Each slot gets a count per week, and the mix is stored as yours. It is not a plan tier's opinion about how much you should post, and it does not reset because you had a slow week. The default cadence is seven feed posts a week, which is one a day and survives contact with a real job.

The reason to write the mix down is that buyer-facing posts are always the ones that get dropped. They are harder to write. They require you to have talked to a customer recently. When the week gets tight, the easy peer post is what ships. The mix quietly becomes what your energy allowed, not what you decided. A stored mix makes that visible instead of invisible.

One more honest detail. The plan's stage is worked out from your measured follower count. When that number has not been measured, it stays null rather than guessed. A plan built on an invented number is worse than no plan.

5. Put a question in front of the blank box

The blank composer is where good intentions die. You open it with a plan, see an empty rectangle, and write whatever is nearest. Whatever is nearest is what you were just doing. Building. In xpush the placeholder is a question drawn from a deck. Today's plan slot, a question from your own bank, a theme crossed with an angle, an angle worded for your niche, or a plain starter. There is a control to skip to the next one, and the deck advances by itself after you finish a post.

Two things about that deck are worth stating plainly. It makes no AI call, costs no credits and works with no keys at all — it is built entirely from data you already entered. And no card ever names a subject you did not choose. It would be easy to invent this week's theme and present it back to you as yours. The angle cards carry no subject at all instead, which is honest and still concrete enough to write from.

6. Score by replies, because X does

Now the measurement, which is where the peer-versus-buyer question finally gets an answer. X published the ranking weights its For You feed uses. A reply is weighted at 5.0. A quote is 5.0. A repost is 1.0. A like is 0.5. A reply is worth ten likes to the ranker.

xpush applies those published weights to your real counts and ranks your own last seven days of posts against each other. Best and worst, individually. Never one blended average across a week that mixed a thread with a one-liner. Those two do not share a baseline, and averaging them answers a question nobody asked. It is a relative ranking of your own posts, not a prediction about a post you have not written. X's weights also price reports and mutes as heavy negatives. No API exposes those counts to an author. So they are shown as reference copy, never subtracted from a real number.

The practical use is not the leaderboard. It is that the metric which most rewards you also happens to be the one that tells you something commercial. Likes are cheap and peers give them freely. A reply costs the person something. Four replies from people who have your problem beat two hundred likes from people who have your job. The score agrees with you.

The numbers refresh when you press refresh. That is deliberate. A metered read of the X API should not fire just because you opened the write box. A refresh that fails leaves the old numbers and the old timestamp, rather than pretending it worked.

Then read the replies by name, not by count

The score tells you which post pulled hardest. It does not tell you who. That last step is manual and it is the one that closes the loop to revenue.

Open the post that scored highest and read the bios of the people who replied. Not the count. The bios. If they build what you build, that post worked on the wrong room and you should learn nothing from it about your subject matter. If even two of them have the problem you charge for, you found a vein. Write three more posts in that direction this month.

The people from the second group are worth keeping. In xpush that is the other half of the app. A relationship table, where each person sits in a row with a reason and a date. A due queue surfaces them again on an interval you set: every three days for the ones who matter most, ten for the middle, thirty for the rest. Nothing in that table moves on its own. It ranks and it shows.

Be clear about the boundary. xpush does not send replies and it does not send DMs. Publishing a reply through the X API is not permitted, so you write it, you copy it, you post it yourself. There is no auto-DM feature and there is not going to be one. That is a platform rule, not a missing feature, and any tool promising you otherwise is either lying or about to get its users restricted.

The one thing to do next

Open your last twenty posts. For each one, write down in three words who it was written for. Not who it reached — who it was aimed at when you typed it. Most people find that seventeen of the twenty were aimed at someone exactly like themselves.

That is the whole diagnosis. The fix is not more output. It is three or four subjects in your buyer's words. A weekly mix you actually chose. A score that watches replies rather than likes. If you want those three things in one place, next to the box you write in, that is what xpush is. Start at xpush.app, write your pillars in your buyer's language, and stop publishing to the room you can see.

Common questions

Why is my X audience full of other founders instead of customers?

Because posts get written for whoever replied last time, and the people who reply are people who post — which usually means other builders. Your actual buyer reads without engaging, so they give you no feedback to steer by. The fix is to choose the reader deliberately and write your subjects in that reader's vocabulary rather than your own.

What should a B2B SaaS founder post on X to attract buyers?

Post about the problem your buyer has this week, described in the words they would use for it, rather than about how your product gets built. Pick three or four durable subjects and let them exclude everything else, so five posts in a row tell a stranger what you are about. Aim for posts specific enough that someone with the problem recognises their own situation.

Does building in public actually bring in paying customers?

It reliably builds an audience, but that audience is largely made of other people building things, and following someone has almost no correlation with buying from them. Build-in-public content converts when the details you share are ones your customer cares about, not ones your peers find interesting. Treat the engagement as a top-of-funnel signal, never as proof of demand.

How do I tell whether a post reached buyers or just other founders?

Open the post and read the bios of the people who replied, rather than looking at the reply count. Replies are the useful signal because they cost the reader something — X's own published ranking weights put a reply at ten times the value of a like. Two replies from people with the problem you solve are worth more than two hundred likes from people who share your job.

Written by Marcus — building xpush.app, posting on X as @marcusleovn.

More from Xpush