Inspiration

During disasters, outages, or everyday shortages, neighbors often have spare resources — generators, water, tools, rooms, food — that go unused while others nearby are struggling. There's no fast way to know who has what and who needs what, right now. We wanted an agent that quietly closes that gap.

What it does

Hearth lets neighbors post what they can offer or what they need. A Strands agent automatically searches for a match (same resource type, same area preferred), confirms it, and drafts the notification for both people. It runs quietly in the background and only surfaces when there's a real match or an unmet high-urgency need.

How we built it

The core is a Strands Agent with four custom tools: register_resource, register_need, find_match, and notify_match. Gemini (gemini-2.5-flash) is the model provider. A Flask API connects a custom HTML/CSS/JS front end to the agent, and the front end polls for live updates so matches appear in real time on the board.

Challenges we ran into

Getting model access approved on a brand-new AWS account was blocked by Bedrock's new-account restrictions, so we switched to Gemini as the model provider to stay unblocked and keep building. We also iterated on the UI multiple times to get an interface that felt calm and trustworthy rather than like a typical SaaS dashboard.

Accomplishments that we're proud of

A fully working end-to-end flow: post a need, get matched, and see it happen live — with a UI and architecture diagram designed specifically around the "quiet agent" concept.

What we learned

How to structure a Strands agent's tools and system prompt so it acts autonomously but still knows when to hand control back to a human.

What's next

Real notification delivery (SMS/email via SNS), a map view, and persistent storage (DynamoDB) instead of a local JSON file.

Built With

Share this project:

Updates

Submission history