We Shipped 7 Things in One Day. One of Them Is Broken.
Today was the most productive single day in Go Digital history. I want to be honest about what that means, because productivity without quality control almost bit us.
Here's what shipped. Here's what failed. Here's what I learned.
What We Built (7 Things, One Day)
Ask Virginia is live. A few weeks ago, we deployed Ask DC, a chamber of commerce chatbot powered by a 2,000-line knowledge base. Today I cloned it, rebranded it, scraped the Virginia Chamber's entire website plus four state agencies, and shipped a 2,294-line knowledge base. Deployed by noon. It's at askva.godigitalapps.com and it works. Ask it how to register a business in Virginia, it gives you a seven-step answer with links to the Virginia SCC, BPOL requirements, and DPOR licensing. Built in hours.
GrantScout public scan page is live. Nonprofits can now go to grantscout.godigitalapps.com/public-scan, enter their org profile, and get matched federal grants back in seconds. No login. No credit card. This is our proof of concept and our outreach tool.
GrantScout full SaaS is code-complete. Not deployed in the full auth sense yet, but the codebase is done: 10 serverless functions, 5 public REST endpoints, Stripe checkout wired, Resend email alerts scaffolded, dashboard with pipeline tracking. Pricing is $19/mo Starter and $49/mo Pro. Instrumentl charges $299 at minimum. We're undercutting them by 75 to 90 percent.
The API is the real product. This is the decision I'm most proud of today. Nobody else offers scored grant matching via API. Instrumentl gates theirs behind enterprise sales. OpenGrants is invite-only. We have five public REST endpoints: scan, search, grant detail, report generation, source health check. A developer can call our API with a nonprofit profile and get back a ranked list of matching grants with fit scores and match reasons. That's a new product category.
Cal.com self-hosted is live. Running on our Hetzner server behind Cloudflare, Google Calendar connected. cal.godigitalapps.com. We own our scheduling infrastructure now.
66,672 federal grants enriched. The Grants.gov search API returns bare metadata: title, agency, dates. No descriptions. Scoring against titles alone was useless. So we downloaded the daily XML bulk data file (76.6MB compressed, 300MB unzipped), parsed 81,743 opportunities with a SAX stream parser, and built a lookup table of 66,672 unique grants with full descriptions, eligibility text, and award amounts. Grant scoring went from matching against 6-word titles to matching against 3,000-word descriptions. The rankings changed immediately.
6 state/local scrapers built, 1,033 grants indexed. We built scrapers for the DC Grants Clearinghouse, Maryland Governor's Office, Maryland Nonprofit Portal, Virginia Governor's Office, Virginia Arts Commission, and Virginia DHCD. Across all six, we're pulling 1,033 state and local grants into our DMV dataset. This regional data is our moat. National competitors don't have it.
The Outreach
Three messages sent today, each with a specific purpose.
Justin Alford runs TechnBloom, a nonprofit in Temple Hills, MD doing free IT training, community gardens, and solar farm fundraising. Got connected at an AI meetup last night. I ran his organization profile through our grant scanner against 3,431 federal opportunities and found 10 strong matches: USDA REAP (up to $1M for solar projects), NSF CyberAICorps (cybersecurity workforce funding, deadline April 3), DoD Cyber Service Academy, and more. The LinkedIn message teased the value but saved the specifics for a call. Beta access offer included. He becomes customer zero if he responds.
Madeline Mortemousque is VP of Marketing at the Virginia Chamber of Commerce. The LinkedIn connect note was short: the Manhattan Chamber just launched an AI chatbot, I built one for DC, I just built one for Virginia. Want to connect. She's the decision maker for whether Ask Virginia becomes an official chamber tool.
Yohannes Tafesse runs Gratitude Systems, a firm that does AI readiness assessments for DC government agencies. I'd been treating him as a sales prospect. Wrong framing. Gratitude Systems already does AI assessments, which means he's not buying one from us, he's a potential partner. He sells to DC agencies, we sell to small businesses. No competition. Repositioned to partner outreach. Email sent.
Infrastructure
Instantly.ai warmup is running on hello@godigitalapps.com. Starting at 10 emails per day, ramping up 2 per day, 35% reply rate emulation, weekdays only. We need 14 days minimum before sending any real campaigns. Nothing goes out until March 19 at the earliest.
SAM.gov API key registered and tested. Results: 26,000-plus federal contracts. Which is useful, but not what we needed for GrantScout. SAM.gov is procurement and contracts. Grants live at Grants.gov. Good to know before we built the wrong integration. We hit the 1,000 request daily rate limit during testing. Resets at midnight UTC.
The Failure
Here is the honest part.
We built six state/local scrapers and indexed 1,033 grants. I announced this as a moat. And in terms of coverage, it is. But when Obadiah tested the scanner and clicked a result linking to CFE Fund, the page said "no open funding opportunities."
The scrapers pull from directory pages. Organizations that sometimes offer grants. Not verified, open, active opportunities with deadlines. Federal grants are validated because Grants.gov lists real opportunities with real close dates. Our state/local data mixes verified open grants with stale directory listings at the same confidence level.
A nonprofit founder clicking through to find "no open funding" would kill trust instantly. We would have sent this to Justin if Obadiah hadn't tested it first. Bullet dodged. But it's a problem we have to fix before this becomes a real product.
The fix is not complicated. Filter state/local results to only surface entries with verified deadline dates, or tag them clearly as directory listings requiring manual verification. Federal data stays as-is. But we can't ship state/local data as if it's at the same quality level as Grants.gov until it actually is.
The second failure: Day 33 of content drought. I have 41 drafts. One is a Karpathy thread scored 45 out of 50 that I've been flagging as ready to post since February 28. We shipped four live products today and still didn't post a single piece of content. I don't have an explanation for this that I'm proud of.
The Lesson From 2 Burned Hours
String.includes('stem') matches "system." It also matches "ecosystem." It matches "statement," "eastern," "western," and "protein stem cell."
We were running keyword matching on grant titles using simple substring search. A grant about systematic reviews of alcohol education programs was scoring high for TechnBloom because it contained the substring "stem." Burned two hours tracking down why irrelevant grants were ranking.
Word-boundary matching is not optional for NLP work. We fixed it by building a phraseMatch() function that checks character boundaries before and after every keyword match. We also fixed token proximity: multi-word synonyms like "science education" were matching when "science" and "education" appeared in completely different parts of a title. Now we require tokens to appear within a defined window of each other.
After the overhaul, the State Justice Institute grant (irrelevant to TechnBloom) went from 8 out of 10 to 1 out of 10. Solar and cybersecurity grants moved up. The scorer is now doing what it's supposed to do.
DMV Moat Is the Priority
We made a strategic choice today: the DC, Maryland, Virginia regional market is our primary focus. Not because we can't think bigger, but because local data and local relationships are defensible in a way that national data aggregation is not.
We have two live chamber chatbots (DC and Virginia). We have 1,033 state and local grants indexed. We have three outreach relationships initiated in this region today. National competitors cannot replicate local relationships. They can build better software than us, but they can't walk into the same meetups we walk into.
The API is how this scales. Once we have clean DMV data, any developer building a nonprofit tool in this region can integrate our grant matching with a single API call. We become infrastructure.
What's Next
State/local data quality fix comes first. We can not use the scanner as an outreach tool until this is resolved.
Then: deploy the full GrantScout SaaS. Supabase project, Clerk auth, Resend key. Thirty minutes of setup, then it's a real product with auth, payments, and email alerts.
And post the content. Today was record productivity on the build side and record failure on the distribution side. Both things are true. One of them has to change tomorrow.
Go Digital builds AI-powered tools for small businesses and nonprofits. Every day logged publicly.