Inspiration
Small nonprofit teams often have limited time, grant-writing capacity, and visibility into federal funding opportunities. Grant discovery, deadline tracking, and early proposal preparation are usually spread across spreadsheets, browser tabs, and manual follow-ups.
Grant Copilot brings this workflow into Slack, where nonprofit teams already coordinate their work.
What it does
Grant Copilot helps a nonprofit team:
- describe its mission and discover currently open U.S. federal grant opportunities;
- review source-cited potential matches from live Grants.gov data;
- save promising opportunities to a personal Slack pipeline;
- track progress from “To apply” to “In progress” and “Submitted”;
- receive deadline reminders by direct message; and
- generate a cautious project-summary starter for human review.
The app does not determine eligibility or submit applications. Every result links back to its official source, and every draft must be verified against the official Notice of Funding Opportunity.
How it was built
Grant Copilot is a Python Slack Bolt application running in Socket Mode. The Slack Assistant handles natural-language discovery, while App Home provides the personal grant pipeline and interactive draft workflow.
A custom FastMCP server exposes search_grants and get_grant tools over stdio. It retrieves live Grants.gov Search2 and opportunity-detail data. Mistral Small selects source-cited potential matches and creates draft starters.
The application uses deterministic profile filters for applicant type and funding categories, SQLite for profiles and saved opportunities, and APScheduler for deadline reminders. It is deployed as an always-on Render background worker.
Challenges and safeguards
Public grant data can contain stale, incomplete, or overly broad results. To reduce this risk, Grant Copilot keeps only posted, non-expired opportunities with explicit deadlines and enriches shortlisted results with official opportunity details.
AI-generated grant content also needs strong safeguards. Results require a source excerpt from the official synopsis, and draft starters explicitly mark unknown facts as [NEEDS INPUT: ...]. This keeps the nonprofit team in control instead of presenting generated text as verified fact.
What I learned
The most useful agent is not the one that promises to automate an entire grant application. It is the one that makes the next careful human decision easier: find an opportunity, verify the evidence, track the deadline, and prepare a review-ready starting point.
What's next
Future work includes shared team pipelines, additional funding sources beyond federal grants, richer organization profiles, and more configurable reminder workflows.
Built With
- apscheduler
- blockkit
- bolt
- fastmcp
- grants.gov
- mcp
- mistral
- python
- render
- slack
- socket
- sqlite
Log in or sign up for Devpost to join the conversation.