How this works, and what it does not do
Public funding information is public. The problem is fragmentation: thousands of portals, PDFs and registries in 24 languages. This tool centralises the records, keeps every version, and links back to the official text. That is all it does with the data. Applications always go through the funder. Everything below is verifiable in the source code.
1. Sources
Every record comes from an official publisher through an open API or an open data dump. We record the publisher's license on each record. Nothing is scraped from a source that forbids reuse.
| Source | License | Records | Open | Last checked |
|---|---|---|---|---|
| Spain BDNS | BDNS legal notice (infosubvenciones.es) | 177,440 | 12,731 | 28 Sept 2026 |
| US Grants.gov | US Government work, public domain | 83,488 | 914 | 28 Sept 2026 |
| EU Funding & Tenders Portal | European Commission reuse policy (Decision 2011/833/EU) | 12,108 | 188 | 28 Sept 2026 |
| Italy incentivi.gov.it | IODL 2.0 (Italian Open Data License) | 5,910 | 792 | 28 Sept 2026 |
| France aides-entreprises.fr | Licence Ouverte 2.0 (Etalab) | 2,458 | 2,458 | 28 Sept 2026 |
| Lithuania ES investicijos | Public information, esinvesticijos.lt | 2,192 | 40 | 28 Sept 2026 |
| Portugal 2030 | Public call notices (Portugal 2030) | 1,441 | 239 | 28 Sept 2026 |
| Netherlands RVO | CC0 1.0 (data.overheid.nl) | 1,365 | 539 | 28 Sept 2026 |
| Denmark Statens Tilskudspuljer | Open data export (Statens Tilskudspuljer) | 1,194 | 662 | 28 Sept 2026 |
| Sweden Vinnova | Public Domain Mark (Vinnova) | 1,168 | 24 | 28 Sept 2026 |
| Finland EURA 2021 | Public call notices (EURA 2021) | 1,047 | 60 | 28 Sept 2026 |
| Romania MIPE announcements | Public announcements (MIPE) | 562 | 0 | 28 Sept 2026 |
| Greece ESPA | Public proclamations (ESPA) | 316 | 305 | 28 Sept 2026 |
| Belgium Wallonia 1890.be | Public directory (1890.be, Région wallonne) | 227 | 227 | 28 Sept 2026 |
| Czechia dotaceeu.cz | Public call list (dotaceeu.cz) | 198 | 192 | 28 Sept 2026 |
| Norway Forskningsrådet | Public call information (Forskningsrådet) | 155 | 35 | 28 Sept 2026 |
| Belgium Flanders VLAIO | Public information (VLAIO) | 150 | 150 | 28 Sept 2026 |
| UK Find a grant | Open Government Licence v3.0 | 115 | 115 | 28 Sept 2026 |
| Austria FFG | Public call information (FFG) | 81 | 81 | 28 Sept 2026 |
| Germany Förderberatung des Bundes | Public federal announcements (Förderberatung des Bundes) | 69 | 42 | 28 Sept 2026 |
| Poland FERS and FERC schedules | CC0 1.0 (dane.gov.pl) | 50 | 3 | 28 Sept 2026 |
| Ireland Enterprise Ireland | Public supports information (Enterprise Ireland) | 49 | 49 | 28 Sept 2026 |
| Belgium Brussels Innoviris | Public programme calendar (Innoviris) | 24 | 1 | 28 Sept 2026 |
Coverage today: EU-wide programmes for every European country (member states by default, associated countries for most calls), plus national and regional programmes for 20 countries: Germany (federal announcements), France, Italy, Spain, Poland (FERS and FERC schedules), Netherlands, Belgium (Flanders, Wallonia, Brussels), Austria, Portugal, Sweden, Finland, Denmark, Norway, Ireland, Czechia, Greece, Romania (announcements), Lithuania, United Kingdom and the United States. Blocked for now by bot protection on every path: Germany's Förderdatenbank, Poland's funduszeeuropejskie.gov.pl and PARP. Next: Austria FFG, Sweden Vinnova, Finland Business Finland, Ireland Enterprise Ireland, Portugal IAPMEI. Then award histories (CORDIS, BDNS concessions, 360Giving, USAspending).
2. One schema for every country
Each opportunity is normalised into one record: funder and level (EU, national, regional, local), country and regions, funding type (grant, loan, guarantee, tax credit, voucher, equity, prize, procurement), beneficiary types, sectors (NACE codes when the source gives them), amounts, opening and closing dates, status, documents, and the official URL. The schema is published as JSON Schema in the repository and the normalised data is CC0.
3. Nothing is deleted, everything is versioned
Crawls run nightly. A call that disappears from a source is kept and marked by its last-seen date. When the content of a record changes, the previous snapshot is stored, so you can see when a deadline moved or a budget changed. Raw source payloads are archived as received.
4. The fit check: rules, not a model
You fill six fields: country, region, entity type, size, age, sectors (NACE divisions), plus the instruments you want and optional keywords. Every open or forthcoming call in your country and EU-wide is then screened by fixed rules:
- Country: the call is published for your country or EU-wide. Hard filter.
- Region: no restriction, or your NUTS code is covered.
- Entity type: the published beneficiary list includes your type. Startups and SMEs are compatible with "company".
- Sector: published NACE or CNAE divisions overlap yours. Sources without codes are marked "check".
- Instrument: grant, loan, guarantee, tax credit, voucher, equity, prize.
- Deadline: still in the future, or forthcoming.
- Size, age, consortium: applied when the record has been enriched (section 5).
A rule returns match, mismatch, or unknown. Fit means every eligibility rule is confirmed and the call text matches your keywords or sector. Eligible, off-topic means you could apply but nothing links the call to what you do; it never scores above 70. Not yet means one or two mismatches, or conditions we could not check: they are listed so you can verify them in the call. Filtered means three or more mismatches. The score is a sum of the rules, nothing else. Same input, same output, every time.
4b. Readiness gaps and negative memos
For every fit, a checklist of what a clean submission needs, in five buckets: documents, evidence, compliance, partners, narrative. Each item carries a founder-time estimate and a state: ok, missing, or check, derived from your form and from the programme family (Horizon collaborative call, EIC Accelerator, Spanish BDNS aid, Dutch RVO scheme, US federal grant, and so on). For every call that is not a fit, a memo: why it looked like one, the blocker, the hours and euros a wrong-route application would burn, and alternatives: same family with a later cut-off, another call that matched your keywords, or building the partner network first. All of it is rules; nothing is generated.
5. Where a model is used, and where it is not
Two places, both optional, both outside the request path of the screening.
- Prefilling the form. If you paste a website or upload a pitch deck, gemini-3.8-flash reads it and proposes the six fields. You see and edit them before anything is screened. About $0.02 per prefill.
- Enriching records offline. Many sources publish eligibility only as prose. Once per record, the model reads the official text and extracts beneficiary types, NACE divisions, regions, company sizes, age limits and consortium requirement into a separate table, versioned and reviewable. The matcher uses these fields only when the source published none. About $0.003 per record.
Model calls go through Cloudflare AI Gateway, so every call is logged with its cost. No model ever decides a verdict.
6. Privacy
Fit-check inputs (URL, uploaded file, text) and results are stored privately to produce your result page and to improve the screening. They are never published, never indexed, and never sold. The result page is reachable only by its random link.
7. What we do not do
- We do not write applications, and we do not take a percentage of anything.
- We do not rank by a model's opinion. Every verdict states the rule it relies on.
- We do not list calls that have not been published by the funder.
8. Open source
Code is MIT. Normalised data is CC0. Source material keeps its publisher's license. Adding a country is one adapter file. Corrections and new sources are welcome as pull requests.