Agent-first podcast generation
One tool call in. A two-host episode out.
Podsquick turns source material into a podcast episode two people would actually want to listen to — and returns a timestamped transcript, a citation manifest and show notes alongside the audio, so the agent that called it can quote, chapter or check the episode without ever playing it.
The whole happy path
Pass sources. Everything else has a defensible default.
curl -X POST https://podsmith.pages.dev/api/podcasts \
-H "authorization: Bearer $PODSQUICK_KEY" \
-H "content-type: application/json" \
-d '{"sources":[{"type":"url","url":"https://example.com/annual-report"}]}'
You get a job id straight back. Poll it — each poll also drives the pipeline — and when it
says succeeded you have a 12-minute Deep Dive with two British-English hosts,
a WebVTT transcript, and a manifest that maps every claim in the episode to the chunk of
source text it came from.
Why it sounds like people
An editorial pass first
Before a word of dialogue is written, a planning pass decides what the episode is about, what order makes it comprehensible, and — crucially — the awkward questions a curious listener would interrupt with. Those become the questioning host's lines.
A disfluency engine
Backchannels, interruptions on an em dash, mid-sentence self-corrections, restarts. Tunable from clean to loose, clustered where the conversation gets animated rather than sprinkled evenly. This is the single biggest lever on whether audio sounds human.
Dialogue-native TTS
The conversation is rendered in one pass by a multi-speaker model, so turn-taking and overlap come from the audio model — not from stitching two separate voices together and hoping the timing lands.
Why you can trust the output
Source-bounded, and it says so
The hosts assert only what the sources support. Where the sources are silent on something obvious, the script says so out loud — "the report doesn't actually say" — and the turn is flagged in the transcript.
A gate before the spend
A judge pass scores every substantive claim against the sources. Score below your threshold and the job fails before any audio is rendered, so a badly grounded script never costs you a TTS bill.
The audio is checked too
The rendered episode is transcribed and diffed against the script. Any segment where the audio doesn't say what the script said gets re-rendered once, and the fidelity score lands in the manifest either way.
An audit trail, not a vibe
One immutable manifest per episode: sources, chunk-level citations, model versions, seed, groundedness score with every unsupported claim listed, loudness measurements, cost. Written once, never rewritten.
Disclosed by default
A spoken AI-disclosure line closes the episode, and every manifest carries a disclosure block. Podsquick renders synthetic hosts only and refuses to imitate a real, identifiable person.
Review before you commit
Set require_approval and the job stops after the script, hands you the
draft, and renders nothing until you approve. Reject it and you've spent nothing on
audio.
Legible to agents by construction
| Surface | Where | What it's for |
|---|---|---|
| MCP server | /mcp | Seven tools; generate_podcast needs only sources. |
| OpenAPI 3.1 | /openapi.json | Full schemas, every default documented. |
| llms.txt | /llms.txt | The whole product in the format agents actually read. |
| Typed errors | every response | Stable code plus a remediation field saying what to change. |
| Idempotency | Idempotency-Key | Retries return the original job instead of double-spending. |
| Dry run | /api/estimate | Validates identically to the real endpoint and prices the job. |
What it doesn't do
Podsquick runs entirely on Cloudflare's edge runtime, which sets some honest boundaries. The manifest repeats these on every episode.
- Audio ships as 24 kHz mono WAV. No MP3 — the encoder doesn't run at the edge.
- Sources are URLs and pasted text. No PDF, Word, or YouTube ingestion.
- Loudness normalisation is a single measured programme gain. No compression or limiting.
- No music beds, station idents, or RSS feed generation.
- Exactly two hosts — the TTS engine's ceiling, not a stylistic choice.