Inspiration
Finding and applying for grants is already difficult. For non-profit organisations (NPOs) with limited manpower, the process becomes even more painful. Staff often spend countless hours searching for grants, reading eligibility criteria, evaluating fit, and tracking deadlines, time that could be far better spent caring for patients and communities, where human attention matters most.
Worse still, many suitable grants are missed entirely due to tight deadlines or unclear eligibility requirements.
This is why we created GrantAI.
With GrantAI, organisations simply describe their project idea and funding needs. From there, GrantAI handles the rest, so NPOs can focus on what truly matters.
What it does
GrantAI is a fully automated AI-powered grant discovery and evaluation platform.
- It continuously scrapes online grant portals (such as oursggrant.com) and populates a structured grant database.
Using a Retrieval-Augmented Generation (RAG) pipeline, GrantAI cross-analyzes:
- the user’s project intent and funding needs
- against the grant’s intended applicants, objectives, and constraints
The system intelligently surfaces the most relevant grants for each user.
GrantAI is scalable and autonomous, capable of handling hundreds or even thousands of grants with minimal human intervention.
Unsure whether a specific grant is right for you? GrantAI includes a conversational chat agent, allowing users to ask questions and gain clarity before applying, ensuring they pursue the right opportunities.
How we built it
Frontend: Built with Next.js, providing a clean and responsive user interface for submitting grant needs and interacting with the AI agent.
Backend & AI Pipeline:
- Implemented a RAG-based retrieval system
- Grants are scraped, cleaned, and converted into vector embeddings
- User queries are also embedded and matched via semantic search
- A Large Language Model (LLM) performs the final reasoning and recommendation
Web Scraping:
- Used Puppeteer to autonomously scrape grant data from multiple websites
- Scraping runs periodically to keep the database up to date
Infrastructure & Models:
- Gemini for embeddings and LLM reasoning
- Supabase for database storage and backend services
This hybrid approach ensures accuracy by combining semantic filtering with LLM judgment, rather than relying on embeddings alone.
Challenges we ran into
Web scraping complexity: Puppeteer scraping was challenging due to:
- Slow execution speeds
- Handling dynamic websites
- Ensuring reliability across different grant portals
Compliance concerns: We had to be careful to ensure our scraping approach complies with:
- Website terms of service
- Government and internet usage regulations
Balancing automation with ethical and legal responsibility was a key challenge.
Accomplishments that we're proud of
- Successfully building our first end-to-end RAG system
Designing a robust retrieval pipeline that:
- Uses semantic search to narrow candidates
- Lets the LLM make the final judgment call
Creating a scalable architecture capable of handling large volumes of grants autonomously
The result is a system that is both technically sound and practically useful.
What we learned
- How to design and implement a full-stack AI application
- Practical experience building a RAG-based retrieval system
- Developing a web scraper from scratch and handling real-world data challenges
- Understanding the trade-offs between semantic search and LLM-based reasoning
What's next for GrantAI
- Deploy the web scraper as a scheduled cron job to run automatically at regular intervals
- Expand coverage by adding more grant websites to improve database completeness
Enhance recommendation accuracy by:
- Pre-analyzing each grant’s intent
- Structuring grant intent profiles before passing them to the LLM
Conduct further testing to validate improvements and reduce false positives
GrantAI aims to become a reliable, intelligent funding partner for NPO, so they can focus less on paperwork and more on impact.
Built With
- gemini
- nextjs
- pgvector
- supabase
- tailwind
Log in or sign up for Devpost to join the conversation.