Skip to content

yhyatt/ClawCierge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

17 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

ClawCierge โ€” Restaurant Search & Booking

ClawCierge ๐Ÿฆž๐Ÿฝ๏ธ

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.

Python License: MIT OpenClaw Skill


Platform Coverage

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.


Features

  • 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 always kai_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

Supported Cities

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

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.


Personal Maps Integration

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.


Setup

pip install requests
export RESERVATION_EMAIL="your@email.com"
export RESERVATION_PHONE="+1234567890"
export GOOGLE_MAPS_API_KEY="your-key"  # optional

Quick Start

from 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)

Architecture

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

Important Notes

  • Tabit check_availability() creates a real ~15 min hold โ€” always call delete_temp_reservation() on cancel
  • Ontopo availability_search is 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

OpenTable Metro IDs (US)

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}.


License

MIT ยฉ Yonatan Hyatt

About

๐ŸฆžFinds and books restaurants worldwide โ€” Israel via direct API, Europe and NYC via browser handoff, with Michelin/Time Out recommendations baked in

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

No contributors

Languages