Charmco: Project Story

The problem (and why I built Charmco)

Retail hiring is brutal on both sides.

Recruiters get hundreds (sometimes thousands) of applications for front-of-house roles, but realistically only have time to properly interview a small fraction. Meanwhile good candidates get filtered out early, often without ever getting a real chance to show how they’d perform in the role. This often loads to retail stores hiring sub-par staff and us the customers, having one too many unflattering experiences at such establishments (not to point any fingers...)

I wanted to flip that: give every candidate a fast, realistic shot, and give recruiters an instant, structured signal so they can spend human interview time on the top candidates and ensure they hire the best fits.

So, Charmco is a voice-first pre-interview simulator: candidates speak with an AI “interviewer” for a role simulation, then recruiters get an immediate evaluation (score + strengths + improvements + recommendation).


What Charmco does

Charmco runs a short voice interview simulation for a retail role and produces a structured outcome:

  • Voice interview simulation (ElevenLabs Agent)
  • Live transcript during the conversation
  • AI evaluation (Gemini) that returns:
    • A discrete score out of 5
      Very poor (1), Poor (2), Moderate (3), Very good (4), Brilliant for the role (5)
    • A 2–4 sentence summary of how the interview went (synopsis)
    • What the candidate did well (with evidence)
    • What to improve (concrete, actionable)
    • Final recommendation: progress to a human interview or not + why

For the hackathon demo, I focused on a clear target: high-volume retail. The live role card is:

  • Tech Retail Specialist (flagship store) — inspired by premium retail environments (not affiliated)

I also included two “Coming soon” role cards to show the product direction:

  • Supermarket Retail Assistant
  • Luxury Boutique Associate

Why voice (instead of another form)

Retail is communication, tone, empathy, and handling real situations under pressure. Voice captures signal that resumes don’t:

  • clarity and confidence
  • listening and responsiveness
  • calmness under pressure
  • customer-first phrasing
  • structure of thought

It also makes the experience feel like the real job, not a generic questionnaire (Test them IN the job before they do the job).


How I built it

Charmco has three main parts:

  1. Frontend (Vite + React)

    • Clean editorial landing page and role selection
    • “Interview Simulator” experience inside the browser
    • Analysis results rendered in a polished report view (ring score + structured sections)
  2. Conversation layer (ElevenLabs React SDK)

    • Browser microphone access
    • Real-time conversation with the ElevenLabs Agent
    • Captures the transcript turns live (interviewer + interviewee)
  3. Backend (FastAPI on Cloud Run) + Gemini evaluation

    • Receives transcript turns from the frontend
    • Formats a clean transcript
    • Sends it to Gemini with a strict rubric
    • Returns a structured JSON response:
      • score, label, summary, did_well, improve, final_thoughts

Deployment:

  • Frontend: Firebase Hosting
  • Backend: Google Cloud Run
  • AI: Gemini (Google Cloud)

Satisfying the hackathon requirement of integrating Google Cloud (Gemini/Cloud Run/Firebase) with the partner tech (ElevenLabs).


The rubric (how the scoring works)

I didn’t want “AI vibes.” The analysis is driven by a rubric aligned to what makes someone strong in retail:

What good looks like

  • Customer obsession: listening, empathy, calm tone
  • Clear communication: concise + structured answers
  • Sales + problem solving: identifying needs, handling objections
  • Team + reliability: accountability, learning mindset
  • Real examples: specific situations, not generic claims

Red flags

  • Vague answers without evidence
  • Dismissive or arrogant tone
  • Dodging questions / poor listening
  • Negativity / low professionalism

The evaluator is instructed to judge only what exists in the transcript (no assumptions) and to reference specific moments when possible.


Challenges

This project was fun to build, but alas, like any hackathon there were maybe a few "ragequit" moments:

  • CORS + local dev friction:
    Running frontend and backend on different ports meant getting CORS correct early (not sure CORS just hates me), and again after deployment when origins changed (localhost → Firebase domain).

  • ** Voice is expensive :( **
    If a public demo gets spammed, your best feature unfortunately becomes your biggest liability. Hence this forced a lot of product decisions: gating, controlled entry and origin restrictions. Not glamorous stuff, but safety was a challenge and will continue to be as the product evolves.

  • Caching gotchas (favicon final boss):
    The site kept showing the Vite icon even after changes, I'll admit this one took embarrassingly long to figure out (I just had to hard refresh the tab) .


What I learned

This project forced me to level up fast on:

  • building a real frontend ↔ backend ↔ model pipeline
  • deploying a multi-service app (Firebase + Cloud Run)
  • handling browser voice UX + transcript capture
  • writing prompts that produce structured, consistent outputs instead of “chatty AI”
  • staying disciplined with git hygiene and deployment under time pressure

Also: I learned that my own “interview performance” still needs work — my first runs scored 1/5 and 2/5, which was humbling… and honestly a good sign the evaluator wasn’t just being nice.....


What’s next

If Charmco continues beyond the hackathon, the next upgrades are obvious:

  • Role library & templates: role-specific simulations for different retail segments (supermarket, luxury, electronics, hospitality)
  • Candidate sending flow: email/link generation + tracking
  • Auth + usage controls: recruiter accounts, seat limits, and rate limiting to manage voice credit usage
  • Analytics dashboard: cohort comparison, common weaknesses, candidate ranking, exportable reports

Closing

Charmco is built for one goal: help recruiters find the top candidates faster, while giving candidates a real chance to prove themselves beyond a resume.

Voice is the most human interface, and for retail, perhaps the most relevant one.

Built With

Share this project:

Updates