Study podcasts that prove what they covered.

Poddae turns your bar-prep PDFs into short audio episodes — and refuses to ship if a single required knowledge point is missing from the script.

Common Law Larceny

Script v2 · 10:12 / target 10:00 · drafter=anthropic:claude-sonnet-4.5 · verifier=openai:gpt-class

1 required uncovered
  • must#1 Trespassory taking
    A trespassory taking requires the actor to take possession of the property without the consent of the rightful possessor; consent obtained by fraud is no consent at all and the taking is treated as trespassory.
    p. 4
    We start with the trespassory taking element — that means the actor must seize possession without the rightful possessor's consent, and consent that's been induced by fraud doesn't count as consent.

    verified by openai:gpt-class · 91%

  • must#4 Intent to permanently deprive
    The mens rea of larceny is the specific intent to permanently deprive the rightful owner of the property; an intent to borrow with a present ability and intent to return is not larceny.
    p. 7
  • should#5 Constructive possession
    An employee who is given mere custody of property remains in the employer's constructive possession; a taking by such an employee may be larceny rather than embezzlement.
    p. 9
    Here's a wrinkle worth knowing: when an employer hands an employee mere custody, the employer keeps constructive possession — so the employee taking the property is larceny, not embezzlement.

    verified by openai:gpt-class · 84%

Why Poddae exists

Three guarantees that NotebookLM can't make.

01

Source-grounded extraction

Every knowledge point cites a verbatim quote and page anchor in your source. If a quote isn't a substring of your PDF, Poddae rejects it before it ever reaches the script.

02

Two models, one script

The model that drafts your episode is never the model that audits it. Coverage isn't a self-grade — it's a second opinion from a different provider.

03

Refuses, doesn't omit

If your "must" topics can't fit in the requested duration, Poddae proposes splitting into two episodes. It will not silently drop content to make room.

For developers

Same proof, on the command line.

Pipeline runs identically from the CLI. Every stage is visible. Every stage is verifiable.

$ poddae build syllabus.pdf --target-min 10 --voice prof-01
[1/6] ingest      ✓ 1 source, 12 pages, 18,432 chars
[2/6] extract     ✓ 11 KPs (recall vs golden: 92%)
[3/6] plan        ✓ 5 sections, 1,438 word budget
[4/6] draft       ✓ attempt 1
[5/6] verify      ✓ 11/11 covered (drafter=anthropic, verifier=openai)
[6/6] render      ✓ episode.mp3 (10:12, target 10:00 ±15%)

→ writes ~/Poddae/<episodeId>/{script.md, coverage.json, episode.mp3}.

How it works

Four stages, one promise.

  1. 01

    Extract knowledge points

    We pull the testable facts out of your sources, each tied to a verbatim quote and page anchor.

  2. 02

    Check feasibility

    We measure what fits. If it doesn't, you get a refusal with a concrete split proposal — not a silent omission.

  3. 03

    Draft, then audit

    One model writes the script. A different model audits coverage. They never share a session.

  4. 04

    Render the audio

    Only after every required KP has a verified script span. Otherwise: refusal report, no audio.

Side by side

The same prompt. Two outcomes.

NotebookLM

You ask for a 5-minute version.

The audio comes back. "Constructive larceny" silently disappears. You don't notice until exam day.

Outcome: silent omission
Poddae

You ask for a 5-minute version.

Poddae checks feasibility, refuses, and proposes splitting into two 5-minute episodes — both fully covered.

Outcome: refusal + split proposal

Methodology

The model that writes never grades its own work.

Coverage isn't a self-grade. The drafter — Claude Sonnet — writes one section at a time, each anchored to a knowledge-point list. A separate model — a different provider entirely — receives the full assembled script with the KP list and audits whether each required topic is actually covered with a verbatim span from the script.

If any required knowledge point lacks a valid script span after three revision attempts, Poddae produces a refusal report instead of audio. We never ship a podcast we can't prove.

Drafter and Verifier separation diagram

Frequently asked

The questions a lawyer would actually ask.

Why monologue only?
Multi-speaker dialogue makes coverage auditing harder — verifying which speaker said what doubles the verification surface. We solved monologue first; dialogue is on the v2 roadmap.
What sources work?
PDF and Markdown / plain text. Scanned PDFs that need OCR aren't supported in v1. Web scraping isn't on the roadmap.
How big can a syllabus be?
Tested up to ~50 pages. Larger sources work, but they typically extract more knowledge points than fit in one episode — Poddae will tell you that upfront and propose a split.
Does it auto-publish?
No. Every episode requires you to approve the coverage report before audio renders. Failed coverage produces a refusal report instead of an mp3.
Where does my data go?
Local-first. Your sources, scripts, and audio live in ~/Poddae/<episodeId>/ on your machine. No cloud sync in v1.
Multi-speaker / multiple voices?
v2. Single narrator first, because we can prove coverage on a monologue. Two-voice dialogue and multi-narrator formats arrive once monologue coverage is rock solid.

Stop guessing what your podcast left out.

Every episode ships with a verifiable coverage report. Or doesn't ship at all.

Star on GitHub