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. This is a submission for the Sanity Challenge https://dev.to/challenges/sanity 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-only Context Viewer org token. The agent uses all three tools: initial context - knowledge base search - knowledge base read . - Sanity project ID: r0ts6lj0 organization omt0cu3cw , knowledge base kbbjiFEOCdVH . 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. 1. initial context - list of valid entry paths 2. the local model picks entries + English search keywords JSON 3. knowledge base search for extra recall, then knowledge 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 text and the quote's line is about that topic e.g. a "company required" value needs incorporat|company|entity on the line 7. the fit verdict apply / conditional / excluded and the final summary are computed 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: 1. 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 its Incorporation: 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 for Korean-language, domestic investors, but the agent has no "application language" or "country" filter, so US-based Hustle Fund still shows up. Question 3 asked for fast 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.