Inspiration
All around us, small nonprofits and community organizations are doing meaningful work feeding families, supporting youth, building safer neighborhoods. But too often, their impact is limited not by passion or ideas, but by access to funding. We saw how complicated, time consuming grant processes drain their already limited resources. So we set out to build a tool that helps these organizations spend less time on paperwork and more time driving real change. Our goal: unlock funding for those already doing the work that matters most.
What it does
The AI Grant Assistant streamlines the entire grant pipeline so nonprofits can focus on impact, not paperwork: *Finds the right grants uses the Perplexity Search API to surface relevant government and foundation opportunities matched to an organization’s profile and programs. *Drafts tailored responses generates clear, persuasive application text from the nonprofit’s mission, metrics, and past work. *Auto-fills official forms securely drives grant portals using Browserbase so applications are populated automatically. *Human in the loop review organizations review and edit generated answers before submission for full control and accuracy. Together, these pieces reduce administrative friction, expand funding access, and help under-resourced groups scale their social impact making cities safer, fairer, and more resilient.
How we built it
Frontend
- React — UI framework for the single-page app (intake forms, dashboard, review flows).
- TypeScript — static typing for safer, more maintainable frontend code.
- Vite — fast dev server and build tool with HMR for rapid iteration.
- TailWind CSS — utility-first styling for quick, responsive UI composition.
- Framer Motion — lightweight animation library for polished micro-interactions.
- @supabase/supabase-js — handles client-side auth and data access using the Supabase anon key.
Backend / API
- Python — primary backend language for ML/automation glue.
- FastApi — lightweight, high-performance web framework for JSON REST endpoints with auto-generated docs.
- Uvicorn — ASGI server for running the FastAPI app in dev and production.
- python-dotenv — loads environment variables during local development.
Database & Auth
- Supabase (Postgres + GoTrue) — hosted Postgres for persistent storage and managed authentication; Row Level Security (RLS) ensures users access only their data.
- PostgreSQL — production DB storing organizations, reps, applications, and submission logs.
- SQLAlchemy — ORM for model definitions and local DB tooling.
- Pydantic — request/response validation and type-safe data models
AI & Search
- LLM (Gemini) — extracts eligibility criteria and maps free-text grant descriptions into structured fields.
- Perplexity Search API — finds and ranks relevant government and foundation grants matched to each nonprofit’s mission and programs.
Browser Automation & Orchestration
- Browserbase — cloud browser automation that runs a real browser session to auto-fill dynamic, JS-driven grant portals. This approach avoids brittle scraping and supports complex multi-step UIs.
Challenges we ran into
- Perplexity Search API — Had difficulty using the Perplexity Search API. Ran into difficulties tuning parameters, questions we needed to ask organizations, and getting actual, relevant grants.
- Gemini API — Had difficulty setting up the Gemini API to parse through, filter, and summarize the results from Perplexity Search API. Needed to do this so that we could show users relevant information regarding grants in a readable format.
- Supabase Setup — Had difficulty setting up Supabase due to a lack of knowledge on how to use the database and difficulties connecting to the database through API keys.
- Browserbase — Had significant difficulty getting the automation to work correctly with our specific use case.
Accomplishments that we're proud of
- Although we didn't get the entire idea fully developed, we are proud of how many different parts of our idea we were able to implement correctly, including the Perplexity Search API, additional AI APIs, and BrowserBase automation.
- Also proud of how much we were able to learn quickly and implement, even though there were many obstacles in our way.
What we learned
- Learned how to correctly implement Supabase and use it for database storage as well as authentication
- Learned new methods of tuning parameters for many different APIs to fit our use cases
What's next for WBRK - Python 3.11 - Grantly
- Fully finishing the product and scaling it to additional specific non-profits.
- Launching the product to help non-profits within Calgary and then looking forward to improvements and further scaling to around Canada.
Built With
- broserbase
- fastapi
- perplexitysearchapi
- postgresql
- python
- react
- supabase
- tailwind
- typescript
- vite
Log in or sign up for Devpost to join the conversation.