A Claude Code skill that turns a Zotero-highlighted scientific paper PDF into structured notes appended to a Notion page.
It reads the actual highlight annotations (and any Zotero comment attached to each one) straight out of the PDF file — no Zotero database or desktop app connection required — then reads the paper itself to independently judge what its most important ideas are, and only then weaves the highlights in as supporting quotes/anchors under that structure. For papers whose contribution is a machine learning or statistical framework, it also pulls out the paper's core equations as real LaTeX.
Most "highlights → notes" tools just dump your highlighted sentences into a template, grouped by whatever you happened to select while reading. That flatters your reading session, not the paper's actual argument. This skill deliberately separates two passes:
- Read the paper and decide independently what the important ideas are.
- Go back through the highlights and anchor them onto that backbone as evidence — not every highlight needs to survive, and the outline isn't built by clustering them.
- A new Toggle Heading 1 section (titled with the paper's title) appended to a Notion page you name each run — it never touches or replaces existing content on that page.
- TL;DR, then Heading 2 / Heading 3 sections built around the paper's own most important ideas, with highlighted quotes and paraphrases woven in as support.
- LaTeX equation blocks for the paper's core formulas, when the paper is framework/method-shaped.
- A closing summary of what was added, what was left out, and any highlights that landed on a figure/image rather than text (so there's nothing to quote).
- Claude Code with skills enabled.
- A Notion MCP connector configured in Claude Code. This skill's
allowed-toolscurrently reference themcp__claude_ai_Notion__*tool names from Claude.ai's built-in Notion connector. If you're using a different Notion MCP server (e.g. the officialmakenotionMCP server), you'll likely need to adjust the tool names inSKILL.md'sallowed-toolsfrontmatter to match. - Python 3 with PyMuPDF. The skill will try to
pip3 installit automatically on first run if it's missing. - A PDF with real highlight annotations, e.g. exported from Zotero with your highlights intact (not a clean/unannotated copy).
Copy the paper-to-notion/ folder into your Claude Code skills directory:
cp -r paper-to-notion ~/.claude/skills/paper-to-notion/paper-to-notion /path/to/paper.pdf https://notion.so/your-notes-page
Both the PDF path and the destination Notion page are required arguments — there's no default/remembered page, and the skill will ask rather than guess if either is missing or ambiguous.
extract_highlights.pyopens the PDF with PyMuPDF and reads everyHighlightannotation's covered words directly from the page's text layer (matching by area overlap and deduping by word identity, to avoid the duplicated-text artifacts that naive per-quad text extraction produces), plus each highlight's color and any Zotero comment attached to it.- Claude reads the full paper and independently decides its most important ideas.
- It drafts notes structured around those ideas, with LaTeX equations where relevant, quoting or paraphrasing highlights as anchors, following a fixed formatting style (no em dashes, no bold, everything as bullets).
- It resolves your Notion page and appends the note as a new toggle section.
MIT, see LICENSE.