otto
A co-planner, not a chatbot.
How Otto turns a paragraph into three real trip options.
Architecture
Two phases,
one workflow.
Phase one: the planner
Otto reads the group’s constraints — who’s coming, when, budget ceiling, travel radius, vibe — and maps the possibility space. It identifies three destination candidates and explains why each fits the intersection of constraints.
If there are trade-offs between budget and distance, or between kid-friendliness and nightlife, Otto surfaces them explicitly rather than silently optimizing for one.
Powered by Claude Opus · Anthropic’s most capable reasoning model.
Phase two: the synthesizer
Each candidate gets enriched into a full trip card. Specific lodging within the household budget. Anchor activities for the group composition — hikes for the active families, restaurants for the foodies, downtime options for the group that doesn’t want every hour planned. Estimated cost per household, broken down transparently. The output is three ready-to-book options, not three starting points for more Googling.
Powered by Claude Sonnet · Speed and specificity.
Differentiators
What makes this different.
Real places, real prices.
Otto doesn't generate fictional hotels or placeholder pricing. It references real lodging, real nightly rates, real availability windows. When a cabin sleeps eight and costs $280 a night, that's a verifiable number, not an estimate rounded to sound plausible.
Honest reasoning.
Every option comes with a paragraph explaining why Otto picked it — and what the trade-offs are. If the best option exceeds the budget by $200 but has the best lodging for the group, Otto says so. No hidden rankings, no sponsored placements, no cheerful agreement with constraints that don't have a good answer.
Cost-controlled.
Every research run is metered and tracked. Hard cap per trip, per household. No runaway API bills, no surprise charges for a second round of research. The cost of intelligence is built into the product price, not passed through as a variable.
Validated output.
Every response passes through strict schema validation. If the output doesn't match the expected structure — missing a cost estimate, hallucinating an amenity, omitting a date range — Otto retries or falls back gracefully. The product never surfaces a broken card.
The pipeline
From paragraph to trip card.
Your input
Natural language
Planner
Claude Opus
3 candidates
Destinations + reasoning
Synthesizer
Claude Sonnet
3 trip cards
Ready to decide
a real example
What Otto returned.
“fall weekend, three families, four hours from LA, $1,500/family”

Sedona
~$1,650/familyRed rock cathedrals, golden light, juniper-scented evenings.
L’Auberge de Sedona
$495/night · hot tub · creekside
Activities
- Cathedral Rock trail (2h)
- Devil’s Bridge (2.5h)
- Slide Rock (2h)
Restaurants
Elote Cafe, Mariposa, The Hudson
“Sedona in mid-October is peak: highs around 78, red rock glowing in late light, cottonwoods starting to turn.”
Learning
The feedback loop closes with every trip.
Feedback on trip cards — which option the group picked, which constraints mattered most, what the trip actually cost vs. the estimate — feeds back into prompt engineering and model selection. Every trip makes the next trip’s research sharper.