Finds and books restaurants worldwide.
Israel via direct API ยท Europe & NYC via browser handoff ยท Michelin + Time Out recommendations baked in ยท Personal Google Maps saves always surfaced first.
| Region | Platform | Method |
|---|---|---|
| ๐ฎ๐ฑ Israel | Ontopo + Tabit | Direct API |
| ๐ท๐ด Romania / Bucharest | Bookingham | Browser handoff (primary) |
| ๐ท๐ด Romania / Bucharest | OpenTable | Browser handoff (fallback, thin) |
| ๐ซ๐ท๐ฎ๐น๐ช๐ธ Europe | TheFork | Browser handoff |
| ๐บ๐ธ NYC | OpenTable + Resy | Browser handoff |
| ๐ Worldwide | Michelin Guide | Direct API (Algolia) |
TheFork note: TheFork does not support Romania โ any Bucharest query silently redirects to Paris (verified 2026-03-21). Use Bookingham for Romania.
- Declarative city registry โ adding a new city is a data change only (
city_registry.py). No code changes needed for common platforms. - Personal saves first โ automatically checks your Google Maps "Want to Go" list (
wanttogo_by_city.json) before any community/editorial source. Your saves are alwayskai_pick โญ. - Multi-platform routing โ detects the right booking system per city automatically
- Michelin filter โ Bib Gourmand + Selected only; stars excluded by default (see Michelin note below)
- Curated lists โ TLV, NYC, Barcelona, Bucharest, Marseille, Genova, Messina, Valletta and more
- No CC stored โ payment always via browser handoff, never raw card data in code
- Israel-first โ Ontopo covers ~1,000 IL restaurants; Tabit covers the rest
| City | Country | Platforms | Michelin | Notes |
|---|---|---|---|---|
| Tel Aviv | ๐ฎ๐ฑ IL | Ontopo, Tabit | โ Not indexed | Maps curated list + Time Out IL |
| New York | ๐บ๐ธ US | Resy, OpenTable | โ | Full Michelin + curated 64-place list |
| Barcelona | ๐ช๐ธ ES | TheFork | โ | Michelin + Bib Gourmand |
| Bucharest | ๐ท๐ด RO | Bookingham, OpenTable | โ Not indexed | Community curated + your Maps saves |
| Marseille | ๐ซ๐ท FR | TheFork | โ | Curated list |
| Genova | ๐ฎ๐น IT | TheFork | โ | Curated list |
| Messina | ๐ฎ๐น IT | TheFork | โ | Curated list |
| Valletta | ๐ฒ๐น MT | Mozrest | โ | TheFork thin; Mozrest primary |
Bucharest has dedicated support with a locally-curated restaurant list:
Booking: Bookingham.ro (dominant local reservation platform) โ OpenTable fallback
Curated picks (community-researched + personal Maps saves โญ):
- NOUA โ best restaurant in Bucharest, modern Romanian, tasting menu (~โฌ75)
- Kaiamo โญ, Vacamuuu โญ, Osho โญ, Nor Sky โญ, Kupaj Gourmet โญ โ personal saves
- Kane, deSoi, Ierbar, La Hambar, Lacrimi ศi Sfinศi, Caru' cu Bere, Hanu' lui Manuc
- Le Bistrot Franรงais โ signed by 2-Michelin-star chef Tom Meyer
- Eggcetera โญ โ breakfast (4.8 rating)
Michelin: Romania is not in the Michelin Guide. No stars, no Bib Gourmand.
ClawCierge automatically surfaces places from your Google Maps "Want to Go" list before any editorial source:
memory/places/wanttogo_by_city.json โ indexed by city (17 cities, 465 restaurants)
memory/places/bucharest.json โ city-specific parsed saves
memory/places/athens.json
memory/places/barcelona.json
Personal saves are marked kai_pick: True and appear first in all curated lists. Community/Reddit research supplements โ it never replaces.
Run python3 personal-data/parsers/parse_wanttogo.py to refresh the index from a new wanttogo.txt export.
pip install requests
export RESERVATION_EMAIL="your@email.com"
export RESERVATION_PHONE="+1234567890"
export GOOGLE_MAPS_API_KEY="your-key" # optionalfrom unified import search_and_format
# Tel Aviv
results = search_and_format("tel_aviv", date="2026-04-01", time="20:00", party_size=2)
# Bucharest
results = search_and_format("bucharest", date="2026-03-27", time="19:30", party_size=2)
print(results)search_and_format()
โโโ city_registry.py โ declarative per-city config (platforms, Michelin, timezone, aliases)
โโโ maps.py โ curated lists (personal Maps saves first, community research second)
โ โโโ wanttogo_by_city.json โ auto-loaded, highest signal source
โโโ recommender.py โ Michelin Algolia + Time Out (indexed countries only)
โโโ ontopo.py โ Israel direct API (Ontopo)
โโโ tabit.py โ Israel direct API (Tabit)
โโโ bookingham.py โ Romania browser handoff (Bookingham.ro)
โโโ thefork.py โ Europe browser handoff (NOT for Romania โ redirects to Paris)
โโโ opentable.py โ NYC + worldwide browser handoff
- Tabit
check_availability()creates a real ~15 min hold โ always calldelete_temp_reservation()on cancel - Ontopo
availability_searchis read-only โ safe to call freely - Michelin doesn't cover Israel or Romania โ fallback to curated Maps lists + Time Out
- TheFork doesn't support Romania โ Bucharest queries redirect to Paris; use Bookingham
- OpenTable worldwide โ US cities use
metroId; international cities use term-based search
| City | metroId |
|---|---|
| New York | 4 |
| Chicago | 2 |
| Los Angeles | 3 |
| San Francisco | 5 |
| Boston | 6 |
| Washington DC | 7 |
| Miami | 8 |
International cities (including Bucharest) use term-based search: ?term=restaurant+{city}.
MIT ยฉ Yonatan Hyatt