Automated Feedback Aggregator Development

Job ID: 40430272

Budget: ₹1,500 – ₹12,500 INR

Project B — Daily Customer Feedback Aggregator
We need an automation engineer to build a scheduled daily-data tool that aggregates customer reviews and feedback across our restaurant outlets. The tool pulls reviews from public and login-protected platforms, classifies them, writes to a Google Sheet, and posts a daily PDF summary to Slack.
Strong preference for a stack that uses Claude Desktop with MCP / browser-control (or Playwright / Puppeteer with cookie-session reuse) for partner dashboards that require authentication. Pure API / HTML scraping is fine for public sources like Google Maps.
The tool must be production-grade: idempotent, monitored, fault-tolerant, with per-platform fault isolation so a failure on one platform does not block the others.
Source Platforms

Swiggy — partner dashboard (login required)
Zomato — partner dashboard (login required)
Google Maps / Google Business Profile — public + GMB API for owner replies
Magicpin — partner dashboard (login required, if applicable)
EazyDiner / Dineout — partner dashboard (login required, if applicable)

Final platform list to be locked during kick-off. Build must be modular so adding or removing a platform is a single-file change.
Step 1 — Extract Reviews
For each outlet, pull all reviews / ratings / comments posted on yesterday's date. Capture:

Outlet name
Platform (Swiggy / Zomato / Google / etc.)
Review timestamp (IST)
Customer name (or display name shown on platform)
Star rating (1–5)
Review text / comment
Order ID (where available — Swiggy / Zomato)
Items ordered (where available)
Delivery rating (separate from food rating, where shown)
Direct review URL (where available)

Step 2 — Classify and Tag

Sentiment: Positive / Neutral / Negative — derived from rating and / or text analysis
Category tag: Food quality / Delivery / Packaging / Pricing / Service / Other — keyword-based classifier, configurable list
Flag urgent reviews: rating ≤ 2 OR text contains keywords like sick, refund, hair, stale, cold, missing, complaint

Step 3 — Append to Google Sheet

Single master Google Sheet — append only, never overwrite
Run Date column at the start of each row
Separate worksheet tab per platform OR a single tab with Platform column — confirm during kick-off
Maintain consistent headers across runs
Service-account based authentication (no OAuth user prompts in production)

Step 4 — Share PDF via Slack

Daily PDF summary covering: total reviews, average rating per outlet, sentiment split, top 5 negative reviews verbatim, urgent-flagged reviews highlighted
Filename format: Customer_Feedback_Daily_DD-MMM-YYYY.pdf
Auto-post to designated Slack channel
Separate alert ping (with @channel) if any urgent-flagged reviews were found that day

Step 5 — Automation

Schedule: daily at 9:00 AM IST
Slack failure alerts on: per-platform scraping failure, zero-results, sheet append failure, PDF / Slack upload failure
Per-platform fault isolation — if Swiggy fails, Zomato and Google must still run and complete
Each alert must include: timestamp (IST), failed platform, failure stage, and full error message / stack trace
Retry logic for transient network failures (3 retries with exponential backoff)

To Confirm Before Build

Outlet list and partner-dashboard logins for Swiggy / Zomato / Magicpin / EazyDiner
Google Business Profile owner access for each outlet
Master Google Sheet URL and service-account permissions
Slack workspace, target channel, and bot token / webhook