Open source Β· MIT Β· local-first

Rehearse the interview.
Out loud. On your machine.

DeskMock is a local-first AI mock interviewer. It reads questions aloud, you speak your answers, and it coaches you with feedback and a scorecard β€” grounded in your real CV. Your voice never leaves your device.

No cloud voice service Β· no LiveKit Β· no GPU Β· your API key
deskmock β€” mock interview
$ python3 deskmock.py --speak --auto --role "Platform Director" --company "Acme"

πŸ”Š Interviewer β–Έ Walk me through the most recent platform you
   standardized for a large org. What were your criteria and the outcome?
   (dictate your answer β€” DeskMock reads it from the clipboard on Enter)

πŸŽ™ You β–Έ We consolidated three Kubernetes estates into one paved-road
   platform; measured on DORA metrics and a 30% infra cost cut…

πŸ€– Feedback β–Έ Strong outcome + metrics. Tighten with STAR:
   name the trigger and your specific decision. Power phrase:
   "single paved road, measured by change-fail rate."
QUESTION β–Έ How did you drive adoption across resistant teams?

   /done β†’ scorecard  Β·  /repeat β†’ hear it again  Β·  /skip

What is DeskMock?

A private interview coach that runs from your desk.

Most AI mock-interview tools are cloud SaaS or need a real-time voice stack (LiveKit + cloud speech, often a GPU). That shuts out anyone who is privacy-conscious, offline-ish, or on modest hardware. DeskMock takes the opposite stance: keep the voice local, keep the brain swappable, keep it a single command.

On-device dictation captures your spoken answer and only text reaches the model β€” on your own key. Point the model at a local endpoint (vLLM / Ollama) and nothing leaves your machine at all.

macOS say reads questions aloud Local dictation β†’ clipboard Any OpenAI-compatible LLM Transcripts saved locally Single command

Get started

Set up in under a minute.

A single Python script β€” no dependencies to install. You need Python 3.9+ and an OpenAI-compatible API key (or a local model). Voice is optional; you can start by typing.

1 Get the code

git clone https://github.com/sundarshankar/deskmock.git cd deskmock

2 Add an LLM key β€” grab one at openrouter.ai (create a key, add a few dollars of credit; a session costs pennies)

export OPENROUTER_API_KEY=sk-or-your-key-here # prefer a local model? skip the key and pass --base-url http://localhost:11434/v1

3 Run it β€” type your answers, using the bundled sample CV + JD

python3 deskmock.py --clipboard # …or with your own CV and the real job description: python3 deskmock.py --clipboard \ --cv my-cv.md --jd role.txt \ --role "Senior SWE" --company "Acme"

You'll get a question β€” type an answer, press Enter for feedback, and /done for your scorecard (/repeat, /skip too). Want it read aloud and hands-free? Add --speak and set up dictation β€” see the docs.

Why DeskMock

Practice that stays yours.

Everything that makes it useful, without giving up your privacy or your hardware.

πŸ”’

Your voice stays local

On-device dictation transcribes your answer; only the text reaches the model. Point at a local LLM and nothing leaves your machine.

🧠

Swappable brain

Any OpenAI-compatible endpoint β€” OpenRouter, vLLM, Ollama. Your key, your model choice, your cost.

🎯

Grounded in your real CV

Questions and coaching are built from your actual CV and the job description β€” never invented experience.

πŸ“Š

Real feedback + scorecard

Per-answer feedback and power phrases, then a scorecard: clarity, structure, specificity, technical depth, executive presence.

πŸ—‚

Transcripts you keep

Every session is saved locally as markdown so you can review answers and track how you improve.

⚑

No heavy stack

No LiveKit, no cloud voice service, no GPU. A single command on modest hardware.

Part of a local-first job-search toolkit

DeskMock is the mock-interview engine. It pairs with a local command center that tracks your pipeline and drives prep β€” same philosophy: your data, your machine, open source.

FAQ

Questions, answered.

Does my voice get sent to the cloud?

No. Dictation happens on your device; only the transcribed text is sent to the LLM, on your own API key. If you point the model at a local endpoint (vLLM / Ollama), nothing leaves your machine at all.

Do I need a GPU or a real-time voice stack?

No β€” no LiveKit, no cloud STT/TTS, no GPU. DeskMock uses your OS dictation for input and macOS say to read questions aloud. It runs on modest hardware as a single command.

Which LLMs work?

Any OpenAI-compatible endpoint. The default is OpenRouter with deepseek/deepseek-v3.2 (cheap and reliable), but you can pass --model and --base-url to use anything, including a local model.

What operating system do I need?

The read-aloud half uses macOS say plus a dictation tool, so voice is best on macOS today. The interview loop itself is cross-platform β€” on any OS you can type your answers and get the same coaching and scorecard.

Is it really free?

Yes β€” DeskMock is open source under the MIT license. You only pay for your own LLM usage (or nothing, if you run a local model).

How is this different from cloud mock-interview apps?

They're SaaS: your data and voice go to their servers, often behind a subscription and a heavy voice stack. DeskMock is local-first, private, swappable, and a single command β€” built for people who'd rather keep it on their own machine.