I moved to the Netherlands a few years ago. Great country. Good bikes, flat roads, and cheese for every mood. But one small thing kept annoying me: finding Iranian businesses was surprisingly hard.

The Problem

It started with a toothache.

I needed a dentist. Not just any dentist - one who could explain what was happening in my mouth in a way I fully understood, in Farsi. When it comes to pain and your body, “more or less understood” is not good enough. I wanted to understand every word, and I wanted them to understand me exactly. A small language gap feels very big when someone is holding a drill.

Then I started noticing a pattern. In Telegram groups, people asked the same questions every week. “Anyone know a Persian restaurant here?” “Looking for an Iranian accountant.” “Where can I find a Farsi-speaking doctor?” The same needs, again and again, lost in the scroll.

So I turned to Google Maps. And here’s the real gap: you cannot tell if a business is Iranian just from its name. A great Persian restaurant might be called something totally neutral. Google Maps has no “Iranian” label, no filter, no way to separate them. The information existed, but it was invisible to the people who needed it most.

That was the moment the idea clicked. What if there was a label for that? A place built exactly for this.

Later, my friend Pooria - who lives in Portugal - mentioned almost the same idea. Same problem, different country. That was the final push. We started building together.

The Solution

We built IranBiz - a directory of Iranian businesses. The idea is simple on purpose:

It works in both Farsi and English, because our community lives in two languages at once.

IranBiz homepage

But we had a classic problem: a directory with no businesses is useless. So we didn’t wait for people to add listings by hand. We wrote a script that reads messages from Telegram communities, filters the useful ones, and asks an LLM to extract the business info automatically - name, category, contact. Next, we plan to do the same with Google Maps data. This way the app already feels alive on day one, instead of being an empty room.

The Tech Stack & Features

I promised not to get too technical, so here’s the short version.

The app is built with Next.js and TypeScript for the frontend, styled with Tailwind CSS to keep it clean and fast. The whole backend runs on Supabase - that gives us the database, user login (including Google sign-in), file storage for business photos, and security rules all in one place. Less glue code, more building.

Because our community is bilingual, the app is fully Farsi and English, with proper right-to-left support. That sounds small. It is not. Getting a layout to feel natural in both directions takes real care.

The auto-import script is where the fun happens: it reads Telegram messages and uses an LLM to pull out clean business data. Think of it as a very patient intern who never sleeps but sometimes needs fact-checking.

On the feature side, here’s what users actually get:

IranBiz business search

Nothing here is flashy. It’s a solid, boring stack doing a useful job - which, honestly, is my favorite kind.

The Success Metric

I’m a product manager, so I don’t trust a feature until a number backs it up. But I resisted the urge to track everything.

Our number one metric is simple: how many businesses are added.

That’s it. If businesses keep getting added, acquisition is happening - the app is growing where it matters. Reviews, traffic, and returns are nice, but they mean nothing without listings first. Businesses are the foundation. So that’s the number I watch every morning.

The Challenges

Let me be honest, because pretending it was easy would be a lie.

Trust, in both directions. Users need to trust the reviews. Businesses need to trust that we represent them fairly. That trust is fragile and slow to build. Our approach is patient: reviews stay hidden until an admin approves them. Slower, yes - but a small honest directory beats a big fake one.

The auto-import is not magic. The script is great, but LLMs sometimes get creative. They “extract” a phone number that doesn’t exist, or guess a category wrong. So every imported business still needs a human check. Automation gives us speed; humans give us trust. We need both.

Saying no. As a PM, I have a long list of “wouldn’t it be cool if…” ideas. Maps, chat, AI recommendations, everything. I said no to almost all of them. The app does a few things and tries to do them well. Restraint is a feature.

What’s Next

The plan from here is steady, not dramatic:

Final Thought

I didn’t build IranBiz to be the next big startup. I built it because I needed a dentist who could explain my own teeth to me. It turns out thousands of people have the same kind of small, annoying problem - they just needed one place to look.

Now, if you’ll excuse me, I have a dentist appointment. In Farsi, this time.

Start searching

Enter keywords to search articles

↑↓
ESC
⌘K Shortcut