Nanthakumar

sunny icon
We're HIRING at Sentry! Get in front of our recruiters!
Visualize Rents in San Francisco

https://l7sf.nanthakumar.ca

Upside Down #

When you are a tenant, you suffer from information asymmetry. Your landlord knows what the previous tenant paid, your neighbours for similar units pay and how many interested potential tenants exist at a price point. Whereas the individual tenant only knows their willingness to pay at a price. Knowing how many units are available but not listed on their marketing site, the closest comparable unit rented and the number of price drops for a unit gives a potential tenant more leverage in the negotiations.

I used to live at the L7 complex pre-COVID. So when I decided to return to SF for the new year, it was the first place I looked. Being a curious cat, I was poking around their frontend. Was it a static site or could it be backed by an API? Turns out L7 uses a headless CMS that has unauthencated endpoints for the marketing site.

How Does It Work #

Using an unauthenticated API endpoint, we can get rent data for all the units at that point in time. So I wrote a script to fetch all the data and update a JSON file if there are new rent entries for a unit. This is run daily on by a Github Action cron job. A similar example would be https://github.com/upptime/upptime.

Caveats #

This dataset does not track promotions (ex: 1 month free rent). It is only tracks the base listed/rented rent price data.

Tradeoffs #

Github Actions #

Even though I scheduled the cron to run at the end of everyday, there are delays of upto 20 minutes. This is acceptable for the project, since I do not expect rent prices for the complex to change on a minute or hourly basis.

Source Code: https://github.com/NisanthanNanthakumar/l7sf
L7SF Website: https://www.l7sf.com