FeedOps AI — Devpost Submission
Elevator Pitch
A multi-agent system that automates Google Actions Center Ordering Redirect onboarding — for aggregators and restaurants alike.
Inspiration
This project began with a real request: Ajla Drici, CEO of Caterlush, asked for help setting up Google's Ordering Redirect integration for her business. In doing that work, I discovered the real-world operational pain behind it — Google exposes no API to confirm a feed was ever accepted. The only way to know is to read the Partner Portal yourself, every day, by hand. That gap is what FeedOps AI was built to close.
What it does
FeedOps AI automates the full Google Actions Center Ordering Redirect journey for both sides of the relationship:
For aggregators: bulk restaurant roster upload with automatic Google Places matching and a human-in-the-loop triage queue for low-confidence matches, entity/action/service feed compilation and SFTP delivery, feed status verification, conversion tracking compliance (Google's 3-events-in-7-days rule), and live tracking across all 7 onboarding stages — plus an optional 5-step Menu Feeds track.
For merchants: a self-service portal to build their own restaurant profile, live validation against Google's requirements (including detecting a missing Google Business Profile before it becomes a rejection), a compliance scorecard powered by the same SchemaAuditorAgent the aggregator side uses, and Gemini Vision-based menu extraction straight from a photo.
Across both: a live activity audit log (correctly scoped so merchants see only their own actions), and "Ask FeedOps" — a RAG-grounded support agent that answers onboarding questions with real playbook citations, including a screenshot-insight mode that reads an uploaded Partner Portal screen and grounds its explanation in the same playbook.
How we built it
Backend: FastAPI + an MCP server (9 tools, stdio transport), orchestrating 4 Google ADK agents — EntityMatcherAgent, SchemaAuditorAgent, ConversionSentryAgent, and a RAG-grounded support agent — backed by Gemini 3.6 Flash for reasoning, multimodal vision, and RAG synthesis, and Gemma 4 for semantic column mapping on bulk uploads. Google Places API resolves and guards against closed merchants. Firestore is the single source of truth. Scheduled Cloud Run Jobs run the daily feed push and weekly conversion sweep.
Frontend: React + TypeScript + Vite, with Firebase Auth separating aggregator and merchant roles.
Challenges we ran into
The core challenge is structural: Google gives no API to confirm a feed was accepted, so the entire system has to work from self-reported, human-verified state instead of a clean webhook — which shaped almost every design decision, down to the Feed Screenshot Analyzer that reads the Partner Portal visually because there's no other way to check. We also found and fixed a real cross-tenant data leak during development, where a merchant login could see the full aggregator-wide activity feed instead of just their own actions.
Accomplishments that we're proud of
A genuinely dual-sided product — the same compliance engine (SchemaAuditorAgent) serves both the aggregator's bulk operations and a single merchant's self-service flow, with no duplicated logic. And an AI agent that grounds every answer in the real onboarding playbook, with citations, instead of hallucinating Google's requirements.
What's next for FeedOps AI
Deeper case-memory RAG so the support agent learns from past resolved issues, not just the static playbook, and expanding Menu Feeds automation to full parity with the Ordering Redirect track.
Built With
- fastapi
- firebase
- firestore
- gemini
- gemma
- google-adk
- google-cloud
- google-cloud-run
- google-places
- mcp
- python
- rag
- react
- typescript
- vite
Log in or sign up for Devpost to join the conversation.