Inspiration

As an undergraduate Computer Science student working on my Final Year Project, I spend hours reading research papers and long technical articles to find just a few lines that matter. I wanted a faster way to surface the core findings and evidence — something that both summarizes and points me to the exact paragraph used as the source. That idea became Research Insight Summarizer.

What it does

Research Insight Summarizer extracts text from web articles and PDFs, produces concise, source-referenced summaries (3–6 bullets), and links each bullet to the paragraph(s) that support it. Key features:

Summarize the current browser page or an uploaded PDF in one click.

Generate bullet-point summaries where each bullet lists which paragraph(s) (¶N) support the claim.

Click a paragraph reference to jump to and highlight the exact paragraph in the original document or an internal viewer.

Keyword / semantic “find” across the extracted paragraphs (AI-assisted to find semantically similar passages, not just exact string matches).

How we built it

How we built it

The extension is implemented as a Chrome Manifest V3 extension with three cooperating parts:

Popup UI (popup.html / popup.js) — user controls to summarize, search, upload PDFs, and view results.

Content Script (contentScript.js) — extracts paragraph text from the active tab, assigns paragraph IDs, and highlights/scrolls to paragraphs on demand.

Service Worker Background (background.js) — handles privileged fetches, PDF byte fetching, and coordinates messaging between popup and content scripts.

APIs and Technologies Used

Gemini Nano (on-device LLM) — integrated through the Prompt API, Summarize API, Rewrite API, and Translate API to enable:

  • Concise summarization of extracted paragraphs.
  • Rewriting text into bullet-point style with paragraph references (¶N).
  • Optional translation of summaries into other languages for accessibility.
  • Generative responses for semantic “find” and clarification queries.

pdf.js — parses uploaded PDFs locally and extracts paragraph text for summarization.

Chrome Extensions APIs — used for inter-script messaging (runtime.sendMessage), DOM injection (scripting), and persistent storage.

Vanilla JavaScript, HTML, CSS — for the popup interface and highlighting logic.

The summarization flow: Popup requests paragraphs → Background/content script provides extracted text → Extension builds a structured prompt → Gemini Nano (via Summarize + Prompt API) produces bullet summaries referencing paragraph numbers → Popup renders clickable paragraph references.

Challenges we ran into

Mapping extracted text back to the original document reliably for highlighting (different pages have different HTML structures and PDF text flows).

Designing prompts that produce compact, verifiable bullet points that always include paragraph citations in a consistent format.

Coordinating async messaging across popup, background service worker, and content scripts so the UX feels responsive.

Accomplishments that we're proud of

A working, end-to-end chrome extension that converts long articles and PDFs into short, verifiable research summaries.

Bullet points that always include paragraph references (¶N) so users can quickly verify claims against the original text.

An internal viewer fallback that displays uploaded PDFs and allows paragraph-level navigation and highlighting.

Clear UX for both web articles and local PDF uploads, plus a semantic find feature powered by Gemini Nano to locate evidence even when wording differs.

What we learned

Practical experience building a Manifest V3 Chrome extension (popup, content script, service worker) and managing inter-script messaging.

How to integrate a modern LLM (Gemini Nano) via prompt design to produce structured, citation-style outputs.

How to use pdf.js to extract and normalize PDF text for downstream LLM consumption.

The importance of designing output formats (¶N references) that are machine-actionable so the UI can link back to sources programmatically.

What's next for Research Insight Summarizer

Add a small local embeddings index to support instant on-device semantic search across previously-summarized documents.

Improve paragraph segmentation and mapping for complicated PDF layouts (tables/figures).

Add user preferences for summary length, citation style, and citation linking behavior.

Build a one-click export (Markdown) of summaries with paragraph-linked references for research notes and literature reviews.

Built With

Share this project:

Updates