Skip to content

Monica

An AI-powered WhatsApp bot that automates San Francisco 311 service requests.

Core trick

Gemini drives multi-turn WhatsApp clarification from text, images, and video, then Playwright submits the SF 311 form automatically.

Tags

Description

An AI-powered WhatsApp bot that automates San Francisco 311 service requests. Users report issues (potholes, graffiti, illegal dumping) via WhatsApp messages, and the system uses Gemini AI to analyze the conversation, extract location and issue details, and automatically submit requests to SF 311. The project includes: - Multi-turn conversational AI for clarifying issue details and location - Multimodal support: analyzes text, images, and video to understand what's being reported - Automated browser-based form submission using Playwright - Real-time dashboard showing message processing and request status - Integration with Twilio WhatsApp API The bot simplifies civic engagement by allowing residents to report issues through natural conversation instead of complex web forms.
kbhuw/agent-311★ 00 forksJavaScriptMITCreated Oct 18, 2025 · last push Oct 19, 2025

README excerpt

<div align="center">
<img width="1200" height="475" alt="GHBanner" src="https://github.com/user-attachments/assets/0aa67016-6eaf-458a-adb2-6e31a0763ed6" />
</div>

# SF 311 WhatsApp Bot Dashboard

A full-stack application that demonstrates an AI-powered WhatsApp bot for submitting San Francisco 311 service requests. The system uses Twilio for WhatsApp messaging and Gemini AI for intelligent message analysis.

View your app in AI Studio: https://ai.studio/apps/drive/13ZxrTpztNKibK7zwxXn9Joto0oFEonoB

## Features

- 🤖 **AI-Powered Analysis**: Gemini AI analyzes WhatsApp messages to extract service request details
- 📱 **WhatsApp Integration**: Receive and respond to messages via Twilio WhatsApp
- 📊 **Real-time Dashboard**: React-based dashboard showing message processing and request status
- 🏙️ **311 Service Requests**: Automated submission of various SF 311 request types (potholes, graffiti, abandoned vehicles, etc.)

## Quick Start

**Prerequisites:**
- Node.js 18+
- Python 3.9+

1. **Install dependencies:**
   ```bash
   npm run install:all
   ```
   This installs both frontend (npm) and backend (Python) dependencies.

2. **Set up environment variables:**

   Create a `.env.local` file in the project root:
   ```env
   GEMINI_API_KEY=your_gemini_api_key_here
   PORT=3001
   ```

   Get your Gemini API key from: https://aistudio.google.com/app/apikey

3. **Run the application:**

   **Both frontend and backend (recommended):**
   ```bash
   npm run dev
   ```
   - Frontend run

Team