Demo video script (2–3 minutes)¶
Screen recording plan for the portfolio video. Every claim spoken in the video is demonstrated on screen in the same breath — nothing is asserted that the viewer does not see run.
0:00–0:20 — The problem (talking head or title slide). "Market research usually ends as a spreadsheet nobody can rerun or audit. I build the pipeline that produces, validates, and explains the spreadsheet. This is IngoShift — a portfolio demo on clearly labelled demo data."
0:20–0:50 — One command, full pipeline (terminal).
Run ingoshift run-all. Point at the output lines: five sources, silver
counts with visible filter/dedup numbers, "companies: 10 canonical entities,
1 open review pair", "quality: 35 rules … gate=PASS", 14 marts.
"Every run rebuilds this deterministically from immutable raw payloads."
0:50–1:20 — The gate actually blocks (terminal).
Show the poisoned-fixture test (pytest tests/e2e/test_pipeline.py -k gate -v)
or run against the poisoned sources file: exit code 3, "marts: NOT BUILT".
"A critical quality failure means no publication — that is a test, not a slogan."
1:20–1:50 — Dashboard (browser, docs/demo/dashboard.html).
Switch from EN to DE and show the correctly rendered labels “Übersicht”,
“Fähigkeiten”, “Öffentliche Aufträge” and “Qualitätsprüfung”. Then scroll:
demo banner first ("the honesty contract is part of the UI"), KPI tiles,
top-skills chart ("four spellings of Power BI became one canonical skill —
the original spellings are kept in the database"), transformation themes
("component indicators, deliberately no black-box score"), change events
("'removed from source' claims nothing about the real world").
1:50–2:20 — Traceability (spreadsheet + editor).
Open the XLSX export: README provenance sheet first (run id, data classes,
source licenses). Then show mart_regional_employment.raw_hash and the
matching raw file on disk. "Any number, back to its source bytes — the lineage
walk is an automated test."
2:20–2:40 — Close (repo view). Show README status section and test count. "207 tests, strict typing, and the limitations are documented on page one. If you want your region's version of this — with your real sources — the architecture is configuration-driven. Details in the case study."