Updated: · Automation Notes admin

From Paper to Notion: Scan, OCR, and Decide What to Keep

Warranties, utility bills, instruction manuals. Paper documents arrive and pile up on the edge of the desk under the assumption that "I might need this someday," only to vanish when you actually need them. Scanning them into Notion makes them searchable, but if you stop there, you're still left wondering: "Can I throw away the original?"

In this article, I share the workflow I use to keep paper from piling up. It consists of four steps: scan the document, transcribe it into text, save both the image and the text in Notion, and record whether to keep or discard the physical copy—along with how long to keep it.

A Workflow to Prevent Paper Clutter

  1. 1. ScanConvert to an image file
  2. 2. TranscribeExtract text with OCR; pass only text to AI
  3. 3. Store in NotionOne page per document; transcript below image
  4. 4. Decide physical handlingRecord keep or discard, plus retention period
This is the actual workflow I use, organized so that it doesn't depend on any specific scanner or app.

Why I Don't Feed Images Directly to the AI

In the beginning, I fed scanned images directly to Claude Code. Compared to the page count, images consume a large number of tokens (the unit of usage capacity). When I passed dozens of pages at once, token consumption spiked noticeably.

Now, before passing anything to the AI, I transcribe the images using a small script dedicated to OCR (extracting text from images). I only pass the text to the AI. In my setup, this script simply takes a list of image paths and returns text organized with headings for each document. It asks a Gemini API model to "transcribe the text in this image."

Data Handling When Using APIs for OCR

This is something you must verify if you handle personal documents. In Google's Gemini API Additional Terms of Service, data handling differs between Unpaid Services and Paid Services.

Unpaid ServicesPaid Services
Use of submitted contentUsed to improve services and develop machine learning technologiesNot used to improve products
Human reviewHuman reviewers may read inputs and outputsTerms state retention is limited to purposes such as abuse detection
Terms warningDo not submit sensitive, confidential, or personal information

The original text of the terms explicitly states for Unpaid Services: "Do not submit sensitive, confidential, or personal information to the Unpaid Services." I separate my usage by processing personal documents with a Paid Services key, and using Unpaid Services only for documents that wouldn't cause harm if viewed, such as publicly available technical documents. The terms can change, so please read the latest wording yourself when you use the service. This article reflects what I verified in October 2026.

Another important point comes before choosing an API tier: for documents you don't want anyone else to see, you always have the option not to send them to any service at all and handle everything locally.

How to Organize in Notion: One Page per Document, Transcript Below the Image

In Notion, where everything is saved, I create one page per document and attach the image. Right below the image, I place the transcript inside a toggle so the page doesn't look overly long.

In the Notion API, the official documentation outlines steps to "create a file upload" and "send the file," which allows you to attach the resulting upload to image blocks and other elements. Free workspaces also have a limit of 5 MiB per file. In my setup, I use this procedure through Claude Code. For getting started with Notion via Claude Code, see Connect Claude Code to Notion: Setting Up Notion MCP; for verifying formatting by reading pages back after writing, see Make the AI Re-read Every Notion Page It Writes (Line Breaks, Garbled Text, Stray Links).

Failures with Filenames Containing Japanese and Other Non-ASCII Characters

In my environment, attempting to upload images with filenames containing non-ASCII characters like Japanese using the curl command failed at times. The same method succeeded on other occasions, so it didn't fail consistently, and I haven't pinpointed the cause. Whenever it fails, I switch to one of two approaches:

I also encountered errors due to filenames containing non-ASCII characters like Japanese when using Gemini's file upload feature for OCR. In environments where filenames contain non-ASCII characters like Japanese, the safest approach is to pass a temporary alphanumeric copy from the start.

Record the Decision on Whether to Discard Every Time

Even if you scan documents, paper clutter won't decrease unless you get rid of the physical copies. But if the criteria are vague each time, anxiety prevents you from throwing them away. That's why I decided to record how to handle the physical document whenever I save it. Here are the two points:

  1. Whether to keep or discard
  2. If keeping, until when

Writing just "Keep" leaves you wondering when you can throw it away, and paper eventually piles up again. If you specify an expiration month and year, like "Keep until October 2028," all you have to do is review it when that time comes. For items determined by conditions—such as "until the next notice arrives"—write down that condition.

Example DocumentDecision Rationale
Appliance warrantiesKeep until the warranty expires, then discard
Utility bills (paid)Safe to discard once the amount and breakdown are recorded
Instruction manualsMany are available on the manufacturer's website; check, then discard
Contracts and official certificatesHard to reissue, so set a retention period and keep

Some tax-related documents have statutory retention periods. However, because the required number of years varies depending on the type of document and your situation, I won't list specific figures in this article. I recommend checking official guidance (such as from tax authorities) for your specific retention requirements and making a habit of deciding and recording a retention period for each document, as shown above.

Summary

If you need page or database IDs when using this Notion integration, you can use the Notion ID Finder. Also, for how to write instructions that Claude Code follows every time, see Put Your “House Rules” in CLAUDE.md So You Don't Have to Repeat Them.