AI booking concierge · learning feed

Loma

An AI concierge that learns each member's taste.

Two Gemini agents that search and hold real hotel rooms, a feed that learns from every swipe, and a taste memory the member confirms and controls.

AI agentMachine learningRecommendation enginePrivate build
Private build
Loma: The landing page: stop scrolling, start living.
The brief

Build the intelligence behind a travel app: an assistant that can actually check and hold rooms, and a feed that gets better for each member without ever booking, charging or remembering anything on its own.

What we built

A Python backend with a Gemini concierge and reservations agent, an offline Gemini tagger and embeddings for every hotel, a per-member learning feed with exploration and taste neighbours, a confirmed-only taste memory, and a booking flow where a person always signs off.

2Gemini agents
19taste dimensions per hotel
818backend tests
Intelligence layer

How Loma decides

Each feature below is mapped to the part of the system that runs it: Gemini, a machine-learning model, fixed rules or a person.

AI model

Concierge and reservations agents

Gemini 2.5 Flash on Google ADK: a concierge agent hands bookings to a reservations sub-agent with tools for live rates, availability, dates, currency and the member's profile. It replies in the language the member writes in.

AI model

Hotel taste tagging

Gemini reads each hotel's catalogue text and scores it on 19 taste dimensions and 9 practical facts, with one line of evidence per score. No signal in the text means no score, not a guess.

AI model

Taste embeddings

Gemini embeddings place every hotel in a taste space, plus a style view with the city's average removed, so the feed matches feel, not just location.

Machine learning

Per-member learning feed

Each member has their own Bayesian model, updated from dwell time, photo swipes, saves, bookings and a reason for 'not for me'. Exploration tries new options, preferences fade over 120 days and a shift in taste is detected.

Machine learning

Taste neighbours and room match

Collaborative filtering finds members with similar taste, a diversity re-rank stops the feed repeating itself, and each card shows the room that best fits the member.

Machine learning

Learned ranker under test

A position-debiased ranker trained on feed logs runs in an A/B arm against hand-set weights, with off-policy evaluation. Hand-set weights serve by default, and tests so far use simulated members.

Rules engine

Guards on every reply

The model may quote a price only after a tool returned it. Its replies are checked for personal data and prompt leaks, and dealbreakers such as step-free access filter results and never fade.

Human control

Nothing booked or remembered without a person

The agent cannot confirm, charge or cancel: a person verifies the hold and the member confirms with their own button. A taste fact is saved only after the member says yes, and one call erases what the feed learned.

Integration

Payments, phone and partner sync

Card details go only into the hotel partner's hosted card form via a signed link, phones are linked with Twilio Verify SMS, and partner webhooks keep trips in sync.

In development

App screens on the engine

Will connect the app screens (assessment, archetype and Ask Loma) to this engine. Today they are a designed front end, not yet wired to it.

Modules & features

What’s inside Loma

01

Concierge chat

Gemini agents that search, compare and hold rooms in the member's language.

02

Learning feed

Hotels ranked per member from what they open, save, skip and book.

03

Taste memory

Confirmed preferences kept per trip type, with dealbreakers that never fade.

04

Room match

The room on each card is picked for the member, not just the hotel.

05

Secure booking

Partner-hosted card form, human sign-off and the member's own confirm button.

06

Trips

Bookings kept in sync with the hotel partner by webhook.

UX design journey

The product flow from first assessment to booked trip, designed screen by screen.

01
Private build
Loma UX design, step 1 of 8
Assessment
02
Private build
Loma UX design, step 2 of 8
Archetype reveal
03
Private build
Loma UX design, step 3 of 8
Personal home
04
Private build
Loma UX design, step 4 of 8
Discover
05
Private build
Loma UX design, step 5 of 8
Experience detail
06
Private build
Loma UX design, step 6 of 8
My rooms
07
Private build
Loma UX design, step 7 of 8
Ask Loma
08
Private build
Loma UX design, step 8 of 8
Trips
Mobile

Designed for the phone, too

Loma mobile screen
Home
Loma mobile screen
Archetype reveal
Loma mobile screen
Room detail
Loma mobile screen
Ask Loma
Loma mobile screen
Trips

Built with

TanStack StartClerkCloudflare D1Gemini ADKFastAPIPostgres + pgvector

Have a platform in mind?

Know what it will cost and what it will return before you build it.