Middle Mann  /  Work  /  Data Mining and Secure Data Room

Scrape it. Build the report. Lock it in a room only the right people can open.

A three-part platform. Browser extension and headless scrapers gather data from the source. A report layer turns it into briefs. A secure data room releases those briefs to people who have signed for them, watermarked and audited end to end.

Role Designed and built end to end
Type Data mining and secure data room
Stack TypeScript, Python, PHP, PostgreSQL
Because

The intelligence is public. The work of turning it into a decision is not.

  • Browser Extension
  • Headless Scrapers
  • Report Generator
  • Secure Data Room
  • Signed Agreements
  • Per-View Watermarks
  • Forensic Audit Log
  • Role-Based Access
  • Owned Storage
  • No SaaS in the Middle

Useful data is scattered across the web. Listings, public records, county portals, corporate registries, mapping APIs, niche directories. Pulling it once is easy. Pulling it on a schedule, normalizing it, scoring it and turning it into something a decision-maker can act on is where most operators give up and hand the work to a vendor that charges per seat and quietly retains the data.

This platform owns the whole chain. The extension and the scrapers feed a local database. The report layer composes that database into briefs and dashboards. The data room releases those briefs only to people who have signed for them, with their identity stamped across every page they open. Same engine, different shape. Swap the scraper targets, swap the report templates, swap the room's branding and the platform works for any domain that runs on private diligence.

The Pipeline

Source. Refine. Publish. Secure.

A browser extension scrapes the surfaces a human would visit. Headless scrapers hit the structured sources behind them, with respectful rate-limiting, exponential backoff and per-source watermarks. The combined data lands in a local database, gets scored and ranked by the report layer and is exported as a brief, a ledger or a live dashboard. That output is deposited into the data room, where access is gated, identity is watermarked and every view is logged.

01Extract. Browser extension plus headless scrapers gather data from any source a human or a script can reach
02Normalize. Records land in a local database with per-source provenance, retry status and rate-limit history
03Score. Domain-specific scoring ranks records on the criteria that actually drive a decision
04Compose. Reports render as standalone HTML briefs, PDF deliverables or live interactive dashboards
05Deposit. Finished briefs land in the data room, scoped to a project and a phase
06Release. Viewers sign in, sign an agreement and open documents stamped with their identity
The Extractors

One platform. Any source.

The browser extension runs in Chrome and Firefox under Manifest v3, built with TypeScript and esbuild. It reads the page in front of the user, extracts the structured fields hidden in the markup and injects live calculated metrics back into the layout so a human can make a call without leaving the site. A user-defined profile drives the math, so the same extension shifts behavior when the criteria change.

The headless scrapers cover the structured sources the extension cannot reach. Government APIs, assessor portals, corporate registries, public records, niche directories. Each scraper handles rate limits, exponential backoff, session warm-ups and token-bearing forms specific to its target. New sources are a module, not a rebuild.

The Reports

Briefs that compose themselves.

The report layer reads from the local database and writes finished deliverables. Standalone HTML briefs with embedded maps and charts. PDF ledgers ready for upload. Live dashboards that re-render when the underlying data changes. Templates are domain-specific and the operator owns them, so the same scrape can produce different briefs for different audiences. A report is composed once, exported to the data room and tracked by the same audit trail that watches everything else.

The Data Room

A room that opens for the right person and remembers everyone who walked through.

A server-rendered PHP application backed by PostgreSQL on the operator's own server. Role-based access with per-project expiration windows. Every viewer signs a mutual non-disclosure and non-circumvention agreement before any document opens, and every page they see is watermarked with their identity, IP and timestamp. Anti-capture hardening blocks right-click, copy, screen recording and dev tools. A forensic log runs in parallel to the database audit trail so the two can be reconciled if either is touched.

Role-Based
Access
NCND
Gate
Per-View
Watermarks
Anti
Capture
Project
Phases
Diligence
Tracker
Invite
Tokens
Audit
Log
Forensic
Log
Login
Throttling
Hardened
Sessions
Email
Alerts
The Stack

One toolchain per job. None of them rented.

Three runtimes, each picked for the work it does best. TypeScript and esbuild for the extension. Python with tenacity and BeautifulSoup for the scrapers. PHP with PostgreSQL for the data room. All three layers self-hosted, all three exchanging files and data through the operator's own filesystem and database.

Frontend
TypeScript Manifest v3 esbuild webextension-polyfill Server-Rendered HTML Leaflet ApexCharts
Backend
Python requests BeautifulSoup4 lxml pandas tenacity PHP PDO Prepared Statements PHPMailer
Infrastructure
PostgreSQL SQLite Protected Filesystem Nginx Encrypted Sessions Bcrypt cost 12 Self-Hosted
Integrations
ArcGIS REST County Assessor Portals Corporate Registries Public Records Resend Webhooks BYO Scraper Module
The Outcome

From raw source to private brief, on infrastructure you own.

Data goes in at one end. Briefs come out the other. Every step of the chain runs on the operator's own server, every document is released on the operator's own terms and every view is logged with enough detail to find a leak if one ever happens. What's shown here is one example. The next build mines whatever the next operator needs and publishes whatever briefs that work calls for. Same engine. Different shape. Owned.

3
Layers, one platform
1
Signed agreement per viewer per project
0
Documents released without a watermark
Build yours

Want a platform like this for your operation?