Inspiration
Small community organizations — nonprofits, community centers, volunteer groups — handle a constant stream of requests but rarely have staff to properly triage and track them. Requests get missed, follow-ups fall through, and trust erodes. We wanted an agent that could act as a tireless coordinator for these organizations.
What it does
CivicFlow AI automatically classifies, prioritizes, and routes incoming community requests. It runs a background monitor that catches overdue requests and triggers follow-ups. High-impact actions go through a human approval queue, so the agent handles busywork while people stay in control of real decisions. It also generates activity summaries and analytics for coordinators.
How we built it
Built with FastAPI and SQLAlchemy on the backend, React and TypeScript on the frontend, using the Strands Agents SDK to power the agent's reasoning and tool use. The agent runs on Claude via Amazon Bedrock, with a deterministic local fallback model for reliability when Bedrock access is constrained. Deployed on Render (backend) and Vercel (frontend).
Challenges we ran into
Working through AWS Bedrock account throttling on a new account, correctly wiring cross-origin requests between the deployed frontend and backend, and making sure the agent gracefully falls back to a local model when live inference isn't available.
Accomplishments that we're proud of
A fully working end-to-end deployment — live agent triage, human-in-the-loop approvals, and automated follow-ups — all running on a real, publicly accessible URL.
What we learned
(your honest reflection — e.g. deploying AI agents reliably requires designing for graceful degradation, not just the happy path)
What's next for CivicFlow AI
Expanding the knowledge base, adding more granular role-based permissions for approvals, and supporting multi-organization deployments.
Built With
- aws-bedrock
- claude
- fastapi
- python
- react
- sqlalchemy
- strands-agents
- typescript
- vite
Log in or sign up for Devpost to join the conversation.