Inspiration

We wanted to revolutionize enterprise travel procurement by combining a calm, premium user interface with a powerful, autonomous AI backend. Most travel tools feel dense, outdated, and transactional, so we designed Galileo’s frontend to feel trustworthy and intelligent, making complex workflows simple. Behind the scenes, we were inspired by the need for automation. We wanted a pluggable backend that lets AI agents negotiate hotel rates autonomously, capable of orchestrating complex campaigns backed by a highly resilient, globally shared memory state.

What it does

Galileo is an autonomous enterprise travel procurement platform. On the surface, it provides a clean, aspirational landing experience that showcases live hotel pricing, market trends, and real-time travel intelligence. Under the hood, it is powered by a sophisticated orchestration of FastAPI endpoints and LangGraph worker sessions. These AI agents autonomously call hotels (streaming STT→LLM→TTS) and negotiate via parallel email threads. The system extracts quotes, decides on counter-offers using strict safety guardrails, and, most importantly, leverages a high-speed, persistent memory layer to instantly share context across all active agents and sync outcomes back to the main backend.

How we built it

Frontend: We used Next.js, React, Tailwind CSS, Framer Motion, and Recharts. We wove together a custom visual system with API-connected live market data, dynamic hero experiences, and responsive layouts.

Backend & Core Infrastructure: We built on Python 3.11+ and FastAPI, utilizing LangGraph for state machines. We integrated a massive AI and communications stack, including OpenAI (GPT-4o/mini) for the negotiation brain, AssemblyAI (Speech-to-Text), ElevenLabs (Text-to-Speech), Twilio (Voice), and Mailgun (Email).

The Memory Layer: We engineered a highly robust persistent memory layer enabled through a PostgreSQL database. This database continuously executes a bidirectional sync with a Redis cache. Every single worker agent actively reads from and writes to this shared Redis cache. This architecture provides lightning-fast recall and guarantees that all agents, regardless of the channel they are operating on, share the exact same real-time information.

Challenges we ran into

Building a cohesive system brought unique challenges to both ends of the stack. On the frontend, we struggled to balance premium visual polish with the clarity required to communicate dense procurement data quickly, ensuring live analytics didn't break the design system. On the backend, managing state across disparate channels was incredibly tough. Keeping the bidirectional sync between PostgreSQL and Redis perfectly aligned meant actively managing race conditions so concurrent agents always accessed the absolute latest state. We had to balance long-lived email threads with short-lived voice sessions while preventing duplicate hotel outreach. Additionally, enforcing strict AI guardrails without breaking natural conversational flow and ensuring webhook idempotency proved technically demanding.

Accomplishments that we're proud of

We are incredibly proud of building a platform that feels like a real, enterprise-ready product. Visually, Galileo boasts a distinctive identity that proves its value through live market signals and polished interactions.

Technically, we built a deep foundational system from scratch. Our standout technical achievement is the persistent shared memory architecture. By engineering the continuous, bidirectional sync between PostgreSQL and Redis, we successfully executed channel-parallel orchestration. This shared-memory framework enables our AI agents to handle streaming voice pipelines (with barge-in handling) alongside complex email threads with instantaneous cross-channel recall. An agent on a phone call knows exactly what another agent just processed via email in real-time, completely eliminating cross-session duplicate outreach while maintaining a clean, pluggable architecture.

What we learned

We learned that credibility is built from the ground up. Small frontend choices such as spacing, contrast, and typography drastically alter how trustworthy a platform feels, and designing around live API data early is much harder than using static mocks. On the backend, we discovered that LLM prompts require strict tuning. We also learned the hard way that webhook idempotency, signature checks, and separating the core orchestration from the active execution loops are absolute lifesavers for maintainability.

What's next for Galileo

In the short-term future, we plan to add support for airlines, and in long term, we plan on integrating our solutions on both sides of the negotiations for an industry first A-to-A pipeline for a fully automated process.

Built With

Share this project:

Updates