Paid ads fail when your buyer must meet requirements a click cannot check
Ex-Microsoft engineer reading every public tender in Romania
Google Ads sent DataDriven a steady stream of visitors who could never become customers: they searched for construction tenders, clicked, and only then discovered that public procurement demands revenue thresholds, staff counts, and certifications they did not have. The ad platform had no way to target eligibility, so the budget bought branding at best and noise at worst. This failure mode generalizes to every market where the buyer must hold a license, a certification, or a track record: regulated industries, government suppliers, professional services. In those markets the qualifying attribute is invisible to ad targeting but often visible in public registries, which is where the marketing budget should go instead. Before spending on ads, ask whether a click can even in principle identify your qualified buyer; if not, the channel is structurally wrong regardless of how well you run it.
Related advice
In a niche B2B market, public data plus cold email beats paid ads
Google Ads sent Mihai visitors who could never buy: public tenders have eligibility requirements around revenue, staff, and certifications that an ad click cannot filter for. Cold email inverted the problem, because Romania's procurement system publishes exactly who participates in tenders, who wins them, and how to reach them. A firm that already bids on public contracts is pre-qualified by its own history, so the public record becomes the lead list. With a market of roughly 20,000 firms, a modest cold email setup beats an ad budget: the targeting information ads cannot access is sitting in the open data. Before paying platforms to guess at your buyer, check whether a public registry, license list, or procurement record already names every one of them.
Cold email at scale is an infrastructure problem before it is a copywriting problem
Mihai's cold email machine is mostly plumbing: multiple sending addresses spread across several domains, each warmed up automatically by Instantly.ai, which has the accounts send, open, reply to, and click each other's messages until mailbox providers trust them. The whole fleet costs about $150 per month plus $5 per Google Workspace address, and throughput stays deliberately limited to protect deliverability. The insight indie hackers miss is the ordering: before subject lines and personalization matter at all, the message has to land in an inbox, and that is determined by sender reputation built over weeks. Blasting from your main domain both fails and burns the domain your business runs on. Treat cold email like infrastructure, warmed domains you can afford to lose, low volume, patience, and only then start optimizing the words.
Design the company around the life you need, even if that means no cofounders
Mihai came out of a burnout at Microsoft with a hard constraint: he needed to remove obligatory human contact from his working life for a while. So he designed the company around that constraint, no cofounders, no employees, full control over every product decision. The standard advice says find a cofounder, split the load, hire early, but standard advice optimizes for growth, not for the founder staying functional. A company shaped around your actual capacity is one you can run for years; a company shaped around a template is one you abandon. Constraints like health, energy, and tolerance for people are real inputs to company design, not weaknesses to overcome. Decide what you need to stay in the game, then build the business that fits inside it.
Price against the manual workflow you replace, not the software you wrote
Mihai's first serious customer was a security firm whose tender discovery process was a bookmark folder organized by county and an employee who opened town hall websites every single day. They happily paid 2,000 lei per month for complete automated coverage, a hundred times his 19 lei list price at the time, because the alternative was a salary. The lesson is that software is not priced against its build cost or against other software, it is priced against the manual grind it replaces. Find the customer who is already paying a human to do the thing badly, and the budget already exists; you are not creating a line item, you are shrinking one. Before setting a price, ask what the current workflow costs in hours and salaries, and anchor there.
