Analyze a menu photo or URL for a lead account
Analyze a menu (photo or webpage) for a pipeline lead. Transcribes items and prices, identifies food gaps and burrito opportunities, and optionally saves results to Supabase.
When the user invokes /analyze-menu "Business Name", follow these steps:
Ask Carson for the menu source. Options:
"{name}" Bozeman menu and WebFetch resultsIf Carson provides an image path right away (in the same message), skip asking and proceed.
Read/fetch the menu and extract:
Display a formatted analysis:
## {Business Name} — Menu Analysis
### Menu Items
| Item | Price | Category | Competitive? |
|------|-------|----------|-------------|
| ... | ... | ... | ... |
### Breakfast Program
- Has breakfast: {yes/no}
- Protein breakfast: {yes/no}
- Grab-and-go: {list or "none"}
### Competitive Products
{list of items that compete with burritos}
### Price Point
- Average food item: ${x}
- Suggested retail price for our burrito: ${x} (based on their pricing tier)
- Margin for them at that price: ${x} per unit
### Food Gap & Opportunity
{Analysis of what's missing and how burritos fit}
Ask Carson: "Save this to the account? (y/n)"
If yes, construct the food_program portion of the research JSON and save:
cat <<'MENU_JSON' | node scripts/save-research.js --find "Business Name"
{
"business_name": "...",
"research_date": "...",
"food_program": { ... },
"google_data": {},
"contacts": [],
"review_sentiment": {},
"digital_presence": {},
"volume_estimate": {},
"synthesis": { "ai_summary": "", "sales_angle": "", "cold_email_draft": "", "priority_score": "medium" }
}
MENU_JSON
Note: This will only update the food-related fields. Existing research data on other fields won't be overwritten since save-research.js only sets non-empty values.