With FlatHawk I wanted to try to improve this search experience. The user can still set the usual parameters (e.g. price, area) _but_ the user can also say in plain language what they are looking for (e.g. an open floor plan, or a view of a lake). In the background, similarity search is performed on a set of more than 150k photos of actual apartments and houses that are currently available for rent or sale. The user gets a list of relevant listings and the original thumbnail of each listing is replaced with the picture that best matches what the user asked for.
I should add this currently only contains Swiss real estate as that is where I am based.
On the technical side, I decided to keep it simple. It is a React Router application that queries a Postgres DB (with pgvector extension for the search). I use Gemini Embedding 2 for the cross-modality embeddings.