SnafuPrototype

Every guest accounted for.

When a cancelled flight strands guests overnight, Snafu plans their ride to the airport. A coordinator approves it, and if a vehicle drops out, the places that still work are kept.

MexicoFrom personal experience

Ceiba hotel36 guests

07:00 ready, all placed

Ceiba minibus20 guests

08:00

Laguna accessible shuttle16 guests, 2 wheelchair users

08:15 cancelled

Reserve lift shuttle16 guests, 2 wheelchair users

08:40
Saved demo result: when each vehicle reaches Cancún airport in the fictional Mexico case. The guests are ready at their hotel at 07:00.
My partBrent in his TUI uniform
As a TUI destination representative I handled transfers for arriving guests, including cancellations and wheelchair arrangements, and they rarely went to plan. Snafu is built around that work. I set its direction and judged each version; Codex built it.
What
Transfer recovery for a travel coordinator
Built with
Codex, Python, FastAPI, TypeScript, Google OR-Tools, Supabase, Railway, OpenRouter
Note
Fictional guests, suppliers and prices. No real bookings.
Saved demo resultCeiba hotel to Cancún airport. Ready 07:00, at the airport by 09:00, budget MXN 18,000.

A rebooking notice moves 36 guests to Ceiba hotel for the night. None of them has a ride to the airport, and 2 are wheelchair users.

At Ceiba hotel

36 guests, no ride booked

Reserved 0 of 36Plan none yet
The fictional Mexico case in its four saved states, one guest to a mark. The suppliers are simulated, and nothing here is live.

What the AI reads

The rebooking notice arrives as ordinary text. GPT-4.1 mini, reached through OpenRouter, reads it for what the plan depends on: how many guests, how many are wheelchair users, and when their new flight leaves. Every value comes with the words it was taken from.

Finding the guests without a ride is a separate fixed rule, not AI, and a coordinator confirms the counts before anything is planned. In another saved reading, a supplier mentioned a 12-seat minibus but not how many guests. The model left both counts empty, did not take 12 as the number of guests, and asked how many guests needed transport and how many needed wheelchair-accessible transport.

In a check on fifty fictional supplier messages, with the right answers written before the first reading, 39 of 50 readings had both counts exactly right. The report, PDF

The rebooking notice

Fictional ground-handler rebooking notice. The flight has been cancelled. 36 passengers, including 2 wheelchair users, will stay at Ceiba overnight hotel. Their replacement flight departs Cancún on 2026-10-04 at 11:00 local time. This notice covers the Ceiba group only.

What the AI read

Guests
36
Wheelchair users
2
New flight
4 October, 11:00

What a fixed check found

All 36 guests on the matching rebooking list have no transfer to the airport booked.

Saved demo result: one recorded reading of a fictional notice by GPT-4.1 mini. The lit words are the ones it quoted.

What a person approves

The coordinator confirms the counts and when the guests must reach the airport. Google OR-Tools then finds the cheapest set of vehicles that seats all 36, carries both wheelchair users and arrives by 09:00 within MXN 18,000, or says that no such plan exists.

Nothing is reserved until the coordinator approves, and the approval belongs to that exact plan. When the Laguna shuttle cancels, the 20 places on the Ceiba minibus are kept, and the new plan, MXN 16,000, needs a fresh approval.

OfferSeatsWheelchairArrivesMXNIn the plan
Ceiba minibus20008:006,20020 guests, both plans
Laguna accessible shuttle16208:157,60016 guests, until cancelled
Caribe accessible coach50208:3517,200Fits, costs more
Reserve lift shuttle16208:409,80016 guests, the new plan
Premium lift coach40408:2521,000Over the budget
Later airport coach48209:208,000Too late
Saved demo result: six of the ten fictional offers in the Mexico case, prices in pesos. The first plan, MXN 13,800, was approved. After the cancellation, MXN 16,000 was approved again.

Inside the desk

The coordinator works on one screen: the notice with the AI’s reading, the plan with each vehicle’s arrival and price, the approval, and the guest manifest filling as places are reserved.

Snafu’s desk on the fictional Mexico case: the rebooking notice with the AI’s sources underlined, the plan of two vehicles, one shuttle cancelling, and all 36 guests with a place.
The fictional Mexico case in Snafu’s public demo, from the rebooking notice to every guest placed.

How it’s built

Approved work goes into a queue in the database, and a separate worker carries it out, so a crash or a restart does not lose it. If a supplier accepts a reservation but its reply is lost, Snafu checks the saved receipt before trying again, and the guests are not booked twice. A test stops the worker just after a reservation is saved, and another worker finishes the job without a duplicate.

PartToolWhat it doesStatus
PlanningGoogle OR-Tools, PythonFinds the cheapest plan that meets seats, wheelchair places, deadline and budget, or reports none.Built
Approval and the queueFastAPI, PostgreSQLTies each approval to one plan version. A worker carries out the reservations and survives a restart.Built
SuppliersSimulatedReserve and release places. Saved receipts stop a second booking.Built (simulated)
Accounts and dataSupabaseDatabase, sign-in and access rules that keep each company’s records apart.Built
Coordinator’s deskTypeScriptThe case, the plan, the approval and the saved history in one place.Built
Reading messagesOpenRouter, GPT-4.1 miniReal readings saved with their quotes: three supplier messages and the Mexico notice. Capped at USD 1.Pilot
Finding missing transfersPythonA fixed rule flags guests moved overnight with no ride to the airport.Built (local only)
Reviewed counts into planningFastAPI, OR-ToolsA person’s confirmed or corrected counts feed the plan.Built (local only)
HostingRailwayThe API, the worker and the visitor desk run on Railway, with a USD 15 monthly spending limit.Live
Checking the readingsRagas 0.4.3Fifty fictional messages with their answers fixed first: 39 of 50 readings exactly right. Ragas faithfulness 0.819, which cannot see a missing count or a wrong number taken from the message.Run (4 October)

About the demo

The Mexico case is fictional, and no real transport is booked. The AI reading on this page is a saved result, not a new call each time. The demo also holds a cancelled airport coach in Palma and a message with missing details.