Inspiration

Spend a morning in a small nail salon and you'll see the problem before anyone says a word. The owner is doing a manicure with one hand and thumbing through WhatsApp with the other. A client cancels at 11 for a 3 p.m. slot, and everyone knows that hour is just… gone. Nobody will fill it in time. At the end of the week, it's not one lost hour — it's a dozen, and each one was rent, supplies, and a paycheck that didn't happen.

These businesses don't lose money because the owner isn't working hard enough. They lose it because there's nobody to catch the small things: the gap a cancellation leaves, the regular who hasn't been back in two months and is about to become someone else's client, the person who forgets they even had an appointment.

We kept thinking: what these salons need isn't another app to log into. They already have too many of those. What they need is a colleague — someone who quietly handles the boring, time-sensitive stuff in the background so the owner can keep her hands on the actual work. That's the whole idea behind Glow Pilot. Not a dashboard. A teammate.

What it does

Glow Pilot is an autonomous agent that looks after a salon's calendar the way a great receptionist would — except it never clocks out.

When a client cancels, it doesn't just mark the slot empty. It immediately looks at who's waiting for exactly that time and offers it to them. When there's a hole in the day that could still be filled, it reaches out — gently, and only when it makes sense — to a regular who's drifted away. It sends reminders before appointments so fewer people no-show, and if someone doesn't confirm in time, it frees the slot and passes it to the next person in line.

On the other side of the conversation, clients get an assistant they can just talk to — by chat or by voice note — in natural Spanish, in the salon's own tone (formal or casual, emoji or no emoji, the owner decides). They can book, move, or cancel an appointment, ask what a service costs or includes, join a waitlist, even book on behalf of a friend or set up a standing weekly appointment. And when something isn't for a bot to handle — a complaint, an allergy, anything medical or emotional — it steps back and hands the conversation to a real person.

Underneath, it's all connected to the real world: payments that go straight to the salon, reminders and messages over WhatsApp, notifications on the owner's phone. The client never feels like they're navigating a menu. It just feels like the salon is really on top of things.

How we built it

The decision that shaped everything was this: the AI is allowed to suggest, but it is never allowed to act on its own. Gemini is brilliant at understanding a messy human message and at judging who's the best fit for a slot — but we never let it be the last word on anything that touches a real calendar or a real price.

So we split the system in two. There's a pure "brain" that holds all the logic and rules — no database, no AI library, nothing from the outside world, just plain code we can test in milliseconds. Around it sit adapters that do the actual talking to Firebase, to Gemini, to WhatsApp. The rules the agent must always obey — never message someone who asked not to be contacted, only ever quote real catalogue prices, respect quiet hours, honor marketing consent — live as code, not as instructions buried in a prompt. Gemini proposes; the code checks its work, twice: once before we even call the model (which also saves us API calls) and once after, to catch anything it made up.

When the agent has to choose who gets a freed-up slot, Gemini gets the real context — this client's history, her usual service, her favorite stylist, how long since she last came in — and answers with a clear, structured choice and a reason. Then our rules re-check that choice against reality before a single message goes out. And if Gemini is ever down or gives us nonsense, the agent quietly falls back to a simple, dependable rule instead of freezing. It always keeps working.

Availability is its own careful piece. A slot only counts as bookable if the whole service fits inside a free window — a booking at time $s$ for a service lasting $d$ is valid only when $s \ge w_i$ and $s + d \le w_f$ for some open window $[w_i, w_f]$. Sounds obvious, but getting it right across working hours, vacations, and daylight-saving changes was a real piece of work.

Challenges we ran into

The hardest part wasn't making the AI smart. It was making it trustworthy.

Our sharpest lesson came from an actual bug. A client asked to move her appointment, and the assistant happily said "Great, I can move you to Monday at 19:30 — shall I confirm?" She said yes. And only then did the system realize the slot didn't actually fit before closing time, and had to backtrack with an awkward "sorry, I can't do that after all." It had given her false hope. That stung, because it's exactly the kind of thing a good receptionist would never do. The fix was more of a principle than a patch: we now run the same reality-check the moment the agent proposes something, not just when the client says yes. The model can suggest — but the client is never promised anything the code hasn't already guaranteed.

Then there were the quieter, meaner problems. Two clients confirming the same freed slot at the same second. A hold expiring in the middle of a checkout. A reschedule bumping into an appointment that got booked a half-second earlier. We had to harden every step so the agent can never contradict itself, no matter how the timing lines up.

And the moving-target ones: WhatsApp changed its rules in 2026 so people can hide their phone number behind a username, which meant we couldn't rely on the phone number as identity anymore and had to rethink how we recognize a returning client. Voice notes, timezones, the 24-hour messaging window Meta enforces — a huge share of the work lived at these unglamorous edges, and it all had to be right.

Accomplishments that we're proud of

We're proudest that Glow Pilot feels calm. It doesn't spam. It doesn't overpromise. It doesn't break its own rules to close a booking. In a space full of pushy automation, we built something that behaves with restraint — and that restraint is engineered, not accidental.

We're proud that the "brain" of the whole system runs and is fully tested without touching a network or a database — which means we can trust it and change it fearlessly. We're proud that when the AI fails, nothing falls over; the agent just gets a little simpler and keeps going. We're proud that a client can send a voice note in the middle of a busy day and get a warm, correct answer back in her salon's own voice. And we're proud that the money goes straight to the salon — we don't skim a fee off every booking; we earn our keep only if the salon finds the whole thing worth paying for.

Most of all, we're proud that we caught our own "false hope" moment and treated it as a matter of principle instead of shipping a quick hack. That's the standard we want to hold the agent to.

What we learned

The biggest thing we learned is that an AI's confidence is not the same as it being right, and if you trust the confidence, you'll eventually embarrass yourself in front of a real customer. The way through wasn't to make the model weaker — it was to give it a partner. Let Gemini own the language and the judgment, where it's genuinely wonderful, and let plain, boring, deterministic code own the rules and the math, where it is wonderful. Neither one could have built this product alone.

We also learned that the "edges" are the product. The magic of a natural conversation is real, but the trust is built in the unglamorous places: the timezone that has to be correct, the race condition that must never happen, the message that must never go to the wrong person. Users never see that work — they just feel that the thing is dependable. That's the point.

What's next for Glow Up

Next, we want to take the agent from reacting to genuinely planning ahead — spotting a quiet Tuesday before it arrives and gently rebalancing the week, learning each salon's rhythm instead of following fixed times. We want to bring smarter pricing and gap-filling fully to life, so a soon-to-be-empty afternoon can be nudged full with the right offer to the right person.

We're finishing the last mile on payments and going live for real salons, expanding the WhatsApp experience for owners who run their whole business from their phone, and adding an in-app heads-up whenever a slot opens so a waitlisted client hears about it instantly, not only over WhatsApp.

And the north star stays the same: an employee for small businesses that never sleeps, never forgets a client, and never breaks the rules — where the AI brings the warmth and the judgment, and disciplined code makes it something you can actually trust with your livelihood.

Share this project:

Updates