There is no single database of American grants. Every funder publishes its own, and almost none of them are looking for the same thing this is: money that would pay a small business or a nonprofit to have a piece of software made. This tool reads each funder’s own notices, keeps the ones where that is plausible, and scores each one on whether it is worth the work.
The loop
Find the grant
A non-repayable grant that will pay for software to be built, and whose rules let an outside builder be paid from it. That is what the score measures and what the database is for.
Find the business
A small business or nonprofit that fits the eligibility and would genuinely use what the grant funds. Local and narrow beats national and open, because the field is smaller.
Apply together
With the business's permission and in their name, describing the software to be built. They are the applicant; the work is the deliverable.
Build it
On a win, build and hand over the software. Keep it to what can be finished quickly and correctly: the build ideas on every row are sized for that on purpose.
Invoice the award
The business pays for the software out of the grant. Check before you start that the notice allows it: some require competitive procurement, some reimburse rather than advance.
Where the grants come from
One card per source. Each says what it publishes, how much of it survived the software filter, and when it was last read. Click one to open the database filtered to it.
No sources have been read yet. Run npm run scrape to build public/data/.
The model is simple and the failure modes are specific. This is the loop, the preparation that makes it repeatable, and the three clauses in a funding notice that decide whether a particular grant can work this way at all.
Before you need it
Registrations are the reason a good grant with a near deadline is often already out of reach. None of them cost money. The first one costs weeks.
SAM.gov (UEI)
A Unique Entity ID from SAM.gov. Free, but a first-time registration commonly takes two to four weeks and needs the business's legal name to match its IRS record exactly.
Grants.gov account
Free, and quick once the UEI exists, but the account has to be linked to the entity by its E-Business Point of Contact before it can submit.
State portal account
The state's own grants system. Usually same-day, occasionally needs a state vendor number first.
Program account
A login on the funder's own application system. Usually same-day.
501(c)(3) determination
An IRS determination letter. The business cannot get one; a nonprofit either already has it or cannot apply.
Check these three before you commit
Each one is a clause in the notice, and each one changes whether the work can be paid for the way this model assumes. The database flags them where it can read them, but the notice is the authority and the flag is only a prompt to go and look.
What to have ready
A front-end mockup you can show
Not a description. A screen. The pitch that works is a picture of the thing on a table between you, and the projects in this tool are small enough that a convincing front end is an afternoon.
A short written offer
What you will build, what it costs, what the grant covers, what the business has to do. One or two pages. It exists so the person you pitched can show it to whoever actually decides.
A dozen ideas, not one
The first idea will often get a no, and a no to one idea is not a no to the grant. Every row in the database carries build ideas for exactly this: when the first does not land, ask what takes up their week, and pivot.
The registrations already done
A grant with three weeks left and no SAM.gov registration is a grant you cannot enter. Start these before you need them.
Keeping the build small
Never inherit a codebase
A new, self-contained project is a week. A change to somebody’s existing specialised system is unbounded, and you will not find out which it was until you are inside it.
Let the client own the keys
Where a project needs a paid API, the business holds the account and pays for it. It keeps your costs at zero, it keeps the software theirs, and it removes the question of what happens when the grant money runs out.
Prefer data in, answers out
A tool that reads a CSV the business already exports is worth nearly as much as a live integration and costs a fraction of it. Integration is where a one-week project becomes a three-month one.
Avoid regulated data
Patient records, card numbers and anything under HIPAA or PCI carry obligations far larger than the grant. The scoring treats these as complexity for a reason. Say no, and offer the version that does not touch them.
One thing worth being straight about
This arrangement is an ordinary vendor relationship: a grant funds a deliverable, the recipient buys that deliverable from a supplier, the supplier is paid. It is how most grant-funded work gets done. What makes it go wrong is not the shape of it but the details, and there are three of them: the software has to be genuinely what the grant funded, the price has to be defensible as the market rate for the work, and the relationship has to be disclosed wherever the notice asks. Get those three right and there is nothing to explain later. The flags on every row exist to make them easy to check.
Every row in this database is read from the funder’s own publication and carries a link back to it. Nothing comes from an aggregator, a grant-listing blog or a page of search results. Where a funder’s own page could not be read, that is recorded below rather than filled in from somewhere else.
The sources
What is deliberately not read
Two rules govern this, and both cost coverage. Official sources only, and never circumvent an access control. A page that answers a challenge, or a robots.txt that declines, is the publisher saying no, and a 200 is not consent.
Carries the same California data as one query instead of a thousand page fetches. Its robots.txt says Disallow: /api/ and Disallow: /datastore/ to every user agent, so it is not used. The portal's own public pages are read instead.
Answers rest_missing_callback_param: token. A token is an access control.
Answers an automated request with a Cloudflare challenge rather than the page. That is an access control the operator turned on deliberately.
Same: a Cloudflare challenge rather than the page.
The best free directory of the local city and county programmes that would score highest in this tool. Challenges both an ordinary request and a browser user-agent. Worth opening by hand.
Answers Forbidden to every client tried. SBIR and STTR notices posted to Grants.gov are still read from there.
How the score works
Six components, out of one hundred, worked out the same way for every grant. The score is this tool’s opinion and not the funder’s, which is why every row shows the full reasoning rather than just the number.
Will this grant actually pay for software to be built?
Highest where the whole program is technology adoption or digital transformation. Lower where software is one eligible expense among many. Lowest where the only match is a word like innovation.
Can the thing it funds be built in days rather than months?
A booking form, an online menu, an inventory log and a sales dashboard score high. Machine learning, health-record integration, compliance regimes and hardware score low. An award over a million implies scope on its own.
How crowded is the field likely to be?
Local beats state, state beats federal, and corporate programs are the most crowded of all because they are advertised. Small awards score better than large ones: below about twenty-five thousand dollars, professional grant writers tend not to bother.
How much work is the application itself?
Starts full and spends down for a SAM.gov registration, a cost share, a letter of intent, letters of support, audited financials, compliance review and ongoing reporting.
Can an outside builder be paid out of this award?
The hinge the whole arrangement turns on. Full marks where the notice names contracted services or professional services as eligible. Zero where it restricts spending to the applicant's own salaries. Reduced where competitive procurement or related-party rules apply.
Is there room to find a business and apply?
Rolling scores full. One to four months is comfortable. Under two weeks is nearly unusable for a business that still has to be approached.
Two rules the scoring follows
Unknown is not zero. A grant that does not publish its award size is not a grant with a small award. Where a fact is missing, the component pays the neutral middle of its range and says so, because burying an unpublished figure at the bottom of the list would hide exactly the small quiet programmes this tool exists to find.
Software fit is a necessary condition. A grant whose notice gives no real reason to think it would pay for software is capped below fifty however well it does on everything else. Being cheap, local, rolling and light on paperwork are real virtues and they are worth nothing if the money cannot fund the work.
What the relevance filter drops
Federal sources alone carry thousands of open notices and the great majority fund things nobody here can build. Two tests decide what is kept, and the number dropped by each is printed in the run log so the filter is a decision that can be argued with rather than a silent shrug.
- Software language, weighted by length. A notice needs either explicit technology-adoption language, or repeated mention of software among its eligible uses. The bar moves with the length of the notice: one mention in a forty-word state summary is real evidence, and one mention in a five-thousand-word federal announcement is an accident. Judging both by the same count either fills the database with federal noise or empties it of small state programmes, and earlier versions of this filter did each in turn.
- A prior about research funders. A notice from NSF, NASA, DARPA, the military research offices or the NIH institutes is a research solicitation unless it says otherwise, whatever words it happens to contain. Those need explicit software-building language to be kept. NIH’s Research Software Engineer award clears that bar; a Broad Agency Announcement does not.