NotebookLM + Claude Tutorial

A grounded research-to-production pipeline for citation-backed writing.

Why combine NotebookLM with Claude?

NotebookLM and Claude do different jobs. NotebookLM is a research notebook: you drop source documents into it and it answers questions only from those documents. It cites every claim, refuses to invent, and keeps everything scoped to the material you gave it. Claude is a general-purpose reasoning engine: it writes, edits, code, drafts, summarizes, and reasons across open-ended prompts.

Used together, they form a tight research-to-production pipeline. NotebookLM does the grounded reading; Claude does the synthesis, drafting, and orchestration. The pattern I’ve been running for the last few months looks like this: collect sources, query NotebookLM for the grounded facts, hand the citations to Claude, then refine.

The workflow

1

Collect your sources

Drag PDFs, Google Docs, web pages, and pasted notes into a single NotebookLM notebook. Aim for 10 to 30 sources per project. Keep them on-topic; NotebookLM is unforgiving about scope and will refuse to answer if the corpus does not contain the answer.

2

Query for the grounded facts

Ask NotebookLM directly: “What does the source say about X?” Every response is a citation you can verify. Use this to build a short list of bullet-point facts with links. This is the part where hallucinations cannot happen — the model is constrained to the corpus.

3

Hand the bullets to Claude

Paste the cited bullets into Claude with a clear instruction: “Draft a 600-word explainer using only these facts. Do not add anything not supported by the bullets. Flag any claim that needs a source.” Claude’s job here is prose, not facts.

4

Refine and verify

Read Claude’s draft against the source bullets. If it added anything, cut it. If it left anything out, ask for it explicitly. This loop is fast — typically two or three rounds before the draft is publishable without further edits.

5

Ship

Drop the draft into WordPress, Notion, or wherever the final output lives. The citations carry through your source bullets, so you can pull them back out at the end if you need a reference list.

What goes wrong

NotebookLM will refuse to answer

If a question is outside the corpus, NotebookLM says so. This is the feature, not a bug. The mistake is treating that refusal as a failure — it is correct behavior. Reformulate the question to something the source actually covers, or add more sources.

Claude will over-write

Given a list of facts, Claude often tries to be helpful by smoothing the edges, adding connective tissue, and inserting plausible-sounding context. If your domain is regulated (medical, legal, financial), this is a hard problem. The fix is explicit: “Do not add anything not in the bullets. If you cannot answer from the bullets, say so.”

Citation drift

The bullets from NotebookLM cite source pages. When you hand those bullets to Claude, the citations survive in the text, but the page numbers may not. Always keep the original source notebook open while you edit. When in doubt, return to the source.

Concrete example: building a guide page

What I am doing right now, on this site, is exactly this pattern. The Learning Center guides are produced by:

  1. Collecting 15 to 25 source URLs in a notebook (blog posts, vendor docs, Reddit threads, manufacturer pages).
  2. Querying that notebook for the canonical facts: pricing ranges, common failure modes, recommended configurations, current benchmarks.
  3. Feeding the cited bullets to Claude with a target document shape (length, tone, section list).
  4. Iterating until the draft matches the source bullets and reads like a finished guide.

The upside: no fabricated specs, no invented pricing, no hallucinated product recommendations. The downside: it takes longer than letting Claude freestyle. The upside is usually worth it when the audience is going to act on the output.

Automation and orchestration

If you do this kind of pipeline often, the next step is to wire it up. Claude Code, Hermes Agent, and similar CLI tools can call NotebookLM through a headless browser and run the queries programmatically. The shape of the automation is straightforward:

# pseudocode
sources = load_sources(target_topic)
bullets = notebooklm_query(sources, “Extract canonical facts with citations”)
draft = claude_draft(bullets, length=1000, tone=”engineer”)
draft = claude_verify(draft, bullets)
publish(draft)

The trick is keeping Claude from drifting past the citations. A second pass — Claude verifying its own draft against the bullets — catches about 80 percent of the over-writes.

When to use this pattern

The combination earns its keep when:

  • You are writing about a domain you do not personally know well.
  • The output will be cited, audited, or acted on.
  • You have access to authoritative sources (PDFs, official docs, papers).
  • The audience can tell the difference between sourced and unsourced writing.

It is overkill for personal brainstorming, draft replies, or low-stakes content. For those, just use Claude directly. The point of the two-step is rigor — and rigor is only worth the round-trip when the stakes justify it.

Resources

NotebookLM

Google’s grounded research notebook. Free with a Google account. Up to 50 sources per notebook.

notebooklm.google.com →

Claude

Anthropic’s general-purpose assistant. The API and Claude Code CLI are the programmer-facing surfaces.

claude.ai →

Hermes Agent

CLI agent that can drive NotebookLM through a browser and orchestrate the whole pipeline. What I used to write this guide.

Tutorial on this site →

Tip: If you build this pipeline, save it as a skill. The shape of the work — collect, query, draft, verify, ship — is the same every time. Once you have written the prompt template, you can run it on the next topic without re-thinking the steps.
Want a site for your tutorial? Get in touch →