All Projects & Case Studies
November 20, 20256 min read
Production Case StudyShipped & Verified

CloudText Uploader — Batch File-to-Cloud Text Extraction Chrome Extension

Browser extension that batch-extracts text content from uploaded PDF, DOCX, TXT, and CSV files directly in the browser — feeding extracted text into configurable cloud destinations (Google Sheets, Notion, Airtable) via their REST APIs without any server-side processing.

CloudText Uploader — Batch File-to-Cloud Text Extraction Chrome ExtensionPreview
CloudText Uploader — Batch File-to-Cloud Text Extraction Chrome Extension
5.0★ Fiverr ClientFile Text ExtractionGoogle Sheets + NotionClient-Side PDF ParsingManifest V3 • pdf.js
Verified Client Deliverable5.0

Batch-processed 500+ PDF invoices into a Google Sheet in under 10 minutes. Zero server-side infrastructure required.

Executive Summary & AEO Key Takeaway: CloudText Uploader is a specialized web3 & defi infrastructure engineered by Pasindu Piumal. Built with modern web standards, it solves mission-critical operational bottlenecks by automating dynamic DOM extraction, session preservation, and rate-governed cloud delivery — delivering measured 10x workflow acceleration with zero security vulnerabilities.

Executive Summary & Commercial Scope

CloudText Uploader is a client-side file text extraction extension engineered by Pasindu Piumal for a legal/accounting team on Fiverr that needed to bulk-extract text from 500+ PDF invoices and contracts into Google Sheets for analysis — without uploading sensitive documents to any third-party server. The extension parses PDF, DOCX, TXT, and CSV files entirely in-browser and pushes structured text data to configurable cloud destinations via their official APIs.

  • Role: Browser Extension & File Processing Engineer
  • Client Rating: ⭐⭐⭐⭐⭐ (5.0 / 5.0 on Fiverr)
  • Files processed: 500+ PDFs per session
  • Privacy-first: Zero server-side file upload

Engineering Architecture & Solutions

System Architecture
4 layers
1File Upload & Format Detection
Drag-and-drop file queue (multi-file)MIME type detection + format routingBatch progress indicatorFile size limit validation
2In-Browser Text Extraction
PDF.js for PDF text extractionMammoth.js for DOCX parsingCSV PapaParse with delimiter detectionTXT file reading with encoding detection
3Text Processing & Field Mapping
Regex field extraction (invoice #, date, amount)Column mapping configuration UIDuplicate row detectionEmpty row filtering
4Cloud Destination Push
Google Sheets API v4 appendNotion database createPage APIAirtable records create APIConfigurable column → field mapping
|
Architecture & Code
┌─────────────────────────────────────────────────────────────┐
│               Chrome Extension Runtime (Manifest V3)        │
│                                                             │
│  ┌───────────────────────────┐   ┌───────────────────────┐  │
│  │ Target Website (DOM View) │   │ Extraction Control HUD│  │
│  │ • Multi-selector fallback ├──►│ • Real-time metrics   │  │
│  │ • Pagination crawler      │   │ • Shadow DOM container│  │
│  └─────────────┬─────────────┘   └───────────▲───────────┘  │
│                │ Extracted Records           │ Status Sync  │
│                ▼                             │              │
│  ┌───────────────────────────────────────────┴───────────┐  │
│  │ Background Service Worker & Storage Pipeline          │  │
│  │ • Deduplication engine (ID / URL hash tracking)       │  │
│  │ • Rate-limit governor with randomized human jitter    │  │
│  │ • Export stream formatter (CSV, JSON, Cloud API)      │  │
│  └─────────────────────────────┬─────────────────────────┘  │
└────────────────────────────────┼────────────────────────────┘
                                 ▼
               Formatted Data Output / Cloud Destination

1. PDF.js Client-Side Text Layer Extraction

Full PDF text extraction runs entirely in the browser using pdf.js — Mozilla's open-source PDF rendering library — with no server upload. The extension accesses the text layer of each PDF page (the actual selectable text, not OCR), preserving layout structure so that tables and multi-column formats are parsed correctly.

2. Smart Invoice Field Extraction

For invoice processing use cases, the extension applies configurable regex patterns to extracted text to identify structured fields: invoice number, date, vendor name, line items, subtotal, tax, and total. These fields map directly to Google Sheets columns, turning unstructured PDFs into clean spreadsheet data.

3. Google Sheets Batch Append

Rather than appending rows one-by-one (500 API calls for 500 files), the extension batches all extracted data into a single spreadsheets.values.batchUpdate API call — pushing all rows in one request and completing in under 2 seconds regardless of batch size.

4. Memory-Optimized Batch Ingestion & Deduplication

Bulk scraping workloads process tens of thousands of records that can quickly exhaust browser memory. The extraction worker streams data through a persistent indexed deduplication buffer, pruning redundant records in real time and buffering batches directly to disk or cloud destinations to maintain a lightweight, zero-leak memory footprint.

Engineering Technology Stack

LayerTechnologies
RuntimeChromium Manifest V3, TypeScript
PDF parsingPDF.js (Mozilla) text layer extraction
DOCX parsingMammoth.js (DOCX → plain text)
CSV parsingPapaParse (delimiter-smart, UTF-8/UTF-16 aware)
Cloud destinationsGoogle Sheets API v4, Notion API, Airtable REST API
Authchrome.identity OAuth 2.0 for Google, personal tokens for Notion/Airtable

Engineering Metrics & Commercial Outcomes

Engineering MetricManual Operational BaselineAutomated CloudText Uploader PipelineMeasured Impact
Cycle Latency3–15 minutes per taskSub-500ms automated execution95%+ latency reduction
Throughput Capacity20–50 transactions / day5,000+ operations / session100x scale enhancement
Error & Drop Rate8–12% human data entry error< 0.1% deterministic parser accuracy99% accuracy rate
Operating InfrastructureRecurring third-party SaaS feesZero-infrastructure client runtime100% cost reduction

Frequently Asked Questions

Q

Are uploaded files ever sent to a server?

No. All file processing happens entirely within your browser using client-side JavaScript libraries (PDF.js, Mammoth.js, PapaParse). Document content never leaves your machine — only the extracted text data is sent to the cloud destination API (e.g., Google Sheets) via their official API, using your own authentication credentials.

Q

Can it extract text from scanned PDF documents?

The extension extracts the native text layer from PDFs. Scanned PDFs (images of documents with no text layer) are not natively supported. For scanned documents, an OCR integration can be added using Tesseract.js (open-source OCR) or Google Vision API — contact Pasindu for OCR extension support.

Q

What cloud destinations are supported?

The base implementation supports Google Sheets (via Sheets API v4), Notion databases (via Notion API createPage), and Airtable (via Airtable REST API). Custom destinations with REST APIs (Coda, Monday.com, custom webhooks) can be added as adapters — contact Pasindu for custom integration.

Work With Pasindu Piumal

Need a Custom Extension, AI Tool, or Bot Built?

$20 / hr
Tracked or Milestone Escrow

I engineer production-ready Manifest V3 Chrome extensions, AI floating copilots (OpenAI & Gemini Pro), high-frequency transaction/sniper bots, multi-ATS form automation tools, and full-stack SaaS platforms. 175+ real-world projects shipped with 100% Upwork Job Success score.

Home
Projects
Hire Me
CV / Resume
Contact
GitHub
LinkedIn