A month ago, I had a new idea for a new project I wanted to try. I got fed up with the low quality of the real estate listings on the most popular sites, so I decided to make a curated feed for myself, to be able to extract the information I was most interested in but weren't available as search criteria.
The idea was the following: scrape as many real estate listings as possible from various sources, automatically extract the information I cared about from the available data, titles and descriptions and create a personalized listing with the info I need.
Then, the question popped: why not turn it into a product and help others explore the real estate market with more in-depth options, while also building a side-income.
As any other tech oriented wannabe entrepreneur does, I just dug head first into building the product. I built some crawlers to scrape listings, a React frontend, a Django based RESTful backend and a data import pipeline that extracts information from the raw scraped data.
Two weeks into the project, I decided to finally analyse the potential of the idea from a business point of view by answering questions like:
I looked around the market to determine what are the proven paths similar websites adopted. Most of them (if not all of them) rely on "selling attention", also known as ads. So the business model would be to acquire as many eyeballs as possible that would use the website for free and then make money by promoting listing from real estate agencies that are willing to pay.
Looking around, I found out that indeed, agencies are willing to pay, and most of the websites that offer this kind of paid promotion ask for about 1€ per day of promotion. That's ~30€ per month, ~360€ per year for each paying customer.
At 30€ per month, that would require having 15 paying customers each month just to get paid at the minimum wage level in Romania (~460€). It doesn't sound that good, because in reality, the monthly earnings would have to be higher to cover fot the business expenses, marketing, hosting and customer support.
So far, the idea seems less and less thrilling to pursue.
For this, I used the biggest real estate website from Romania to get some information about how many real estate agencies are there that are using this kind of services: https://www.imobiliare.ro/agentii . For the city I live in, there are 65 listed agencies. The initial numbers aren't very promising, because from those 65, not all are paying for advertising. Only ~40 are. So even if I would capture most of the available leads from here, I would barely make ends meet.
That was a huge disappointment that really started to make the think about dropping the project altogether.
I kept looking, maybe these numbers were wrong and weren't representative for the whole market.
The next stop was another big real estate listing website, Storia.ro: https://www.storia.ro/companii/agentii/. There are 133 listed agencies. More than on https://imobiliare.ro, but still, the numbers aren't very promising.
Here is the more tricky and the saddest part about this kind of project: the potential for growth. Because of the nature of the real estate market, it's very hard to scale a project built around it. The buyers and sellers are co-localized, so you need to compartmentalize the project in such a way you match them. House buyers from Iași don't care about houses for sale from Bucharest. It's common sense that you need to match people to properties from the same county.
At first, the original plan was to do the website targeting only the Iași market. Scrape agency websites from Iași, implement area categorizing from Iași (to combat the agents that set the property area to being in the downtown to appear in more searches, but the actual area being in the outskirts of the city), market to people from Iași. All for capturing some of the potential market from Iași.
In the future, to expand to other cities such as Bucharest, Cluj, Timișoara or Constața, I would need to redo all those steps from scratch: find agencies from the new city with worthwhile websites, create scrapers for them, implement the features and zoning for the new city, start marketing to people in that city. Rinse and repeat.
The number of web scrapers would rise fast, and long-term that is a problem: web scrapers are hard to maintain, because their functionality is tied to the website they scrape. As soon as a website changes its structure or gets a complete remake, you'll have to be alerted, to identify it and adapt the scraper to work again. I worked on maintaining web scrapers at several jobs, and I know it's very time (and soul) consuming.
Another option would be just scraping the data from aggregators such as imobiliare.ro or storia.ro, but there are two problems with it: they both (and usually bigger aggregators) specify that scraping their listings is against their terms and conditions, so you are prohibited to scrape their data and especially re-use it in a commercial project.
If you'd just do that for personal use, they would probably just tell you to stop, but if you do this and gain money from doing so, they're more likely to sue you instead.
Bottom line, if you can't get the data legally, then you have to work around it and get to it through other means.
In addition, adding a new city would basically mean restarting the project from scratch in the new location, and it's very unlikely to capitalize on the popularity it would already have established in the previous locations.
So, as a conclusion of all the points from above, I decided to pull the plug and invest my time and energy in other projects. The scalability (or lack thereof) and pretty low viable customer base are reasons enough to make up my mind.
If you think this has potential, hit me up with an email, I'd be glad to share other things about this small journey and even up share the code, because I don't have any more use for it.
Even though I spent two or three weeks writing code that will never see the light of day, I'm not disappointed. I learned some new things, I got the chance to further practice my skills and little by little I'm exploring the opportunities I see around until I'll find something with more potential.
Any time spent learning is not wasted.