Building Guru: Automated Flight Search

Feb 26, 2026

At Ascend, every flight search was manual. An agent would receive a request — "JFK to London, business class, next Tuesday, prefers United" — and spend 20 to 30 minutes on ITA Matrix trying different routing combinations, dates, and cabin mixes. For a single request, that's fine. At scale, it's a bottleneck that limits how many clients you can serve and how thoroughly you can search.

Guru automates this. A natural language request goes in, and ranked flight options come out. Instead of one person searching one route at a time, Guru explores 110+ routing permutations across multiple providers simultaneously — variations that would take an agent hours to check manually.

The results speak for themselves: up to 70% savings vs retail business class fares, delivered in minutes rather than half an hour.

How it works

Requests start as plain language. Guru parses them into structured search parameters — origin, destination, cabin, dates, airline preferences — and fans out across providers.

guru
JFK to London, business, next Tuesday, prefers United
Parsed request
Origin
JFK (New York)
Destination
LHR (London)
Cabin
Business
Date
Tue 4 Mar 2026
Preference
United / Star Alliance

Most online travel agencies search direct routes on a single provider. Guru takes a different approach: it explores far more routing permutations across multiple airports and providers, looking for pricing inefficiencies that only appear when you search creatively. Think of it like TrainLine's split ticketing for UK trains — where buying two separate tickets for the same journey can be significantly cheaper than one through ticket. The same principle applies to flights, but across a much larger search space.

Results

Results are ranked three ways: Best, Cheapest, and Fastest. The "Best" ranking is personalised to each client — factoring in airline loyalty programmes, cabin preferences, and routing tolerances. An MileagePlus Gold member who values nonstop United flights gets different rankings than someone who just wants the lowest price.

Ranked for this client: prefers United, MileagePlus Gold
United
UA 100
JFK → LHR · Nonstop · 6h 50m
$1,840
$5,800
68% saving
Best match
British Airways
BA 178
JFK → LHR · Nonstop · 7h 10m
$2,120
$6,200
66% saving
Delta
DL 1
JFK → LHR · Nonstop · 7h 05m
$2,290
$6,400
64% saving

The pipeline

The full workflow runs end-to-end without manual intervention. Requests are pulled from Asana, searched across providers, ranked, and the top options are posted to Slack — all automatically.

Ingest
Asana
Requests pulled automatically
Search
110+
routing variations explored
Rank
Best 3
personalised to client
Deliver
Slack
Quotes posted in minutes

An agent picks up the Asana task, Guru searches 110+ routing variations across ITA Matrix and Amadeus, ranks the best options against that client's preferences, and posts the results to Slack. The agent reviews and sends the quote. What used to take 20-30 minutes of searching now takes about 4 minutes of compute time and a quick human review.

Under the hood

Search providers
ITA Matrix (browser automation), Amadeus (GDS API)
Infrastructure
Browserbase (90 concurrent sessions), Railway (compute & deployment)
Architecture
TypeScript monorepo (18 packages), SSE streaming (progressive results)
~4 min
per search
110+
variations per request
90
concurrent browser sessions

ITA Matrix doesn't have an API, so Guru uses browser automation through Browserbase to run up to 90 concurrent search sessions. Amadeus provides GDS-level access via API for a second source of pricing data. Both feed into the same ranking engine.

The codebase is an 18-package TypeScript monorepo — separate packages for each provider, the ranking engine, request parsing, Asana integration, and Slack delivery. SSE streaming means results appear progressively as each provider returns data, rather than waiting for everything to finish.

Each search takes roughly 4 minutes end-to-end, exploring 110+ routing variations per request across 90 concurrent browser sessions.

Where we are now

Guru is in production, handling live client requests. It's already replaced the manual search workflow for the majority of bookings.

On the roadmap: airline and alliance filtering (so clients can restrict searches to their preferred programmes), passport and visa eligibility checks (automatically excluding routings that require transit visas a client doesn't hold), and deeper integration with client preference profiles so rankings improve over time.

The goal is straightforward: every search should be faster, cheaper, and more thorough when Guru does it.