Inspiration

Young people in Bangladesh make big decisions on information they can't check. A student freelancer can't prove their skills, so they undersell — and Fiverr keeps 20% of every order. Admission dates are scattered across separate university circulars. Prescriptions are hard to read. Household money and farm sales are decided without the full numbers.

[Add 1–2 true sentences here about the moment you saw this yourself — a friend, a relative, your own first client.]

Most AI tools make this worse: they answer confidently even when they are wrong. I wanted to build AI you can check.

What it does

KormoPath is one platform with a four-agent flagship and six everyday apps.

Flagship — from CV to money received

  1. Auditor — reads a CV, PDF or profile screenshot with Google Gemini. A skill is kept only if Gemini can quote it word-for-word from the CV; code checks every quote. Skills are valued against indicative Bangladeshi rate ranges.
  2. Examiner — a real bug to fix in a sandboxed Web Worker, then a spoken or typed viva. Pass both to get an HMAC-signed Skill Passport anyone can verify.
  3. Outreach — drafts a cold pitch and a bilingual English/বাংলা contract, including an internet-shutdown clause. The pitch is rejected if it mentions any dollar amount not in the contract.
  4. Treasurer — compares payout routes in taka with a live exchange rate. The math is deterministic, unit-tested code — never the model.

Six everyday apps on the same rules

  • AdmitBuddy — university matching and an application tracker. It never invents admission dates; students add dates from official circulars with the source.
  • MediScan BD — explains a prescription in plain Bangla and exports medicine reminders to the phone calendar. It never diagnoses, and an unknown drug pair is "no data", never "safe".
  • Shohoj Budget — voice-first Bangla budget that understands "১২০০ টাকা" and "দেড় হাজার". Nothing is saved until you confirm.
  • HaatBazar AI — tells a farmer whether a distant market is worth the trip after transport and commission, with live weather for spraying. No pesticide doses — it refers to the label and Krishi Call Centre 16123.
  • Probaho Coach — interview and viva practice with a transparent score and a Gemini coach whose praise must quote your own words.
  • FeeGuard BD — shows how much of a freelance payment really reaches you, line by line, with each fee's source.

No sign-up. App data stays on your device, and a privacy page shows exactly what is sent where.

How I built it

  • Next.js 15, React 19, TypeScript (strict), Tailwind CSS v4, deployed on Vercel.
  • Google Gemini in JSON mode. Every response is validated with Zod; if validation fails, the errors go back to the model for one repair attempt.
  • Guardrails inside the schema. For example, a skill's evidence must be one exact quote from the CV, so a shortened quote like "Skills: [...] Node" triggers the repair loop instead of being silently accepted.
  • A live trace in the UI logs every model call, schema check, evidence check, retry and fallback, with measured timings.
  • Money is never computed by AI. All fee math lives in one pure module, and every route must reconcile exactly:

$$\text{gross} - \sum \text{fees} = \text{net}$$

  • Resilience: if Gemini is overloaded (HTTP 429/503) the app retries, switches to a lighter Gemini model, and finally falls back to a rule-based agent — always labelled.
  • Testing: 70 unit tests (Node's built-in test runner) and 103 real-browser checks with Puppeteer, including phone width.

Challenges I ran into

  • The model shortened its quotes. Gemini wrote evidence like "Skills: [...] Node", so my exact-quote check rejected true skills — 5 of 9 on one demo CV. Instead of loosening the check, I moved the rule into the schema and the prompt. Now every skill on the three demo CVs is verified.
  • Free-tier limits. The daily quota and 503 overloads would have dropped judges onto the fallback, so I added retries and a fallback model chain.
  • Bangla text. Bangla digits, number words (বারোশো, দেড় হাজার) and characters that can be stored two ways in Unicode — an early version saved "১২০০ টাকা" as 200.
  • Removing invented data. Early versions showed made-up deadlines, fake OCR accuracy scores and "real-time" prices. I removed all of them: unverifiable data is now user-entered with a source, or shown as a labelled example.

Accomplishments that I'm proud of

  • Every skill Gemini extracts from the demo CVs is backed by a quote found in the CV.
  • A health app that never diagnoses, a budget app that never saves unconfirmed voice input, and money math that always reconciles.
  • Seven working apps, built solo, live and tested.

What I learned

  • Treat model output as untrusted input. The best guardrails sit where the model can see the error and fix it.
  • Showing the trace builds more trust than hiding the AI.
  • Saying "we don't know" is a feature in health, money and admissions.

What's next for KormoPath

  • Pilot with student freelancers at my university and collect real feedback.
  • Pharmacist and agronomist review of the medical and crop notes.
  • Optional accounts and sync across devices.
  • Verified, sourced datasets for admission circulars and market prices.

Try it: kormopath.vercel.app · 2-minute judge tour · Demo video · Source code

Built With

Share this project:

Updates

Submission history