DEV Community

Adarsh Negi
Adarsh Negi

Posted on AI-assisted

SpeakUp

This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend

What I Built

I built SpeakUp, a local AI-powered mock interview coach for my friend Ayan.

Ayan is preparing for placements and has a frustrating problem: he knows the answers, but struggles to communicate them during interviews.

When we discuss technical topics normally, he can explain them well. But when placed in an interview-like situation, he tends to hesitate, use filler words, lose structure, and struggle to communicate his thoughts clearly.

So I built SpeakUp specifically for him.

Instead of simply giving him interview questions and showing the "correct" answer, SpeakUp acts as an interviewer:

Question → Ayan answers → AI evaluates → Follow-up question → Feedback

The system evaluates things such as:

  • Clarity
  • Relevance
  • Answer structure
  • Filler-word usage
  • Completeness
  • Communication quality

It then gives actionable feedback and continues the interview with a follow-up question.

The goal isn't to teach Ayan what to say.

It's to help him communicate what he already knows.

Demo

🌐 Live Demo: [NO DEPLOYED LINK]

Here's a short example of an interview session:

Interviewer: Explain the difference between a process and a thread.

Ayan answers the question.

SpeakUp then analyzes the response and provides feedback such as:

Clarity        7/10
Relevance      9/10
Structure      5/10
Communication  6/10

Filler words:
"um"           × 4
"actually"     × 2

Suggestions:
→ Start with a concise definition.
→ Compare the two concepts explicitly.
→ Finish with a concrete example.
Enter fullscreen mode Exit fullscreen mode

It then asks a follow-up question instead of ending the conversation.

Code

💻 GitHub: [NO GITHUB REPOSITORY]

The project is built with Python and is designed to run locally.

How I Built It

The core of SpeakUp is an open-weight AI model running locally rather than a closed AI API.

The current stack is:

  • Python — application logic
  • Streamlit — user interface
  • Ollama — local model inference
  • Gemma — open-weight language model
  • Git/GitHub — source control and project distribution

The basic architecture looks like this:

                ┌───────────────────┐
                │    SpeakUp UI     │
                │    Streamlit      │
                └─────────┬─────────┘
                          │
                          ▼
                ┌───────────────────┐
                │ Interview Engine  │
                │     Python        │
                └─────────┬─────────┘
                          │
                          ▼
                ┌───────────────────┐
                │      Ollama       │
                │  Local Inference  │
                └─────────┬─────────┘
                          │
                          ▼
                ┌───────────────────┐
                │      Gemma        │
                │   Open-weight AI  │
                └───────────────────┘
Enter fullscreen mode Exit fullscreen mode

The model generates interview questions, evaluates responses, provides feedback, and generates follow-up questions.

The application is designed around the model rather than using AI as an additional feature.

Why Does Open Innovation Matter?

Interview practice can involve personal information: a student's projects, weaknesses, communication difficulties, career plans, and the answers they give during practice sessions.

I didn't want Ayan's interview practice to depend entirely on sending that information to a closed API.

With a local open-weight model, the core interaction can happen directly on the user's machine.

Closed API

Ayan
  ↓
Application
  ↓
External API
  ↓
Closed model
  ↓
Response


SpeakUp

Ayan
  ↓
SpeakUp
  ↓
Local inference
  ↓
Open-weight model
  ↓
Feedback
Enter fullscreen mode Exit fullscreen mode

Open models also give developers more control.

I can experiment with different models, change prompts and evaluation strategies, run inference locally, and potentially fine-tune the system for interview practice without redesigning the entire application around a proprietary API.

For this particular project, open innovation isn't just about using an open model because the challenge asks for it.

It directly supports the problem I'm trying to solve:

private, controllable, locally-run interview practice.

My Agent Session

I used the session to document the development process and show how the project evolved from the initial idea into the final application.

What Ayan Thought

After building the first version, I gave it to Ayan and asked him to actually use it for a mock interview.

[ADD ACTUAL EXPERIENCE / QUOTE FROM AYAN]

The most interesting part wasn't whether the AI could answer interview questions.

It was whether it could help Ayan answer them better.

That's what I wanted to test.

What I Learned

Building SpeakUp changed how I think about AI projects.

It would have been easy to build another chatbot that asks questions and generates answers.

But the real problem wasn't:

"How can AI answer interview questions?"

It was:

"How can AI help someone communicate knowledge they already have?"

That distinction shaped the entire project.

It also showed me one of the practical advantages of open-weight AI: the model can become part of the application architecture rather than simply being an external API that the application calls.

Top comments (0)