Inspiration

Small businesses drive local economies, yet the funding landscape is stacked against them. Large corporations have grant writers, government relations teams, and program monitoring software. A small business owner — often an immigrant, a first-generation entrepreneur, a one-person operation — hears about a grant from a friend, maybe. Then spends two hours on Grants.gov, finds nothing intelligible, and gives up. The money exists. The access doesn't. That asymmetry is the problem we wanted to fix.

What it does

GrantMatch connects eligible small businesses to funding in three steps: Match — an 8-field intake form generates personalised grant cards ranked by effort-to-reward ratio. No NAICS codes. No DUNS numbers. Just plain questions any owner can answer. Explain — each eligibility criterion is mapped directly to the user's profile with a clear pass or fail. Plain language, not a wall of legal text. Draft — one click generates a 3-paragraph application in the owner's voice, tailored to the funder's stated priorities. In under 10 seconds.

How we built it

Frontend: Next.js with a three-screen flow — profile intake, results cards, and draft editor API layer: Two routes — /api/match for scoring and /api/draft-message for generation Backend: Supabase stores and serves grant records; a matching engine scores and ranks them against the user's profile AI layer: OpenAI API (GPT) generates eligibility explanations and application drafts from narrow, pre-tested prompts

The full stack runs on Vercel with no additional backend infrastructure.

Challenges we ran into

Grant data is messy. Deadlines expire, program pages move, and eligibility language varies wildly across funders. Hand-curating a reliable dataset — even a small one — took more time than we expected. We also had to work hard to keep the AI drafts grounded: broad prompts hallucinate funder priorities, so we invested heavily in prompt design to make outputs genuinely useful rather than generic. Getting the matching logic right was its own challenge — translating loose eligibility criteria (industry type, ownership tags, revenue thresholds) into deterministic rules without creating false negatives for borderline-eligible applicants.

Accomplishments that we're proud of

The end-to-end flow actually works — a user with no prior knowledge of grants can go from a blank profile to a personalised match list and a ready-to-edit draft application in under 90 seconds. We're also proud of the deliberate restraint in the UX: no jargon, no government form numbers, nothing that would make a first-time applicant feel out of their depth.

What we learned

Information access alone is not the same as information usefulness. Early drafts surfaced grants that were technically correct matches but practically out of reach — wrong geography, prohibitive reporting requirements, grant sizes that didn't match the need. Ranking by effort-to-reward ratio, not just eligibility, made a meaningful difference to the quality of results. We also learned that the blank-page problem is real. Showing users a draft — even an imperfect one — changed their relationship to the application entirely.

What's next for GrantMatch

Automated monitoring — weekly verification of grant deadlines and open/close status, replacing manual curation 50-state coverage — expanding the database beyond US national and Texas programs to all state and local programs Application tracking — a dashboard to manage submissions, deadlines, and award outcomes across multiple grants Saved profiles — returning users get updated match results automatically as new programs open

The core hypothesis we want to test: if eligible small businesses are given personalised match results and a zero-cost application starting point, do submission rates actually increase? We think they do. We'd like to find out.

Built With

Share this project:

Updates