Projects / AI products

Streamed grant writer.

An LLM content generator that streams output over SSE as it writes, protected by a fail-closed prompt-injection guard and grounded against eligibility rules.

Stack
Gemini, Node.js, SSE
Scale
Production, multi-tenant
Role
Designed and built
Smart Fill panel next to a government funding application

Flow.

  1. User brief
  2. Injection guard
  3. Constraint extraction
  4. Grounded prompt
  5. Gemini stream
  6. SSE to browser
  7. Draft

How it works.

The user describes what they need in plain language. Before anything reaches a model, a guard classifies the input. If it looks like an injection attempt the request is refused outright, never sanitized and passed along.

A first pass extracts the hard constraints from the opportunity: word limits, required sections, eligibility language. Those become part of the grounded prompt so the draft cannot drift from the rules.

Generation streams token by token over Server-Sent Events, so the writer sees the draft appear as it is produced instead of waiting on a spinner. Length and structure are enforced as the stream arrives.

Hard parts.

Outcome.

Became the most-used feature on the platform. Drafts arrive in seconds and stay inside the rules of the opportunity they are written for.

Screens.

Smart Fill panel next to a government funding application
Smart Fill answers one question at a time, or all of them at once from the smart profile, while the writer watches the draft stream in.
Applications list with generated drafts
Every application and its generated drafts in one place, ready to review before anything is submitted.