2
16 Comments

My friend in med school kept complaining about NotebookLM, so I built the fix

I'll be upfront: I'm not a daily NotebookLM user.

I'm a developer, and what I do read constantly is papers — mostly arXiv in ML. I go hunting for new ones pretty much every day, so I know the pain of wrangling sources and references firsthand.

But the actual reason I started building this is my friend in med school.

She lives inside NotebookLM to study. And she kept hitting the same walls, over and over:

  • It generates flashcards, but she can't get them into Anki — which is where she actually reviews. Rebuilding them by hand is hours of work.
  • The citations are vague. A number next to an answer, a highlighted chunk of a 40-page PDF, no page number, nothing clean she can drop into a reference list.
  • Every notebook is its own island. No way to search across all of them once she had a dozen.

At first I figured someone must have solved this already. So I looked. There are a couple of extensions out there, but most of them just do plain export — nothing actually built around doing research and studying. And it's clearly not just her: dig around and you find the same complaints everywhere from students and researchers.

So I started building one.

What it does so far

It's a Chrome extension that sits on top of NotebookLM:

  • Pulls citations out and turns them into real APA / MLA / Chicago / BibTeX references you can paste straight into a paper
  • Searches across all your notebooks at once
  • Exports the AI flashcards to Anki — but with the source printed on the back of each card, so when you review you can actually check where it came from instead of blindly trusting the AI

That last one is the piece I care about most, because it came from a real person's actual problem, not a feature list.

The part nobody tells you

The code was the easy part. NotebookLM has no public API, so everything works by reading the page's HTML directly. Which means the day Google redesigns something, parts of this can just break, and I'll be chasing it. Every tool in this space has the same problem — so, here we are.

Where I'm at

Being honest, because that's the whole point of posting this:

  • Users: 0
  • Paying: 0
  • Revenue: $0

It's still in development. I'm putting it out this early because I'd rather build in the open and get it wrong in public than polish it forever in private and never ship.

So, a genuine question for anyone who uses NotebookLM for research or studying: what's the single thing that annoys you most about it? That's literally going to be my roadmap.

