This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend.
What I Built
Interview Mitraha is a little interview-practice companion I built with a friend in India in mind. The days before an interview can make even a simple âTell me about yourselfâ feel heavy. I wanted to give my friend a calmer place to rehearseâwithout an audience, a score, or another expensive subscription.
You choose the role youâre preparing for, and Mitraha opens with one gentle question. From there, you can type or speak in English, Hindi, or Hinglish. If you use voice, you get to review the transcript before sending it. Mitraha follows up like a patient practice pal, helping you find your own words instead of handing you a script to memorize.
I havenât handed it to my friend for feedback yet, so I donât have a reaction to quote. That real-world tryout is still ahead of me.
Demo
There isnât a hosted demo: I wanted the model and interview practice to run on the learnerâs own computer. After installing Ollama and Node.js, the first run downloads Gemma (about 3.3 GB). Then start the app in PowerShell:
.\Start-Interview-Mitra.ps1
Open http://127.0.0.1:4173/ and choose a role. The repositoryâs README has the complete setup guide.
Code
Repository: github.com/acceptedsoul-11/Interview-Mitraha
acceptedsoul-11
/
Interview-Mitraha
First Learning milestone in hacktoberfest-2026
Interview Mitraha
A friendly, local-first interview practice partner powered by Gemma.
Interview Mitraha gives a friend preparing for their next opportunity a low-pressure place to rehearse answers. It opens with one warm-up question, lets them type or speak a reply, and keeps the practice conversation on their own computer with Gemma 3 running through Ollama.
The name combines Mitra (friend) with the Sanskrit form Mitraáž„ (à€źà€żà€€à„à€°à€). The interface is designed to feel like a supportive practice pal: no scores, no accent ratings, and no claim that an AI can decide whether someone is ready for a job.
What it does
- Starts a role-specific practice session with a gentle opening question.
- Sends answers to Gemma 3 4B through a local Ollama server.
- Supports typed answers and browser voice recognition in English, Hindi, and Hinglish.
- Shows a voice transcript for review before sending it to the model.
- Reads a Gemma reply aloudâŠ
The project includes Windows start/stop scripts, setup notes, the test suite, and a GitHub Actions workflow.
How I Built It
The UI is plain HTML, CSS, and JavaScript. A small Node.js server runs on loopback and sends each checked, bounded conversation to Ollama on the same computer. Ollama runs the open-weight gemma3:4b model; it writes the opening question and the follow-up replies. There is no hosted model API in the conversation path.
flowchart LR
A[Browser: type or review a transcript] -->|127.0.0.1| B[Node.js: validate and bound messages]
B -->|local Ollama API| C[Gemma 3 4B]
C --> B --> A
I kept the app small on purpose: no account, no conversation database, and no runtime npm dependencies. The nine automated HTTP tests run with Nodeâs built-in test runner and a local mock Ollama endpoint. I also tried a typed answer against the real local Gemma model.
Voice has one important caveat. Speech recognition comes from the browser: some browsers process it on-device, while others may send audio to their configured speech service. Mitraha makes that boundary visible and lets you review the transcript; pressing Send sends the text to local Gemma. Browser speech synthesis can read Gemmaâs answer aloud when available.
Why Does Open Innovation Matter?
Interview answers often include personal stories. With local Gemma, typed answers and model inference stay on the learnerâs computer. Thereâs no cloud model account, and no per-answer API bill. Once the model has been downloaded, typed practice can work offline.
Open weights also give the learner room to change the experience. They can inspect or edit the prompt that gives Mitraha its patient tone, or swap to a smaller compatible Gemma model if their computer has less memory. A closed API could provide good answers, but it wouldnât give the same control over the model and the path the conversation takes.
I donât want to overstate the privacy story: voice transcription depends on the browserâs implementation, and local inference still needs capable hardware and electricity. Iâd rather say exactly where the boundary is than make a blanket âeverything is privateâ claim.
Prize Categories
- Best Use of Gemma



Top comments (0)