Skip to content
JIHYEON JANG

Strawberry Matcha

AI agent for marriage-based green card applicants (CR1 or F2A) filing without a lawyer.

Role
AI UX Designer · Solo project
Tools
Cursor, Claude API, Supabase, Figma
Focus
Conversational AI, Decision-support UX
Timeline
3 weeks · v0 → v1

Problem

Filing alone leads to mistakes. General AI makes it worse.

Many couples applying for a marriage-based green card file without a lawyer. Legal fees run thousands of dollars, and the process looks doable, so they handle it themselves. Then the details catch up. 1 in 4 applicants gets a Request for Evidence for avoidable errors, and each one adds three to five months. General AI doesn't fill the gap. It hallucinates on legal details and answers for a generic case, not theirs.

Research articles about immigration lawyer costs, USCIS Requests for Evidence, and legal AI hallucinations.

Key features

Ask Strawberry Matcha, a conversation that knows your case.

Users can ask anything, anytime. Strawberry Matcha answers based on the applicant's actual case status and preparation progress, and updates the case as the conversation continues.

Field Translator, fills the gap between your real life and the form.

When users upload any edition of a USCIS form PDF, Strawberry Matcha reads the actual form fields, cross-references them with the user's case data, and tells them exactly what to enter in each field. It also handles tricky format conversions, such as restructuring a Korean address to fit U.S. form fields or matching a Korean name to its passport romanization.

User input

서울특별시 강남구 테헤란로 123 101동 202호

Free-form Korean address as the applicant naturally writes it.

USCIS form output

  • ProvinceSeoul
  • City or TownGangnam-gu
  • Street NameTeheran-ro
  • Street Number123
  • Apt / UnitDong 101, Ho 202

Parsed and reformatted into the exact fields each USCIS form expects.

Timeline guidance, so you know where you are and what's next.

Each milestone shows where the applicant is in the process, what the step actually means, and what usually happens next, so the case never feels like a black box.

How I Built

From concept to crafted product in five steps.

  1. 01

    Domain research

    Define concept & Research to train the AI

    Mapped how immigration lawyers actually walk a couple through CR1 / F2A.

  2. 02

    Cursor plan mode

    Design System Architecture

    Used Cursor's plan mode to map out the full system as a diagram, so I could see how every piece fit before writing code.

  3. 03

    Cursor prototype

    Fast validation

    Used Cursor to spin up a working prototype quickly, so I could test the idea with real applicants before investing more.

  4. 04

    Real applicants

    Iterations

    Reworked chat structure and onboarding based on where trust was breaking.

  5. 05

    Figma polish

    Craft refinement

    Polished the UI in Figma, tightening tone, pacing, and visual hierarchy across the whole product.

Iterations

Reducing cognitive overload in chat.

The first version dumped each response into one long paragraph. In user testing, the answers were accurate but people didn't act on them. They skimmed, asked me to repeat things the AI had already said, and gave up mid-task. I explored three response formats before settling on one.

Single response paragraph: a long block of text that buries the answer.
Version 1
Single response paragraph.
  • Fast to implement; no extra UI.
  • Buries what matters most.
  • Users don't know what to ask next.
Doc-style response with bold headers and bullet lists.
Version 2
Full doc-style hierarchy with headers and bullets.
  • Maximum scannability.
  • Loses conversational warmth.
  • Overkill for short answers.
Two-layer response: serif acknowledgment, sans-serif body, suggested follow-up chips.
Version 3
Two-layer voice (serif acknowledgment + sans-serif info) with suggested follow-ups.
  • Reads warm and human.
  • Scannable at a glance.
  • Nudges the next question.
  • More design and prompt work.

Final pick:

Version 3

Two-layer voice keeps the chat warm but makes the answer scannable, and the suggested follow-ups stop users from getting stuck on what to ask next.

Final design: two-layer voice response with serif acknowledgment, sans-serif info, and suggested follow-up chips.

Redesigning onboarding to stop hallucinations.

The original onboarding was too short. The AI guessed to fill gaps, and hallucinations broke trust fast. So I studied how immigration lawyers intake clients. Their upfront questions are how a lawyer learns the case before giving advice. I rebuilt onboarding around those same questions, so the AI starts with enough context to be accurate from the first message.

Step 1 — Welcome screen: Let's set up your immigration case.
Step 2 of 7 — Who are you in this case? (beneficiary, petitioner, helping someone else)
Step 3 of 7 — What type of relationship-based case is this? (marriage-based, family-based, not sure yet)
Step 4 of 9 — A few details about your case (U.S. citizen vs green card holder petitioner).
Step 5 of 9 — Where is the beneficiary living right now? (inside vs outside the United States)
Step 6 of 10 — What is the beneficiary's current immigration status?
Step 7 of 10 — About the petitioner: legal name, citizenship, address, income, household size.
Step 8 of 10 — About the beneficiary: legal name, country of birth, current address, prior denials, criminal record.
Step 9 of 10 — Marriage details: date, country, prior marriages.
Step 10 of 10 — Review your case setup before creating the case file.

Reflection

What I took away from designing an AI agent for a high-stakes legal workflow.

Designing an AI agent is designing how it thinks.

Most of the work happened underneath the screens. Prompts, follow-up logic, what the AI asks versus what it answers, what it stores about the user. The visible UI was the smallest part.

Onboarding is data acquisition, not a signup.

How well an AI agent performs depends on what it knows going in. Designing onboarding well is designing the AI's first impression of the user, and everything downstream flows from there.

Conversational UX is about pacing, not just tone.

Users filing alone don't need more information. They need information at the right moment, in a shape they can act on, with a clear next step. That's a design problem, not a content problem.