01The same dish, over and over
Gobbles reads restaurant menus from photos, spreadsheets and typed lists, then enriches every dish with ingredients, allergens, spice level and more. Many dishes appear on many menus. Enriching "Paneer Butter Masala" separately for every restaurant would waste time and money, and could produce slightly different answers for the same dish.
02One key per real dish
The catalog identifies a dish by its normalised name plus whether it's vegetarian. Normalising means lowercasing, stripping punctuation and collapsing whitespace, so "paneer butter masala!!" and "Paneer Butter Masala" resolve to the same entry.
Every stage checks the catalog first. A hit is reused immediately, with no AI call.
03Allergens are merged, never replaced
Sharing data raises the stakes: a bad update could remove an allergen for every restaurant at once. So when a catalog entry is updated, allergen sets are merged in the database. A later run can add an allergen; it can never take one away.
Merged, not replaced. Dairy stays.
04The other guardrails around it
- A fixed 14-class contract with regional synonyms, so "paneer" and "ghee" map to dairy and "maida" maps to gluten.
- Conservative extraction: when the model is unsure, the allergen is included.
- Anything outside the allowed vocabularies is dropped rather than stored.
- Allergens are kept out of the embedding text, so a "dairy-free" search can't match dairy dishes by wording.
- A restaurant's manual correction locks that item against automatic overwrites.