Semantic search
A diner types “something brothy and warming” and the right bowls rise to the top, whatever they’re called on the menu.
Menu intelligence that reads diner intent and finds the same dish across menus in 100+ languages.
Built for food and benchmarked against the strongest general-purpose models.
Category averages across the three tables below.
| Task | Latimal | OpenAItext-embedding-3-large | Voyage AIVoyage 4 Large | CohereEmbed v4 | AlibabaGTE-large | Nomic AINomic v1.5 | BAAIBGE-M3 | MicrosoftE5-large |
|---|---|---|---|---|---|---|---|---|
| Average3 categories | 0.819 | 0.682 | 0.659 | 0.643 | 0.614 | 0.624 | 0.609 | 0.505 |
| SearchProduction NDCG@10, 4 tasks | 0.869 | 0.455 | 0.447 | 0.451 | 0.427 | 0.422 | 0.408 | 0.411 |
| MatchingMean F1, 7 tasks | 0.851 | 0.758 | 0.741 | 0.741 | 0.699 | 0.739 | 0.718 | 0.704 |
| ClassificationMacro F1, 1 task | 0.738 | 0.833 | 0.789 | 0.737 | 0.716 | 0.710 | 0.701 | 0.399 |
Best F1, 7 tasks.
| Task | Latimal | OpenAItext-embedding-3-large | Voyage AIVoyage 4 Large | CohereEmbed v4 | AlibabaGTE-large | Nomic AINomic v1.5 | BAAIBGE-M3 | MicrosoftE5-large |
|---|---|---|---|---|---|---|---|---|
| Average7 tasks | 0.851 | 0.758 | 0.741 | 0.741 | 0.699 | 0.739 | 0.718 | 0.704 |
| Indian cuisine | 0.817 | 0.745 | 0.718 | 0.732 | 0.705 | 0.731 | 0.711 | 0.680 |
| Global cuisine | 0.867 | 0.828 | 0.783 | 0.829 | 0.695 | 0.732 | 0.716 | 0.716 |
| Beverages | 0.746 | 0.715 | 0.719 | 0.710 | 0.710 | 0.715 | 0.706 | 0.706 |
| Bakery & desserts | 0.755 | 0.735 | 0.715 | 0.691 | 0.682 | 0.684 | 0.684 | 0.688 |
| Portion size | 0.972 | 0.849 | 0.791 | 0.835 | 0.725 | 0.855 | 0.821 | 0.757 |
| Noisy menu | 0.916 | 0.685 | 0.640 | 0.667 | 0.672 | 0.750 | 0.674 | 0.648 |
| Cross-lingual | 0.886 | 0.748 | 0.820 | 0.721 | 0.707 | 0.707 | 0.717 | 0.731 |
Production search, NDCG@10.
| Task | Latimal | OpenAItext-embedding-3-large | Voyage AIVoyage 4 Large | CohereEmbed v4 | AlibabaGTE-large | Nomic AINomic v1.5 | BAAIBGE-M3 | MicrosoftE5-large |
|---|---|---|---|---|---|---|---|---|
| Average4 tasks | 0.869 | 0.455 | 0.447 | 0.451 | 0.427 | 0.422 | 0.408 | 0.411 |
| Food searchNDCG@10 | 0.938 | 0.590 | 0.590 | 0.589 | 0.572 | 0.564 | 0.552 | 0.554 |
| Concept searchNDCG@10 | 0.809 | 0.405 | 0.392 | 0.391 | 0.374 | 0.357 | 0.336 | 0.328 |
| Diet & allergen searchNDCG@10 | 0.802 | 0.172 | 0.161 | 0.165 | 0.135 | 0.132 | 0.132 | 0.136 |
| Noisy searchNDCG@10 | 0.925 | 0.653 | 0.644 | 0.660 | 0.628 | 0.635 | 0.614 | 0.628 |
Diet & allergen search: 4.7x the best competitor.
Macro F1, 1 task. Linear probe on frozen embeddings, 26 menu classes.
| Task | Latimal | OpenAItext-embedding-3-large | Voyage AIVoyage 4 Large | CohereEmbed v4 | AlibabaGTE-large | Nomic AINomic v1.5 | BAAIBGE-M3 | MicrosoftE5-large |
|---|---|---|---|---|---|---|---|---|
| Cuisine classificationMacro F1 | 0.738 | 0.833 | 0.789 | 0.737 | 0.716 | 0.710 | 0.701 | 0.399 |
Measured on equal footing, June 2026. Full benchmarks on Hugging Face → FoodEval leaderboard →
One REST API. Nothing to host.
POST /search
{ "query": "dumplings",
"corpus": ["Gyoza", "Pierogi", "Gazpacho", "Empanada"] }
// => Gyoza (0.95), Pierogi (0.93), Empanada (0.91)
Pick a plan and start a 14-day trial with full API access. Your card is charged only after the trial ends.
Private by default
Your menus stay yours and are never reused.
Built for scale
p50 ~200ms per query, plus bulk endpoints.
Production-ready
Warm-failover standby, 99.5% uptime.
No infra to host
No GPUs and no infra to keep running.
Give your platform search and recommendations that read food the way diners do. Start with a 14-day free trial.