Inspiration
I am a foodie at heart - always looking for the next trendy dish. But a lot of times with trends is that they don't always withstand the volatile food establishment market. What starts as a viral social media craze can quickly fade, leaving restaurant owners who over-invested in a single gimmick stranded when customer interest shifts. Building a lasting food business requires looking beyond temporary hype to understand the underlying cravings and loyal customer archetypes that keep doors open. By tapping into real customer feedback rather than short-lived online hype, eateries can identify authentic dining preferences, refine signature menu items, and build sustainable culinary concepts that outlast fleeting viral trends.
What it does (Features and functionality)
BistroPersona is an autonomous multi-agent pipeline that turns your indie eatery's customer reviews into clear psychological buyer personas.
I. Multi-Agent Orchestration Pipeline
- Review Reader Agent: Retrieves and synthesizes customer feedback patterns and raw summaries from Google review links for cafes, bakeries, or restaurants.
- Review Classifier Agent: Validates review data to confirm if a business has legitimate public feedback or lacks active reviews.
- Persona Builder Agent: Constructs a psychological buyer persona (including demography, psychographics, core cravings, and direct quote simulations) and identifies signature menu items.
- Slack Integration Agent: Automatically formats and broadcasts completed persona summaries directly to a targeted Slack channel via webhooks.
II. User & Workspace Management
- Authentication & Profiles: User authentication and profile persistence powered by Firebase Auth and Firestore DB.
- Persona Vault: Allows users to generate, view, filter, save, and delete structured customer personas within a web dashboard.
- Eatery Configuration: Configurable profile settings to store default review links, menu contexts, and target Slack channel IDs.
How I built it (Technologies used)
I. Core AI & Agent Models
- Gemini 3.5 Flash (gemini-3.5-flash): Serves as the Master Orchestration Agent to direct multi-agent function execution, tools, and Slack broadcasting logic.
- Gemma 4 31B (gemma-4-31b-it): Powers individual sub-agent tools (runReviewReader, runReviewClassifier, and runPersonaBuilder) for structured text generation and data classification.
- Google GenAI SDK (@google/genai): Interacts with Gemini/Gemma models via native chat instances and function declarations.
II. Frontend & Core Frameworks
- Next.js (App Router): Powers both server-side actions ('use server') and client-side UI ('use client') components.
- React: Drives dynamic page rendering, state management, and user interactive workflows.
- TypeScript: Implements strong typing throughout client UI interfaces and structured agent schema definitions.
- Tailwind CSS & Lucide React: Custom dashboard UI styling with dark-mode themes and modern iconography (Coffee, Sparkles, Utensils, etc.).
III. Backend, Auth & Database
- Firebase Authentication: Handles user account login, registration, password updates, and session state persistence.
- Cloud Firestore: Stores saved customer buyer personas, eatery configurations, and profile metadata.
III. Third-Party Integrations & Tools
- Slack Web API (@slack/web-api): Enables native WebClient integration to publish formatted buyer persona summaries directly to targeted Slack channels.
Other data sources used
I. User-Provided Operational Context
- Google Maps/Reviews URLs: Provided as user input strings (Google Reviews URL) to identify target local businesses (cafes, bakeries, or restaurants).
- Menu Details & Context: Unstructured text supplied by the business owner to highlight specific menu items, specials, or recipes.
II. Internal Application & System Data
- Channel Routing Identifiers: Direct Slack Channel IDs are passed into function call parameters to target where payload summaries are posted.
Challenges I ran into
I. Strict Multi-Agent Tool Sequencing Getting the Gemini Master Orchestrator to reliably pass context through the entire agent pipeline without dropping conditional execution rules.
II. Schema Enforcement: Ensuring LLM outputs consistently matched strict JSON schemas without extra conversational text required fine-tuning function declarations and pipeline logic.
II. Handling Empty/No-Review Cases: Designing early-exit paths so the system gracefully handles venues with zero reviews or missing data without breaking downstream steps.
Accomplishments that I'm proud of
I. Seamless Multi-Agent Execution: Created a smooth pipeline that turns raw review links into fully formed psychological profiles in seconds.
II. Enterprise Slack Integration: Automated the conversion of JSON data into formatted, readable Slack updates.
III. Complete Web Dashboard: Built an end-to-end interface where users can manage profiles, run live persona builds, and search saved customer profiles.
What I learned (Findings and learnings)
I. Technical and Architectural Learnings
- Small Models Enhance Scoped Tools Delegating specific micro-tasks (like raw review summarization, JSON schema extraction, and validity checking) to lightweight models like Gemma 4 31B reduces latency while reserving Gemini 3.5 Flash for high-level multi-agent orchestration.
- Strict Schema Guardrails Prevent Downstream Failures Enforcing rigid JSON output requirements inside prompt instructions and tool interfaces prevents broken payloads when passing data between sub-agent tools in a sequential pipeline.
- Dynamic Short-Circuiting Saves Compute Intercepting bad or empty input early (e.g., stopping the execution loop if runReviewClassifier yields hasReviews: false) prevents unnecessary downstream calls to the persona generator and Slack tools.
II. Operational and User Friction Insights
- Push over Pull Workflows Automating direct output delivery straight to team channels via Slack Webhooks removes the friction of forcing business operators to log into a separate dashboard to read insights.
- Grounding Unstructured Data Pairing unstructured public review sentiment with specific, first-party menu context yields significantly more realistic buyer archetypes and action-oriented marketing soundbites.
What's next for BistroPersona
I. Competitor Benchmark Audits Adding sub-agents to compare a venue's personas directly against local competitors to highlight market opportunities.
II. Automated Marketing Copy Generation Generating tailored ad copy, menu descriptions, and email campaigns based on identified buyer cravings.
III. Multi-Platform Integrations Expanding persona integration to Google Sheets and LinkedIn.
Built With
- cloudfirestore
- firebaseauthentication
- firebasehosting
- gemini-3.5-flash
- geminiapi
- gemma-4
- genaisdk
- google-cloud
- next.js
- react
- slackwebapi
- tailwind
- typescript

Log in or sign up for Devpost to join the conversation.