01 SYSTEMS DOSSIER · REMOTEHIRE · 2024
Immibot.
An AI immigration assistant shaped as a workflow, not a one-shot chat box: ask only what the next decision needs, retrieve evidence, validate documents, and keep the user's context intact.

The hard part was keeping a complicated path legible.
Immigration questions are high-context. A useful answer depends on country, intent, profile details, documents, and changing source material. The product challenge was to make that complexity feel like a sequence of clear next steps.
I re-architected Immibot around a modular workflow: guest entry, adaptive questions, source-linked retrieval, document validation, eligibility scoring, recommendations, and history that could move into an account.
The system provides guidance and workflow software, not legal advice or a guarantee of eligibility.
One conversation, several dependable hand-offs.
From first question to saved recommendation.
- 01low-friction start
Guest entry
A visitor could start in one click. The guest session gave the workflow enough continuity to be useful before account creation.
- 02context-aware intake
Adaptive questions
Questions followed the selected country and domain instead of forcing every person through the same static intake form.
- 03evidence beside answer
Retrieval + sources
The agentic retrieval workflow paired an answer stream with official-source links so a response could be inspected, not just trusted on tone.
- 04structured decision support
Validation + scoring
Document checks and eligibility signals turned a conversation into a structured recommendation surface with visible limitations.
- 05continuity after signup
History + account continuity
Persisted history moved from the guest session into the Clerk account so users did not have to restart the workflow after signup.
Adapters kept the product extensible.
Country and domain logic could evolve without forking the whole experience.
Why this mattered. The conversation, persistence, account, and billing layers stayed shared while country rules, domain questions, and source adapters remained replaceable. That was the seam I protected as the system grew.
My ownership
I worked across Next.js, TypeScript, client state, API boundaries, Prisma/SQL persistence, Clerk auth, Stripe billing, PostHog analytics, and PWA deployment. The engineering tradeoff was to keep adapters and source links visible while the workflow grew.
Stack: Next.js / TypeScript · LangChain / Flowise · Prisma / SQL · Clerk / Stripe · PostHog · Vercel / PWA
Guest entry and account continuity made the workflow usable before and after signup.
Product outcome · context carried forwardThe product became a continuity system.
The recommendation was only one moment. The stronger product behavior was what happened around it: a guest could explore, return to persisted history, create an account, and carry forward context instead of restarting the workflow.
I also unified client state through Context API and useReducer, then added PostHog instrumentation for cohort and session analysis. The tradeoff was deliberate: invest in a stable workflow boundary before adding more intelligence to it.
Public-safe boundary. This page names shipped responsibilities, user-facing behavior, and listed technologies only; it does not publish applicant data, private prompts, proprietary rules, provider secrets, or customer information. Immibot is guidance/workflow software, not legal advice.