AI Tools

Build an AI Interview App in Django: Full Series Index

The complete Build an AI Interview App series: a hands-on, build-in-public guide to building a real AI mock interview tool in Django, part by part.

Drake Nguyen

Founder & Research Lead

3 min read

The Complete Series

This is the full index for the Build an AI Interview App series — a hands-on, build-in-public walkthrough of how I built a real AI mock interview tool in Django, from an empty folder to a working product. Each part is short and focused, and they're meant to be read in order. You can try the finished product any time, free and with no sign-up, at ai-interviewer.tech.

Unlike most tutorials that stop at a toy example or hand you an abandoned repo, this series follows the actual decisions and code behind a live app — real parsing, a real agent pipeline, and the honest trade-offs along the way.

All Parts in Order

  1. Part 1 — Intro, Tech Stack & Plan: why I built this, choosing the stack (Python, Django, OpenAI Agents SDK), planning the features, and scaffolding the project.
  2. Part 2 — Designing the Database Models: the Interview, Question, and Report models, their relationships, and first migrations.
  3. Part 3 — Extract Text From PDF Resumes with pdfplumber: pulling clean, AI-ready text out of PDF CVs.
  4. Part 4 — Extract Text From DOCX Resumes with python-docx: handling Word CVs, plus the one table caveat to know.
  5. Part 5 — Using the OpenAI Agents SDK in a Real Django App: structured Pydantic output, clean agent definitions, and a service wrapper.
  6. Part 6 — Generate Interview Questions From a Resume With AI: designing the agent flow — validate, structure, generate, and save questions.
  7. Part 7 — Running the Pipeline in a Background Task (coming soon): moving parsing and AI generation off the request cycle with a background task and status polling, so the app stays responsive.
  8. Part 8 — Adding Voice Input with the Browser Speech API (coming soon): capturing spoken answers in the browser, and the real gotchas around recording and transcription.
  9. Part 9 — Securing File Uploads in Django (coming soon): why checking a file extension isn't enough, and validating uploads by their real content.
  10. Part 10 — Making the App Production-Ready (coming soon): the honest gap between a working demo and a real product — and how to close it.

Parts 1 through 6 are live now; the remaining parts are on the way. Follow along, or jump straight to the finished source below.

Want the Finished Source?

If you'd rather skip the full build and start from the finished, production-ready code, the entire application is available as a starter kit — the same source behind the live app, including the tuned prompts and the production layers the free series doesn't cover in full. It's a shortcut for builders who want to launch fast, and a genuinely unique portfolio project for students who want something real to show.

Stay updated with Netalith

Get coding resources, product updates, and special offers directly in your inbox.