ebaza.ro: Bolting a Product Onto Traffic That Already Existed
How a four-year-old parked domain became an insurance product, then a WhatsApp close and a set of bots
Key Lessons
- •Buy relevant domains early and let their authority age
- •Build the product where the traffic already lives
- •Internal linking is the first lever when a page starts ranking
- •Never let a call to action lie about what it does
- •For apps, a marketplace listing beats most content backlinks
- •The ad channel that shows up is the one you sell on
- •Ask for the VIN instead of buying a plate lookup
- •Give each grind job its own bot
Four years before ebaza.ro did anything, I bought it, along with a handful of other Romanian domains, and let it sit. Nothing happened for a long time. Then over the last few months the Domain Rating climbed, organic traffic followed, and conversions started showing up. The story of eBaza is really two lessons: the patience of domains, and what you do once the traffic finally arrives.

Let the domain age
There is no clever trick to the first part. I bought relevant .ro domains, parked them, and waited. Domain age and accumulated authority compound quietly in the background, and the domain that looks dead for years can become the asset that ranks the moment the market and the content line up. Buying and holding relevant domains is a cheap bet with an asymmetric payoff.
Raul bought ebaza.ro and several other Romanian domains four years before they earned a cent, and the quiet accumulation of domain age and authority is part of why they rank now. A relevant domain is a cheap, asymmetric bet: small holding cost, and a real payoff if the market or a news cycle eventually heats up around it. You cannot manufacture domain age later, so the time to acquire the domains for markets you believe in is now, even if you will not build on them for years. Patience is a legitimate SEO strategy when the asset is appreciating in the background.
Build where the traffic already lives
Once eBaza had real, high-intent insurance traffic, the smart move was not to start a brand-new site for a new product. It was to bolt the product onto the audience that was already there. I built a full RCA quote flow (RCA is Romania’s mandatory car-liability insurance, a renew-on-a-schedule purchase every driver has to make) directly onto the domain that was already ranking for adjacent insurance queries. The traffic was already arriving; I just gave it something to buy.
ebaza.ro was already pulling high-intent insurance traffic, so Raul built the RCA quote flow onto that same domain instead of launching a fresh site that would start from zero. The hardest part of most products is getting in front of people who want them; if you already have an audience or ranking pages in an adjacent space, the fastest path to revenue is to put the product where that attention already lands. Look at the traffic you already have before you go chasing new traffic. Monetizing an existing audience beats building a new one almost every time.
Internal linking is the first lever
The first thing I did once traffic arrived was internal linking: rewiring related pages so they point at each other with descriptive anchors. It is unglamorous and it moved the needle immediately. When a page starts to rank, its newfound authority is a resource you can route to neighboring pages, and descriptive internal links are how you do the routing.
The moment ebaza.ro started ranking, Raul’s first optimization was internal linking: connecting related pages with descriptive anchor text. It is the cheapest, fastest SEO lever there is, and it works precisely when a page has authority worth distributing. A ranking page is a source of link equity you can route to the pages you want to lift next, and descriptive anchors tell Google what those pages are about. Before chasing new backlinks, make sure the authority you already have is flowing through your own site. Internal linking is the first move, not an afterthought.
Do not let the CTA lie
When I demoed the RCA flow, the room caught something I had stopped seeing. The button said “see the price,” and clicking it did not show a price; it pushed the user one step deeper into the funnel. That is a small dishonesty, and small dishonesties teach users not to trust the next button. The fix is binary: either show the price there, or label the button for what it actually does. Trust is the whole game in a purchase flow.
Raul’s RCA flow had a button that promised to “see the price” and then, on click, just pushed the user deeper into the funnel instead of showing a price. That gap between what the button says and what it does is a small dishonesty, and each one teaches the user to distrust the next button you ask them to press. In a flow where trust is the currency, a CTA must do exactly what it claims. Either deliver what the label promises right there, or rewrite the label to match reality. A misleading button buys one extra click and costs you the user’s belief in everything after it.
For apps, the marketplace backlink wins
One side lesson from the same evening: for an app, a backlink from a relevant marketplace listing is worth more than most content-based backlink tactics. A marketplace exists specifically to send qualified buyers to tools like yours, so its link carries both authority and intent in a way a generic guest post never will. When the product is an app, getting listed where buyers already shop beats writing another article purely for a link.
For an app, a backlink from a relevant marketplace or directory is worth more than most content-driven backlink tactics, because the marketplace’s entire purpose is to send qualified, ready-to-buy traffic to tools like yours. That link carries authority and high intent at the same time, while a generic guest-post link carries neither. If your product is an app, prioritize getting listed where your buyers already shop over grinding out articles purely for links. The best backlinks come from pages whose job is to route buyers to you, not from content you wrote to game a ranking.
The May story was traffic and a quote flow. By Indie TM #16 the product was a renewal reminder I run with ads, WhatsApp, and a set of bots. This chapter is what I actually do. The room’s view of that night is in the recap.
The ad channel that shows up
I used AI tools to write code and to run Google Ads. I also tried Meta. The Meta campaign did something I had not planned: it pulled in people over 60. They did not want a dashboard. They wanted WhatsApp. One of them sent photos of a 1990 driving licence that morning and asked if I was a person or a robot.
That is the sale now. RCA still renews on a schedule. The buyer who arrived was older than the funnel I had designed. I started to automate the WhatsApp close instead of forcing them back onto the site.
I still have a dumb offline idea I have not built: a giant binder on a car, the kind of physical stunt that makes a stranger take a photo. The ads already found the channel. The binder would just be louder.
Raul’s Meta campaign for eBaza did not deliver the dashboard user he had designed for. It delivered people over 60 who wanted to finish an RCA renewal on WhatsApp, one of them sending photos of a 1990 driving licence and asking if he was human. The lesson is not “run Meta.” It is to notice which channel the paying stranger already lives in, then move the close there instead of dragging them back to the page that won the click. An ad that finds a buyer on WhatsApp and a product that only works in a browser is two products pretending to be one funnel. Sell where they answered.
Ask for the VIN
Plate-to-VIN lookups cost money. After enough timeouts I stopped treating the registry as a required step. If the driver can type the chassis number, I ask for it. I do not buy another mapping call.
Raul cut eBaza’s vehicle-lookup bill by asking drivers for the VIN when they already have it, instead of paying a plate-to-VIN API on every session. The registry lookup is a convenience, not the product. When the provider is slow or the quota is tight, a typed chassis number is cheaper and often more accurate than a mapping you do not control. Before you meter a third-party call, ask whether the user is already holding the identifier you were about to buy. Paid enrichment is a cost you choose. A form field is not.
One bot per job
The grind around eBaza is not one job. Outreach to Romanian firms is five emails a day. Bugs need PostHog and the logs. Ads need click-through rates. YouTube needs timestamps. I gave each of those a bot. I do not have a general assistant that “does eBaza.” I have a small army, each with one boring task.
Raul does not run one AI helper against eBaza. He runs a set: five outreach emails a day to Romanian firms, a bot on PostHog and the logs for bugs, a bot on ad click-through rates, a bot that stamps timestamps onto YouTube. Each job has a narrow input and a repeatable output. A general assistant that “handles the company” looks busy and finishes nothing, because the jobs do not share a prompt. Split the grind until a bot can do one task without a meeting. Then give the next task to the next bot.
Advice extracted from this journey
Buy relevant domains early and let their authority age
Raul bought ebaza.ro and several other Romanian domains four years before they earned a cent, and the quiet accumulation of domain age and authority is part of why they rank now. A relevant domain is a cheap, asymmetric bet: small holding cost, and a real payoff if the market or a news cycle eventually heats up around it. You cannot manufacture domain age later, so the time to acquire the domains for markets you believe in is now, even if you will not build on them for years. Patience is a legitimate SEO strategy when the asset is appreciating in the background.
Build the product where the traffic already lives
ebaza.ro was already pulling high-intent insurance traffic, so Raul built the RCA quote flow onto that same domain instead of launching a fresh site that would start from zero. The hardest part of most products is getting in front of people who want them; if you already have an audience or ranking pages in an adjacent space, the fastest path to revenue is to put the product where that attention already lands. Look at the traffic you already have before you go chasing new traffic. Monetizing an existing audience beats building a new one almost every time.
Internal linking is the first lever when a page starts ranking
The moment ebaza.ro started ranking, Raul's first optimization was internal linking: connecting related pages with descriptive anchor text. It is the cheapest, fastest SEO lever there is, and it works precisely when a page has authority worth distributing. A ranking page is a source of link equity you can route to the pages you want to lift next, and descriptive anchors tell Google what those pages are about. Before chasing new backlinks, make sure the authority you already have is flowing through your own site. Internal linking is the first move, not an afterthought.
Never let a call to action lie about what it does
Raul's RCA flow had a button that promised to "see the price" and then, on click, just pushed the user deeper into the funnel instead of showing a price. That gap between what the button says and what it does is a small dishonesty, and each one teaches the user to distrust the next button you ask them to press. In a flow where trust is the currency, a CTA must do exactly what it claims. Either deliver what the label promises right there, or rewrite the label to match reality. A misleading button buys one extra click and costs you the user's belief in everything after it.
For apps, a marketplace listing beats most content backlinks
For an app, a backlink from a relevant marketplace or directory is worth more than most content-driven backlink tactics, because the marketplace's entire purpose is to send qualified, ready-to-buy traffic to tools like yours. That link carries authority and high intent at the same time, while a generic guest-post link carries neither. If your product is an app, prioritize getting listed where your buyers already shop over grinding out articles purely for links. The best backlinks come from pages whose job is to route buyers to you, not from content you wrote to game a ranking.
The ad channel that shows up is the one you sell on
Raul's Meta campaign for eBaza did not deliver the dashboard user he had designed for. It delivered people over 60 who wanted to finish an RCA renewal on WhatsApp, one of them sending photos of a 1990 driving licence and asking if he was human. The lesson is not "run Meta." It is to notice which channel the paying stranger already lives in, then move the close there instead of dragging them back to the page that won the click. An ad that finds a buyer on WhatsApp and a product that only works in a browser is two products pretending to be one funnel. Sell where they answered.
Ask for the VIN instead of buying a plate lookup
Raul cut eBaza's vehicle-lookup bill by asking drivers for the VIN when they already have it, instead of paying a plate-to-VIN API on every session. The registry lookup is a convenience, not the product. When the provider is slow or the quota is tight, a typed chassis number is cheaper and often more accurate than a mapping you do not control. Before you meter a third-party call, ask whether the user is already holding the identifier you were about to buy. Paid enrichment is a cost you choose. A form field is not.
Give each grind job its own bot
Raul does not run one AI helper against eBaza. He runs a set: five outreach emails a day to Romanian firms, a bot on PostHog and the logs for bugs, a bot on ad click-through rates, a bot that stamps timestamps onto YouTube. Each job has a narrow input and a repeatable output. A general assistant that "handles the company" looks busy and finishes nothing, because the jobs do not share a prompt. Split the grind until a bot can do one task without a meeting. Then give the next task to the next bot.
