Inspiration

Online rental property listings are often outdated and filtered by criteria that don't capture your needs. With the help of community ratings and AI, LeftMove goes through estate agent hell so you don't have to.

What it does

You search on the LeftMove platform, using practical criteria like commute time and preferences that you can write in plain English. Maybe you want a studio flat, near a gym, within a 30 minute commute radius of work? Pop it in your bio, and we'll do the rest.

Our database contains only the Rightmove listings that are most likely to still be on the market. We determine this through community feedback: if you call up an estate agent and discover that a property is no longer available, you mark it as off-the-market in order to remove it from your feed. If enough people do this, then we also mark it as off-the-market and no longer display it to anyone.

You can also recruit an AI secretary to go through your favourite properties and call the estate agents for you. Your AI will enquire as to whether the property is available; if not, the property will be removed from your favourites.

Demos

LeftMove platform: https://youtu.be/pEzy1S6qQe0

AI agent: https://youtube.com/shorts/O43I9m2_BwI

How we built it

  • Big shoutout to Claude

  • Rightmove doesn't have an API so we get the Rightmove data using a Python-compatible web scraper: dhrumil/rightmove-scraper

  • Our scraper script stores property data in an SQLite database

  • This data is then fetched by our web app's backend, which is built in Python with FastAPI

  • We use routingpy to calculate travel times and generate a polygon that encompasses all the locations that fulfil the user's requirements

  • All this information is made presentable for humans by our Typescript React frontend

  • We automate phone calls using Bland AI

Challenges we ran into

Ideally, we would've retrieved property data using an API. Scraping had the potential to be more time consuming and less reliable. Finding an existing scraper saved us a lot of implementation time, and so far the quality of the data has been good. But scraping is still a slow process, so if we ever want this app to be capable of supporting a large user base then we'll need to be smart about when we scrape.

We weren't able to use ElevenLabs for making the phone calls because it takes a few days to get a phone number approved by the government (presumably an anti-spam measure). For now, Bland AI is an alternative that gets around this issue, but it's more easily confused so we can only manage simple phone interactions.

Accomplishments that we're proud of

We managed to resist scope-creep at least 50% of the time, and ended up with an MVP that does something useful! We also (as of time of submission) didn't force-push to main or leak any API keys.

What we learned

  • How to build a community product that benefits the individual members

  • How to use Claude, and also how not to use Claude (don't ask for four major features at the same time unless you want to spend the next four hours debugging)

  • How to integrate a large number of technologies in a short span of time

What's next for LeftMove

We weren't able to use ElevenLabs for making the phone calls because it takes a few days to get a phone number approved. With ElevenLabs, we hope to be capable of most sophisticated interactions, such as booking a viewing.

We'd also like to expand beyond Rightmove to other property listing sites. The long-term goal is to unify all of the different property listing websites for ultimate simplicity.

Built With

Share this project:

Updates