How to turn a pdf into a scannable per-page overview
- Step 1Open the generator and drop your PDF — Load one PDF into the PDF Summary Generator. It auto-runs on drop — there's no format picker and no 'bullet mode' toggle, because the output is always the same per-page overview.
- Step 2Read the header line — The top three lines — pages, word count, reading time — are your one-line gist. Drop them into the channel first if people just need the headline numbers.
- Step 3Skim the Page-by-Page Overview — Each
### Page Nshows that page's opening ~200 characters. This is your scannable list; lines that start with a real heading are the most useful to share. - Step 4Trim to the lines worth sharing — The list has one entry per page — for a long PDF that's a lot. Copy only the page lines that carry the points you want to raise; delete the running-header noise.
- Step 5Paste into Slack / Teams / your doc — Markdown
###headings paste cleanly into Slack and Teams (which render them) and into Notion or any Markdown editor. For literal bullet characters, prefix the lines you keep with-by hand. - Step 6Download the full Markdown — Click Download to save the complete
<file>.md— handy when the on-screen preview truncates a long report at 5,000 characters.
What you get vs. what you might expect
Clearing up the difference between a per-page overview and an AI key-points list.
| Expectation | Reality in this tool |
|---|---|
| 5-15 AI-chosen key bullets | One line per page — count equals the page count, not a curated 5-15 |
| A 'detail level' control | No such control; the snippet is always the first ~200 characters of each page |
| Section-level summarisation | No section detection; the unit is the page, not the section |
Literal - bullet characters | Output uses ### Page N headings; add - yourself if you want bullets |
| Importance ranking | None — pages are listed in order, not by relevance |
Per-page overview format
Exact Markdown emitted per page by generateSummary() in lib/pdf/pdf-text-extract.ts.
| Element | Output |
|---|---|
| Page heading | ### Page 1 |
| Snippet | first ~200 chars, whitespace collapsed, trailing ... |
| Empty page | (No text content) |
| Blank line | one blank line between page entries |
Cookbook
How the per-page overview is shared in practice — and how to shape it into real bullets.
Pasting the gist into a Slack thread
A teammate asks 'what's in this 12-page brief?' The header stats plus the first few page lines answer it in seconds.
# PDF Summary **Pages:** 12 **Word Count:** 4,120 **Estimated Reading Time:** 17 min ### Page 1 Project Brief: Helios Rollout Objective Migrate all EU tenants... ### Page 4 Timeline Phase 1 (Weeks 1-3) Infrastructure provisioning and... ### Page 9 Risks and Mitigations Data residency: tenants must remain in-region...
Turning page lines into real bullets
The output uses headings, not bullets. To get a true bullet list, keep the useful page lines and prefix them with '- ' yourself.
From the overview, keep 3 page lines and rewrite: - Objective: migrate all EU tenants to Helios (p1) - Phase 1 is infra provisioning, weeks 1-3 (p4) - Key risk: data residency / in-region constraint (p9) (The tool gives you the source lines; you curate.)
Header-only gist for a quick ping
Sometimes the three header lines are all anyone needs — the document's size and how long it'll take to read.
**Pages:** 12 · **Word Count:** 4,120 · **Reading Time:** 17 min → "It's a 12-page brief, ~17 min read."
Why a long report makes a long list
The list has one line per page, so a 120-page PDF produces 120 entries. That's expected — trim before pasting.
**Pages:** 120 → 120 '### Page N' entries Don't paste all 120 into chat. Copy the 5-6 page lines that actually carry decisions or actions.
Scanned brief returns empty lines
If the brief is a scan, every page line is empty. OCR it first to get usable snippets.
### Page 1 (No text content) ### Page 2 (No text content) → Run PDF OCR, then re-run to get real page snippets.
Edge cases and what actually happens
Expecting a curated 5-15 bullet list
By designThe overview produces one line per page, not an AI-selected set of 5-15 key points. There's no model deciding what matters. To get a short curated list, keep the few page lines that carry real points and rewrite them as bullets yourself.
Looking for a 'detail level' or 'more/fewer points' setting
By designNo such control exists. The per-page snippet is always the first ~200 characters of each page, and the number of entries always equals the page count. Granularity is fixed at the page level.
Output has headings, not bullet characters
ExpectedEach entry is a Markdown ### Page N heading followed by the snippet — not a - bullet. Slack, Teams, and Notion render the headings cleanly; if you specifically need bullet glyphs, prefix the lines you keep with - after pasting.
A page line is just a running header or page number
ExpectedThe first ~200 characters often include a running header, footer, or page number rather than the body point. That's the literal page opening. Skip those lines when curating; they're noise for a chat summary.
Free tier: PDF over 50 pages
Blocked (free limit)Free blocks PDFs over 50 pages when you add the file. Since the list is per-page, very long PDFs are also unwieldy to share. Pro raises the cap to 500 pages; or split with PDF Split and summarise the relevant section.
Scanned / image-only brief
No text contentA scanned brief has no text layer, so every page line reads (No text content). Run PDF OCR to add a searchable layer first, then re-run to get real snippets.
Pasting the whole list into a chat channel
Trim firstFor anything beyond a handful of pages, pasting every ### Page N line floods the channel. Copy only the page lines that carry decisions or actions — the overview is a source list, not a finished message.
On-screen preview cuts off mid-list
Preview onlyThe browser preview shows the first 5,000 characters and marks it truncated. For a long report that may stop partway through the per-page list. Download the .md to get every page line.
Frequently asked questions
Does this give me AI-chosen key points?
No. It lists the literal opening ~200 characters of each page — one entry per page — not an AI-curated set of key points. Nothing is paraphrased or ranked. To produce a tight bullet list, keep the useful page lines and rewrite them yourself, or paste the full text into your own LLM.
How many bullets will it generate?
One entry per page — so a 12-page PDF gives 12 entries and a 120-page PDF gives 120. There's no setting to get 'a few key bullets'; the granularity is fixed at the page level. Trim the list to what you want to share.
Can I set a detail level or get section-level points?
No. There is no detail-level control and no section detection. The snippet is always the first ~200 characters of each page, and the unit is the page, not the section. For section structure, try PDF to Markdown, which preserves page headers.
Will it paste cleanly into Slack or Teams?
Yes. The output is Markdown, and ### Page N headings render as headings in Slack and Teams (and in Notion or any Markdown editor). If you want literal bullet characters, prefix the lines you keep with - after pasting.
Why are some of the bullet lines just headers or page numbers?
Because each line is the literal first ~200 characters of a page, which often starts with a running header or page number. It's a faithful page opening, not a curated point — skip those lines when shaping a message.
Some pages say '(No text content)' — why?
Those pages have no extractable text (they're scanned or image-only). Run PDF OCR to add a text layer, then re-run the overview to get real snippets for those pages.
How do I turn this into an actual short summary for a message?
Use the header stats as the gist, pick the 3-6 page lines that carry decisions or actions, and rewrite them as bullets (prefix with - ). For a model-written version, extract the full text with PDF to Text and paste it into your own LLM.
Is the document uploaded when I summarise it?
No. Extraction and the overview run in your browser with pdf.js — the panel shows '0 bytes uploaded'. Only an anonymous run counter is recorded when you're signed in, never the document content.
What's the largest PDF I can do this with?
Free allows up to 50 pages and 2 MB; Pro up to 500 pages and 50 MB; higher tiers more. Because the list is per-page, a very long PDF produces a very long list — split it with PDF Split if you only need one section.
Can I copy just part of the overview?
Yes — it's plain Markdown text. Select the header line and the specific page entries you care about and copy those. The Download button saves the complete .md if you'd rather work with the whole thing.
Does it work on a multi-column document?
It runs, but pdf.js returns text in the PDF's stored order, so a two-column page can interleave columns within the 200-character snippet. The page count and word count stay correct; only the snippet readability suffers. PDF to Markdown may give cleaner text.
Can I automate the overview for many briefs?
On a paid tier, yes — fetch the schema from GET /api/v1/tools/pdf-summary-generator, pair the @jadapps/runner once, and POST each file to 127.0.0.1:9789/v1/tools/pdf-summary-generator/run. The runner builds each overview locally; nothing is uploaded.
Privacy first
All PDF processing runs locally in your browser using PDF-lib and pdf.js. No file is ever uploaded — only metadata counters are saved for signed-in dashboard stats.