Hotel Explorer

One REST API over 8+ luxury suppliers — Four Seasons, Mandarin Oriental, Expedia, Accor and more. Reverse-engineered undocumented provider APIs and built resumable crawlers: 900+ properties, 50,000+ records across 25 tables.

TYPE
Travel intelligence platform
ROLE
Technical intern
BUILT
Jun – Sep 2026
STATUS
Internal · VARA5
TECH STACK
Node.jsTypeScriptPostgreSQLPythonDockerReverse engineeringResumable crawlers
01

Eight suppliers, eight dialects

Luxury hotel suppliers like Four Seasons, Mandarin Oriental, Expedia and Accor each expose availability differently, and several don't document their APIs at all. The product needed one consistent way to ask every one of them the same question.

02

One contract over all of them

I reverse-engineered the undocumented provider endpoints and wrapped every supplier behind a single REST API: search, resolve a reference, fetch rates. The rest of the product only ever talks to that contract.

  • Per-provider adapters on the fastest available path
  • Normalised currencies and room data
  • Clear errors when a supplier is down instead of silent gaps
03

Crawling without starting over

Static hotel data is pulled by resumable crawlers, so a failure halfway through resumes where it stopped. That harvest now covers 900+ properties and 50,000+ records across 25 tables.

04

A voice that remembers you

On the same platform I built a real-time voice personalization engine on OpenAI Realtime. Moving preference extraction to a single end-of-call pass cut LLM calls per conversation from 30 to 1 and captured 47% more data points.

05

Results

8+ suppliers behind one API900+ properties, 50,000+ recordsLLM calls per call: 30 → 1+47% captured preferences20k-line React migration with zero drift
FAQ

Questions people ask

Is Hotel Explorer public?

No. It's an internal VARA5 product, so this page covers the engineering rather than screenshots.

What does reverse engineering mean here?

Watching how supplier websites talk to their own back ends, then calling those same endpoints directly and reliably instead of scraping rendered pages.

NEXT CASE STUDYPulse 112AI emergency dispatch with real-time voice triage and emotion analysis at sub-second latency Read it

GOT AN IDEA WORTH BUILDING?
LET’S TALK IT THROUGH

Start a conversation

Open to full-time roles, internships and freelance builds.

Tell me what you’re working on.