Casamo: From my own apartment search to a product for other travelers
I designed, built, and operate Casamo, a live product that checks Airbnb and Booking.com listings against a traveler's requirements and shows the evidence behind each finding.

From my own apartment search
I wanted a washing machine inside my apartment. As a digital nomad booking apartments for weeks at a time, I preferred doing laundry at home to leaving the apartment to use shared facilities.
An Airbnb listing could advertise laundry without making clear whether the machine was inside the apartment or shared with the building. I had to open listings and flip through photos to find out for myself.
I built a small tool that searched Airbnb and used AI image analysis to check for an in-unit washing machine. I then wanted to search for more of the details that matter when choosing somewhere to live.
That became Casamo. Travelers enter a destination or listing links and specify their requirements. The product checks Airbnb and Booking.com listings and returns a saved shortlist with evidence from listing details, photos, and reviews. Travelers can browse the options, see them on a map, and compare them before returning to the marketplace to book.
Casamo is an independent live product. I handle the product strategy, design, engineering, testing, and operations. Using it myself and asking other people to test it have changed some of my original ideas about how it should work.
Showing what the sources support
Listing details, photos, and reviews can provide different kinds of evidence. A listed amenity does not establish how well it works, and a missing detail can leave a requirement unverified. I built the report to show the sources behind a finding and leave those gaps visible.
In the sample report, one property lists Wi-Fi, but we don’t know how fast it is. Casamo marks it as listed and suggests asking the host for a recent speed test. For air conditioning, the report shows an excerpt from a guest’s review, with links to the full review and original text.

Tester feedback changed the shortlist
My original idea was to make the decision as simple as possible: recommend one apartment and offer two backups.
People testing Casamo wanted more options to compare before trusting that the search had been thorough. That made sense to me: choosing housing can mean committing thousands of dollars and weeks of your life.
I expanded the shortlist, eventually settling on a target of five to ten options. I wanted enough choice for someone to make their own judgment without recreating the experience I was trying to avoid: opening dozens of tabs and spending hours comparing them.
I also changed what happens when the search finds fewer options. At first, Casamo didn’t show a report when too few properties qualified. Now it shows the qualifying results, even if there’s only one. A search uses one credit, which is restored if fewer than five properties qualify. A smaller report may still help someone, even if the search hasn’t found as many options as I wanted it to.
Making comparison easier to reach
The report had list and map views, and the comparison grid sat below the list. Reaching it meant scrolling past the properties someone was trying to compare.
I moved comparison into its own view alongside list and map, giving all three equal prominence. Someone who wants to compare can go directly to the grid and examine the properties side by side.

Letting the search continue without the traveler
A search collects listings and checks their details, reviews, and photos against the traveler’s requirements. I had shown live progress and results as they arrived, but people testing Casamo complained about how long searches took. I thought the progress screen encouraged them to sit and watch, so I changed the message to say I’d email when the report was ready. I wanted to make clear that they could leave and do something else.
Casamo runs searches in background Cloudflare Workflows, independently of the browser request. D1 stores the scan and account state, and R2 stores evidence and report artifacts. Saved stages let retries reuse completed work. The finished report goes into the traveler’s account, and the completion email is queued separately.
Keeping queue delays separate from search time
Later, when adding a queue for searches waiting for capacity, I had to correct when the search timer started. It began as soon as the application accepted a request, so waiting could consume time intended for searching.
I gave queueing and execution separate deadlines and used Cloudflare’s existing scheduling. A queued search receives its full time allowance when it starts. If a search waits too long in the queue, the application cancels it and restores the credit. If the search starts just as its queue deadline expires, only one of those actions can take effect: start the search or cancel it and return the credit.
I tested this in staging by allowing one search to run at a time and submitting two through the normal signed-in search flow. The second queued, then started automatically with its full time allowance. Both completed with saved reports and one credit used each. Automated tests checked that a search could not both start and expire, or restore the same credit twice.
What is live, and what I have verified
Casamo has public signup, saved reports, and paid access. The work covers the customer interface, listing and AI integrations, durable searches, credits, deployment, and ongoing operation. I continue inviting friends to test it and use their feedback alongside my own experience.
The staging exercise above checked queueing, completion, and credit behavior for two searches. It does not measure listing accuracy, booking outcomes, or behavior under heavy load. The sample report lets a reader inspect how sources and uncertainty appear in the product; it cannot confirm a property’s current condition.
The earlier Apartment Finder prototype has its own washer-classification evaluation. Its fixture results belong to that narrower task and do not establish Casamo’s accuracy across traveler requirements.
You can explore a sample trip or try Casamo.
Looking for an engineer to bring AI into real workflows?
I help your team turn complex client workflows into reliable AI applications. From understanding the problem to building and deploying the solution, I take ownership of the engineering so you can deliver useful software your clients can depend on.