Inspiration

Millions of dollars in public benefits go unclaimed in New York City every year simply because the application process is exhausting. For low-income New Yorkers, navigating the bureaucratic maze for programs like Fair Fares, SNAP, or Housing Assistance requires filling out redundant paperwork and manual data entry across multiple portals.

We were inspired by the "Built for NYC" challenge to use AI for community good. We wanted to build an application that acts as a secure, private, and intelligent advocate for the user. Our goal was to replace tedious 20-page forms with a seamless, "vibe-coded" mobile application that does the heavy lifting for you.

What it does

NYC Easy Enroll is a secure, mobile-first civic wallet that automates the public benefit application process.

When a user opens the app, they are greeted by a strict local phone PIN authentication screen, ensuring their sensitive data remains completely private. Users then upload photos of their vital documents (Passports, SSN cards, NY State Driver's Licenses, and W-2s).

The app processes these documents and presents a dashboard of NYC programs the user qualifies for, using an intuitive "traffic-light" system to track application readiness:

How we built it

We engineered the app for speed and privacy, leveraging "vibe coding" with GitHub Copilot to rapidly scaffold our frontend UI and backend infrastructure.For document parsing, we utilized Google AI Studio and the Gemini 1.5 Flash Vision model. Instead of relying on traditional OCR that drops field labels, Gemini extracts structured key-value pairs natively into a Pydantic JSON schema. We then matched this extracted profile against the NYC Benefits API logic.To power the traffic-light UI, we defined an algorithmic completeness model. Let $R$ be the set of required data fields for a specific program (e.g., Fair Fares), and $E$ be the set of fields successfully extracted from the user's documents.

Challenges we ran into

Parsing Messy Real-World Documents: Extracting data from varied document types (faint ID cards vs. dense W-2 tax forms) was initially tough. Switching to Gemini's multimodal vision solved this by adding spatial awareness and context to the extraction.

Complex Eligibility Logic: Translating NYC's legal eligibility requirements (like calculating Area Median Income thresholds based on household size) into code required mapping complex JSON structures from NYC Open Data into our local database.

Data Privacy Guardrails: Handling Personally Identifiable Information (PII) like SSNs is a massive responsibility. We had to architect the app so that raw document images are never stored permanently—they are processed in memory and immediately discarded, storing only the parsed values required for the eligibility check.

Accomplishments that we're proud of

We are incredibly proud of building a functional, secure, multimodal AI pipeline over a single weekend. More importantly, we are proud of the UI. By designing the traffic-light system, we transformed a stressful, bureaucratic data-entry task into a gamified, supportive experience that guides users step-by-step without overwhelming them.

What we learned

Using Claude completely changed our development velocity, turning what usually takes weeks of boilerplate coding into hours.

Structured Outputs are Game-Changing: Enforcing strict JSON schemas on LLM outputs ensured our AI returned predictable, database-ready objects instead of chatty text.

Designing for Empathy: Building tech for vulnerable populations requires prioritizing clarity. Users don't just want to know if they are eligible; they need a clear roadmap showing exactly what to do next.

What's next for NYC Easy Enroll

Our next step is integrating an auto-submit feature that securely pushes the completed JSON payloads directly to the official NYC municipal portals via API. We also plan to expand our eligibility logic to include New York State and Federal benefits (like Medicaid), and integrate a multi-language voice assistant so non-native English speakers can navigate their eligibility entirely via voice.

Share this project:

Updates