d4rk notes
Projects

Expresso Prep

Local-first interview prep app that turns a CV and job description into structured coaching, gap analysis, questions, and exportable prep notes.

dami2026-06-02nextjslocal-aiinterview-prepollama

Status

live

Difficulty

intermediate

Time Required

20m

Last Tested

2026-06-01

Overview

Expresso Prep is a local-first interview preparation web app that takes a CV or resume plus a job description, extracts the relevant signal, and generates a polished prep pack for the role.

The useful idea is simple: interview prep should be specific to the candidate and the job, not a generic checklist. The app turns the two source documents into focused gaps, likely questions, company preparation, and exportable notes.

What It Does

  • Accepts CV/resume and job description input
  • Parses uploaded files such as PDF and DOCX
  • Sends structured context to a local or configured LLM backend
  • Produces fit analysis, questions, talking points, and checklist-style prep
  • Supports PDF-style export of the resulting prep page
  • Keeps runtime data under the app data directory for self-hosted deployment

Architecture

The project is a Next.js app with API routes and a containerized production path. The Compose stack uses the ghcr.io/dhaevyd/expresso-prep image and mounts ./data into /app/data so application data survives container recreation.

The dependency set shows the main subsystems: document extraction with PDF/DOCX tooling, local persistence with SQLite, server-side rendering with Next.js, and model calls through configurable AI SDK/runtime settings.

Why It Matters

This is a practical example of a private AI assistant workflow. The user can prepare for interviews without uploading personal career history to a SaaS tool, while still getting tailored, role-specific coaching.

Current Status

The project has a Dockerfile, Compose service, runtime env-file support, and planning docs for the interview gap engine. The next strong milestone is hardening the analysis schema and keeping the generated prep output consistent across models.