Inspiration

1.8 million New Yorkers can’t read English well enough to fill out the form required for free tax preparation. That form, IRS 13614-C, is the mandatory intake document for every VITA site in the country. It asks about “qualified charitable distributions” and “separate maintenance decrees” in bureaucratic English. If you can’t complete it, you can’t access free help.

Meanwhile, research from Mani, Mullainathan, Shafir & Zhao (Science, 2013) shows that financial stress alone reduces cognitive function by the equivalent of 14 IQ points, more than losing a full night of sleep. For immigrants navigating an unfamiliar tax system in a language they don’t speak, the stress isn’t hypothetical. A 2022 study found that each point increase on a financial worry scale raised the likelihood of serious psychological distress by 13.5%, and immigrants scored consistently higher than US-born individuals.

I believe AI should never touch mental health directly. But it can clear the upstream obstacles that prevent people from seeking help.

What it does

Let’sPayTaxes.nyc walks a user through IRS Form 13614-C in English, Spanish, or Mandarin via a stepped card interface, one plain-language question at a time, with explanations of every concept. It outputs a completed, filled 13614-C PDF they bring to a VITA site, plus a companion guide in their language listing what documents to bring, what credits they likely qualify for, and the nearest free tax prep site filtered by language and borough.

Then, using the financial picture already collected, it surfaces free and sliding-scale mental health services they can actually access, filtered by their language, location, and likely income bracket. Not “here’s a hotline.” More like “based on what you told us, you likely qualify for Medicaid, and here are Mandarin-speaking therapists in Flushing that accept it.”

If you’ve never heard of this random tax jargon, that’s the point. The IRS runs a program called VITA, Volunteer Income Tax Assistance, where certified volunteers prepare and file your taxes for free. There are over 140 sites in New York City alone. But to walk in and get help, you first have to fill out a 5-page government form called the 13614-C. It asks for your income, your household, your expenses, your marital status, everything a tax preparer needs to do your return. The problem is that it’s written in dense bureaucratic English, full of terms like “qualified charitable distribution” and “separate maintenance decree.” If you can’t fill it out, you can’t get helped. My tool replaces that form with a conversation.

How I built it

  • Next.js 14 (App Router, TypeScript, Tailwind CSS) deployed on Render
  • Claude API (claude-sonnet-4-20250514) for multilingual concept explanation and companion document generation
  • pdf-lib for programmatic filling of the actual IRS 13614-C form
  • Three-language i18n (English, Spanish, Simplified Chinese) with full translation of every question, explanation, and UI element
  • NYC Free Tax Prep dataset (via Data.gov/DCWP) for VITA site matching by zip code and language
  • NYC mental health resource database sourced from NYC Well, H+H, and community health center directories

Claude Code was used as the primary development tool throughout. The Claude API integration handles two specific tasks: explaining tax concepts in context when a user highlights a word they don’t understand, and generating the personalized companion document at the end of the flow.

Challenges

The 13614-C is not a fillable PDF. It has no AcroForm fields. Every text placement and checkbox requires manual coordinate mapping against the form layout. Calibrating this for accuracy across 5 pages was the most tedious part of the build.

Mandarin translations required loading Noto Sans SC and testing that Chinese characters rendered correctly at every size in both the UI and the generated PDF. Font rendering for CJK in pdf-lib has specific constraints around embedding. And I’m on Nix (the greatest distro), so I had to download these fonts on my system.

Scoping for solo development in 3 days meant cutting features that would matter in production: save-and-resume codes, more than three languages, real-time VITA site availability. However, because I used claude for i18n & l10n, I am 800 API calls away from supporting EVERY language in the most lingusitically diverse city in the world.

What I learned

The 13614-C intake form asks people who can’t read English to self-assess their English proficiency on a form written in English. The IRS publishes it in Spanish, covering 63% of LEP speakers. The other 37%, roughly 670,000 New Yorkers, get nothing. Adding one language to this pipeline changes who has access to free tax help.

NYC’s Free Tax Prep program serves 110,000 returns per year. There are millions eligible. Nationally, VITA reaches 2% of eligible tax units. The bottleneck isn’t volunteer capacity alone; it’s that people can’t get through the door.

What’s next

  • Arabic and Bengali (the 5th and 4th most common LEP languages in NYC)
  • Integration with NYC GeoSearch API for address validation and borough detection
  • Real-time VITA site availability from DCWP
  • Property tax assessment lookup using NYC DOF data
  • Partnership with VITA sites to accept pre-filled 13614-C forms digitally

Built With

  • claude-api
  • claude-code
  • next.js
  • pdf-lib
  • tailwind
  • typescript
Share this project:

Updates