on July 13, 2026
  1. 2

    I don't have much experience with NotebookLLM, but what I was not excited about was the fact that I had to bring most of my own materials... I felt like I was delivering the next LLM training data sets.... I would much prefer a private support case that could data mine and reference my project folder.. Thank you for your post, as it has inspired me to also post my new project that I have spent more time polishing than getting early feedback.... sigh...........breath.......sigh....

    1. 1

      Ha, the "am I just feeding the next training set" feeling is real. And yeah, having to bring all your own sources is exactly the friction — NotebookLM is basically a reader you have to feed, not something that goes and finds stuff for you. The "point it at my project folder and let it work" idea is a whole different (and honestly harder) product, but I get why you'd want it.

      And hey — go post your project. Seriously. I sat on this way too long telling myself it wasn't ready, and the second I posted it I learned more in a day than in the weeks of polishing before. Ship the messy version. Nobody's judging as hard as you are.

  2. 2

    I like that you're solving the point where NotebookLM stops being useful rather than trying to compete with it.

    The strongest features you mentioned all bridge the gap between generating knowledge and actually using it—whether that's reviewing in Anki, citing sources, or finding something across notebooks. That feels like a much clearer workflow to own than simply adding more AI capabilities.

    1. 1

      You put it better than I did in the actual post. "The point where NotebookLM stops being useful" — that's exactly the line I've been circling around and couldn't name.

      That gap between generating knowledge and using it is the whole bet. Adding more AI is a race I'd lose against Google anyway; owning the workflow after the AI is done feels like the only defensible spot for a small solo thing. The cross-notebook search especially — that one came straight from watching someone drown in a dozen separate notebooks with no way to look across them.

      Really appreciate you taking the time to think it through like this.

      1. 1

        I'm glad it resonated.

        Reading your reply gave me one thought about owning the workflow after the AI, and I don't think I could explain the reasoning properly in a thread without oversimplifying it.

        If you're interested, what's the best email to reach you on?

        1. 1

          Appreciate that — genuinely curious now. If you can drop even a one-line version of the thought here, I'd rather kick it around in the open so anyone following the thread benefits too. If it turns out to need more room than a comment allows, happy to take it to email from there.

          No worries either way — even the rough shape of it would be useful.

          1. 1

            Happy to share the short version.

            The thought is that once you own the workflow after the AI, your long-term competitor may no longer be another AI tool—it becomes whatever system people already trust to turn knowledge into action.

            Why I think that changes some of the strategic choices you're making is the part I don't think I can do justice to in a comment. If, after reading the short version, you still want to dig into it, I'm happy to continue over email.

  3. 1

    Your zero-match ping catches absence; for wrong-element matches, give the extension one synthetic notebook with known outputs and run a scheduled smoke test against it. Assert invariants, not selectors: expected source title, page range, card count, and a stable phrase. If the selector still returns nodes but those checks fail, you catch silent garbage before a student does.

  4. 1

    The "no public API, so I read the page's HTML directly" part is the one I'd flag to
    anyone who thinks this kind of thing is easy. I'm building a Windows desktop tool that's
    in the same boat: no official API for what it hooks into, so it rides on undocumented OS
    internals Microsoft can change out from under me. You're right that everyone in these
    spaces carries the same exposure, and it doesn't really go away.

    The Anki card with the source on the back is the detail I'd protect. The failure mode with
    AI study tools is quietly trusting a wrong answer, and putting the citation right where you
    review it is exactly the check most exports skip.

    Genuine question on the fragility: do you have any early warning for when NotebookLM's
    markup shifts (a small self-test that pings you when a selector stops matching), or is it
    fix-it-when-a-user-reports for now? That's the piece I keep going back and forth on for my
    own thing.

    1. 1

      Ha, we're in the exact same boat — riding undocumented internals someone else can yank out from under us. Solidarity.

      On the early-warning question: yeah, I just wired this up — funnily enough another commenter on this same post nudged me toward exactly this ("wire an 'it broke' signal so you hear it from telemetry before angry users"), and it finally got me to stop putting it off. It's dead simple. Every selector that matters has a stable id, and when a scrape comes back with zero matches — zero, not "fewer than expected," just nothing — the extension fires a tiny ping to my worker: site, which selector, extension version. No user content, nothing sensitive, just "this hook returned empty." I throttle it to once a day per user per selector so one bad redesign doesn't hammer me with thousands of identical pings.

      The nice part is the signal is basically unambiguous. A selector that used to return 20 nodes and now returns 0 isn't a fluke — it means the markup moved. So instead of a user emailing me "your thing is broken" the night before an exam, I see it on a dashboard the morning it ships and can go fix the one selector.

      The thing I haven't solved: partial breakage. Zero matches is loud and obvious. But if a redesign makes my selector match the wrong element and I quietly pull garbage, that sails right past the zero-check. Still thinking about how to catch that without a human eyeballing output. If you crack that one for your OS-internals case I'd genuinely want to hear it.

      And agreed on the citation-on-the-back thing — that's the one detail I'm not letting anyone talk me out of.

  5. 1

    The Anki export with source attribution is the part that would actually pull med students, that citations-are-vague and every-notebook-is-its-own-island pain is real and specific. Since you're at zero users and shipping early: when someone does try it and you tweak based on their annoyance, how will you tell whether the tweak actually fixed the drop-off, or is it still too early to read anything?

    1. 1

      Honestly? At this stage I can't tell from the numbers, and I think pretending I can would be the mistake. With a handful of users, any "drop-off went down" is just noise — I'd be reading tea leaves and calling it a metric.

      So early on I'm not really trusting quantitative signals at all. What I'm doing instead:

      • Watching, not measuring. I'd rather sit on a call and watch one med student actually try to get their flashcards into Anki than stare at a funnel. If they stop talking, squint, or go "wait, how do I…", that's the signal. You can't fake that and you don't need 100 people to see it.
      • Fixing only things I understood the "why" of. If someone bounces and I don't know why, I don't touch anything — a blind tweak on a mystery is how you convince yourself noise is a trend. I'd rather ask them than guess.
      • Treating early changes as "did this remove a specific, named frustration for this specific person," not "did this move a number." The number can wait until there's enough traffic for it to mean something.

      Basically I think the trap you're pointing at is real: the temptation to A/B-think your way through a stage where you don't have the sample size to A/B anything. Early on the honest instrument is a conversation, not a dashboard.

      Curious how you've drawn that line yourself — at what point did numbers actually start telling you something true, versus just feeling like they should?

  6. 1

    Building in public is the right approach. The Anki export with source attribution is especially useful—being able to verify AI-generated content during review is a huge win. One feature I'd love to see is better support for research workflows: automatic extraction of figures/tables, linked citations with exact page numbers, and cross-notebook semantic search powered by embeddings. Looking forward to seeing how this evolves.

    1. 1

      You just listed my roadmap back to me, which is either encouraging or slightly spooky. Quick status on all three, since I've actually poked at each:

      Page-numbered citations — this is the one I most wanted and the one that fought back hardest. I spent an evening in the network tab watching what NotebookLM actually returns, and the bad news is it only hands back character offsets into the source text, never page numbers. The UI itself doesn't have them. So the only path is grabbing the original PDF and computing the page myself with pdf.js — doable in theory, but it hinges on getting the raw file, which isn't guaranteed. I've got it written down as the hardest, highest-value thing on the list.

      Cross-notebook search — this one already ships, but with an honest asterisk: it's keyword, not embeddings. Semantic search across notebooks is the obvious next rung and I know it, I just haven't wanted to promise vectors before the plain version is actually good.

      Figure/table extraction — that one's new to me and it's a good idea. Adding it to the list.

      The through-line on all of these is the same wall: no public API, so I'm reading whatever the page and its private endpoints will give me. Which is exactly why "even in edge cases they won't notice" is the whole game. Genuinely appreciate the specifics — vague "add more features" comments I can't do anything with; this I can.

  7. 1

    the anki gap is the actual product here, not the citations. a med student's whole workflow is spaced repetition, and NotebookLM generating flashcards it can't hand to Anki is like a coffee machine that won't pour into a cup. nail clean .apkg export (or AnkiConnect if they've got the desktop app open) and you've solved the one that costs her hours every week.

    the page-number citation problem is the hard part and also your moat. the plain-export extensions punt on it because NotebookLM hands you a chunk, not a page, so you have to map the chunk back to the source pdf's page yourself. get reliable page-level refs while everyone else outputs 'source 3, somewhere in a 40-page pdf' and that's the feature researchers actually pay for.

    one caution since you're a dev: you're building on top of someone else's DOM. google will reship that UI and quietly break your selectors, probably right before exam week. worth wiring a fast 'it broke' signal so you hear it from telemetry before you hear it from angry users.

    1. 1

      This is one of the most useful comments I've gotten. Thank you for actually thinking it through.

      You're right that the Anki gap is the real product. I framed the post around citations because that's what I personally feel, but the flashcards-that-can't-reach-Anki thing is the one that costs a real person real hours every week — and that's a much sharper reason to exist. I'm doing a clean .apkg export; AnkiConnect for people who have the desktop app open is a great call, hadn't thought about detecting that. Adding it to the list.

      The page-number point is the one I'm going to sit with. You nailed exactly why it's hard: NotebookLM hands you a chunk, not a page, so you're reverse-mapping the chunk back onto the source PDF yourself. It's annoying enough that everyone else punts and outputs "source 3, somewhere in a 40-page PDF." If I can get reliable page-level refs, that's the thing worth paying for. That's now the hard problem I actually want to solve.

      And the DOM warning — I laughed, because I literally spent all of yesterday on exactly this. Google had quietly changed a selector, my code was matching zero elements, and the tool was "working" while silently saving half of every conversation. I ended up writing a little probe script just to tell me the truth about the live page. A telemetry "it broke" signal is the obvious next step — hearing it from a dashboard instead of an angry student the night before an exam. Putting that in.

      Seriously, thanks. You just reordered my roadmap.