SG Grants Directory: AI-Powered Funding Discovery for NPOs

Problem Statement 1

Inspiration

Non-Profit Organisations (NPOs) in Singapore are the backbone of our social fabric, yet they face a significant administrative hurdle: finding the right funding. The current OurSG Grants Portal, while comprehensive, requires manual searching and exhaustive reading of dense eligibility documents.

We realized that every hour an NPO leader spends "grant hunting" is an hour taken away from actual social impact. We wanted to build a bridge—a tool that doesn't just list grants, but actively "interviews" an NPO to pull the most relevant opportunities to the surface.

What it does

SG Grants Directory is a comprehensive lifecycle engine designed to simplify how NPOs discover, track, and manage grants.

  • Assisted Discovery: Instead of a search bar, users enter their mission statement. The AI then generates a Dynamic Eligibility Quiz to clarify mission scope, KPIs, and target demographics.
  • Strategic Match Reports: Based on the quiz, the system categorizes grants into "Best Matches" and "Potential Matches," providing clear AI-driven reasoning for each recommendation.
  • Intelligent Dashboard: NPOs can track their "Potential Funding Portfolio" and manage upcoming deadlines in a single command center.
  • Automated Monitoring: The system monitors the OurSG portal for updates. If a grant’s terms change, users receive a summarized email notification explaining exactly what’s new.

How we built it

We built a full-stack serverless application optimized for speed and cost-efficiency:

  • Frontend: React, TypeScript, and Tailwind CSS. We used Shadcn/UI and Framer Motion to create a sophisticated, accessible user interface.
  • Backend: Python-based Firebase Functions handling orchestration and Vertex AI for model hosting.
  • AI Engine: Powered by Gemini 2.5 Flash for high-speed reasoning and Gemini Embedding 001 for semantic vector search.
  • Automation: Google Apps Script acts as our notification relay for Gmail, while BigQuery and Firestore handle our data storage and vector indexing.

Technical Challenges & Innovations

1. The Fragmented Data Problem Many grants lack a structured API. We built a robust ingestion pipeline that scrapes agency webpages and uses Gemini to transform unstructured HTML into a clean, synchronized Markdown schema. This allows us to compare "apples to apples" across different funding bodies.

2. Chain-of-Verification (CoVe) RAG Standard "Few-Shot" prompting often results in hallucinations when grant details are complex. We implemented a logic flow inspired by Meta's Chain-of-Verification (CoVe):

  1. The model creates an initial "Draft" of potential matches.
  2. It generates "Verification Questions" (the Dynamic Quiz) to test its own assumptions.
  3. A second, high-precision RAG pass is executed using the user's verified answers.
  4. This reduces hallucinations and ensures highly accurate eligibility matching.

Accomplishments that we're proud of

  • Deterministic Accuracy: Achieving consistent, structured outputs from the LLM to ensure the frontend never breaks, even with messy scraped data.
  • User Experience: Moving away from a "chatbot" to a "structured interview" (Quiz) format, which proved to be much more intuitive.

What we learned

We learned that in the NPO space, transparency is trust. It’s not enough to say "apply for this grant." The AI must explain why (e.g., "This grant matches your focus on elderly digital literacy in the North"). We also gained deep experience in handling unstructured web data using LLMs as "intelligent parsers."

What's next for SG Grants Directory

  • Collaborative Workspaces: Allowing multiple team members from one NPO to work on a single grant application within the portal.
  • Grant Writing Assistant: Using the context gathered during the discovery quiz to help NPOs draft their first grant proposal.
  • Impact Reporting: A module to help NPOs track and report their KPIs back to the grant providers, closing the loop on the entire lifecycle.

Built With

Share this project:

Updates