What it does
Roots gives people three reasons to stay.
1. Hours that count. Roots checks each volunteer's profile and finds who could gain a benefit by coming back. The front page shows it in one sentence and four boxes: 3 FFA students, 4 CalFresh volunteers, 20 students who fit the CalAgPlate grant, and 8 first-timers not back yet. 12 volunteers could gain a benefit. Each box shows what they get, what to do, and the source.
2. A personal nudge. A new one-question-per-screen sign-up in Garden Steward (the Guild's own platform) asks what people enjoy, when they are free, where they work, and whether their hours could count. Every answer lands on their profile. One click on "Tell the people" opens a ready-written SMS for the matched people. A coordinator edits it and presses Send. The dashboard chat confirms it, and the message arrives in a Telegram demo inbox that stands in for the volunteer's phone. Coordinators can also text Roots on Telegram: "What needs attention today?"
3. Money for the garden. Roots finds funding the community can put to work:
- Microsoft employee volunteer matching: $25 for every hour an employee volunteers. 3 regulars work there, which is why the sign-up asks where people work.
- CalAgPlate education grant: $2,500 to $10,000, closes 2 November 2026. 20 recorded students fit.
- Funded fellows: College Corps and California Climate Action Corps, with windows opening in 2027.
More money means more volunteer days, and more chances to come back.
Nothing is ever sent without a person's go-ahead.
How we built it
- Roots dashboard: a plain JavaScript single-page app with no build step. Benefit and programme matching uses fixed rules on what people recorded, never their interests, so results are steady and checkable.
- Roots bridge: Python standard library only, with one SQLite file. Google Gemini (gemini-3.5-flash-lite) runs the chat with function calling. Two Telegram bots: one is the coordinator's assistant, the other is the demo inbox. The send tool is only offered after a clear "send it", and every send is fingerprinted so it never repeats.
- Garden Steward onboarding: in the Guild's open-source stack. The Strapi 5 backend gets 12 new profile fields and 4 endpoints. The Vue 3 front end gets a one-question-per-screen sign-up and new fields on the coordinator's volunteer panel. Onboarding answers, such as CalFresh status, are visible to garden managers only.
- Programme research: 11 routes with 22 source links, checked on 24 and 25 October 2026.
- How the work was done: Josh Madeiros built Roots with AI coding agents. OpenAI's Codex built the first Roots base; Claude Code built the benefits layer, the Today page, Tell the people, the onboarding data and the Garden Steward work.
What is real and what is demo: the matching, drafts, chat, Telegram delivery and the Garden Steward sign-up all run live. All 35 people are fictional. SMS and email are not connected yet, so "send" goes to the owner's Telegram demo inbox only. Some Today feed items and the monthly history are demo data. LinkedIn is never read or scraped; Roots only keeps a link the volunteer types. The dashboard is hosted at roots-ebpg.vercel.app; the AI assistant and Telegram bots run from the laptop during the demo.
Challenges we ran into
- Keeping matches honest. Interests are not eligibility, so Roots only matches on recorded circumstances, and every gap shows as "still to establish".
- Making send safe in a live demo. We split the assistant and the inbox into two bots, kept delivery owner-only, and required an explicit send.
- Keeping the front page simple. We tried five layouts in one morning and cut it to one sentence and four boxes.
- Rules change by place. Districts, counties and colleges set their own rules, so each programme stores its sources, a check date and who must approve it.
Accomplishments that we're proud of
- Benefits lead: the front page opens with who could gain something by coming back.
- A full live loop, from a noticed box to an editable SMS to a real phone's demo inbox, in under a minute.
- Onboarding built into the Guild's own platform, not a side app.
- 11 programme routes with 22 source links.
- A bridge with no dependencies, and an assistant that cannot send unless you say send.
What we learned
- A concrete benefit ("your hours count") is a stronger reason to return than a reminder ("please come again"). We have not tested this with volunteers yet.
- Eligibility depends on a person's circumstances, not their interests.
- Honest labels make a demo easier to trust.
- A person must stay in control of outreach: draft, review, then send.
What's next for Roots
- Check whether the Guild can apply for CalAgPlate before 2 November, and help draft the proposal.
- Connect drafts to Garden Steward's existing SMS bot, with consent required on every real send.
- Send Garden Steward sign-ups straight into Roots.
- Host the assistant and bots, with the Guild's name and Oakland data.
- Confirm Microsoft matching eligibility through Benevity.
- Add hour tracking and paperwork for CalFresh, FFA, college credit and the State Seal.
Built With
- claude
Log in or sign up for Devpost to join the conversation.