cd /news/ai-agents/funding-fit-an-agent-that-tells-a-so… · home › topics › ai-agents › article
[ARTICLE · art-144273] src=dev.to ↗ pub= topic=ai-agents verified=true sentiment=↑ positive

Funding Fit - an agent that tells a solo, non-English-speaking founder which startup programs they can actually apply to

Solo founder Junyoung Park built Funding Fit, an agent that reads only the official pages of 14 startup accelerator and investor programs and tells a non-English-speaking, unincorporated applicant which ones they can actually apply to. The agent runs a local gemma3:4b model via Ollama over a Sanity Context knowledge base, extracting eight fields per program with a verbatim supporting quote for each, and verifies every quote in code before computing an apply/conditional/excluded verdict. In real runs, three Korean-language queries extracted 47-53 facts each with 39-45 quotes verified, taking 100-196 seconds per query.

by read6 min views1 publishedOct 3, 2026

This is a submission for the Sanity Challenge (Path One: an agent on Sanity Context). Disclosure: this project and this post were built and written by my AI coworker (Arche), working on my behalf. I'm Junyoung Park, a solo founder in Seoul; I don't speak English and I'm not a developer. Everything below was actually run on my PC on Oct 3, 2026 - the numbers are copied from the real outputs.

#

What I Built

This week I tried to apply to investors and accelerators. Most of my time went to one boring question that every program page answers in a different place:

"Can I even apply?" - Do I need an incorporated company? Do I have to move to San Francisco or sit in an office in Seoul for 11 weeks? Is the interview an English video call? Is there a fee?

Funding Fit answers that question from the programs' official pages only, and it shows the exact sentence it relied on for every fact. It is built for one very specific person (me): solo, no company yet, stays in Korea, can't do English video interviews.

#

How I Used Sanity

Knowledge Base (Sanity Context): 14 official sources - a website crawl of Y Combinator's apply/FAQ pages plus 13 Markdown files I made from official pages (Hustle Fund, Betaworks Camp, TheVentures, Founder University, Afore, D.CAMP, FuturePlay, SparkLabs, Antler Korea, Mashup Ventures, Zoom-In Partners, Kakao Ventures). Context organised them into 9 entries:eligibility ,korea_programs ,global_programs ,interviews ,program_logistics ,program_structure ,application_process ,investment_terms ,comparison . #

The purpose field did a lot of work. I wrote:"Lead with eligibility rules: whether a company is required, remote or in-person (and where), interview format and language, check size, how to apply and deadlines. Out of scope: marketing copy, portfolio news." The generated entries came back as clean per-program bullet lists (- **Incorporation:** ... ,- **Residency:** ... ), which made grounding easy. #

Context MCP endpoint (funding-fit ) with a read-onlyContext Viewer org token. The agent uses all three tools:initial_context ->knowledge_base_search ->knowledge_base_read .

  • Sanity project ID: r0ts6lj0 (organizationomt0cu3cw , knowledge basekbbjiFEOCdVH ).

#

How the agent works

All model calls run locally with a small open model (gemma3:4b via Ollama) - free, offline, nothing about me leaves the PC except the search query to Sanity.

initial_context -> list of valid entry paths 2. the local model picks entries + English search keywords (JSON) 3. knowledge_base_search for extra recall, thenknowledge_base_read per entry 4. split entries into ## Program sections and group them per program (program names come only from the profile entries) 5. per section, the local model extracts 8 fields with a verbatim quote for each 6. grounding check in code: a value counts only if its quote really appears in the retrieved textand the quote's line is about that topic (e.g. a "company required" value needsincorporat|company|entity on the line) 7. the fit verdict (apply / conditional / excluded ) and the final summary arecomputed by code from verified facts only

#

Demo (real runs) | Question (asked in Korean) | facts extracted | quote verified | time | | Where can I apply alone, without a company, with no overseas on-site participation and no English video interview? | 47 | 39 | 100 s | | Which Korean investors can I apply to in Korean, and how / by when? | 53 | 45 | 196 s | | Where can I apply right now (rolling) and get a fast answer? | 53 | 44 | 185 s |

Output of the first question (Korean, as I read it): In English: Hustle Fund, TheVentures, FuturePlay and Mashup Ventures have no blocking rule in the sources; Antler Korea is conditional (full-time in-person residency in Seoul); YC (on-site SF + video interview), Founder University (English video sessions + tuition), SparkLabs (company required) and Betaworks Camp (on-site New York) are excluded. Every line above is backed by a quote that the code found in the knowledge base.

Full output of question 1 (every fact with its quote)

#

What went wrong (and what I changed) I'm sharing the bugs because they are the interesting part:

Headings became "programs". The first run listed "Eligibility Matrix", "Sources" and "Check-Size Comparison" as if they were investors. Fix: program names come only from the profile entries; other sections are merged into a program by name prefix. 2. Real quotes, wrong topic. The model said Hustle Fund has an English video interview and quoted*"pitching is the fastest path to getting questions answered"* - the sentence exists, but it says nothing about interviews. Fix: the quote's line must contain words for that field. The same rule first broke good answers (Not required... lost itsIncorporation: label), so the check looks at the whole source line, not just the quote. 3. The small model invented facts in the final answer. Asked to "summarise only the verified facts", it wrote that FuturePlay requires on-site participation - nothing says that. Fix: the summary is now written by code. The model only reads and quotes; it never decides eligibility. 4. Long sources -> empty JSON. Antler Korea came back with zero facts because the 4B model's JSON got cut off. Fix: one small extraction per section, then merge (a verified value beats an unverified one). Antler now comes out right: no company needed,full-time in-person in Seoul , no fees, rolling.

#

Limitations (honest)

  • The question only steers which entries are read ; the verdict always uses my fixed criteria. Question 2 asked forKorean-language, domestic investors, but the agent has no "application language" or "country" filter, so US-based Hustle Fund still shows up. Question 3 asked forfast answers , but speed isn't ranked (TheVentures decides within one business day - it's in the sources, the agent just doesn't sort by it yet).
  • "Not in sources" is common. It's the honest answer, but it means you still have to read some pages yourself.
  • Sources are a snapshot of official pages from Oct 3, 2026. This is not legal or investment advice - check the program page before applying.
  • A 4B local model is slow (100-200 s per question on my laptop) and sometimes misses a fact one run and finds it the next.

#

Code

Two files, Python 3.10, pip install mcp, plus Ollama with gemma3:4b. Set SANITY_CONTEXT_MCP_URL and SANITY_API_TOKEN (a Context Viewer token).

kb_client.py - MCP client for the Sanity Context endpoint

funding_fit.py - the agent

Thanks for reading. If you run a program that accepts solo, non-incorporated founders from Korea and it's missing here, tell me in the comments and I'll add your official page to the knowledge base.

── more in #ai-agents 4 stories · sorted by recency
── more on @junyoung park 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/funding-fit-an-agent…] indexed:0 read:6min 2026-10-03 · —