ChatGPT

Verified against ChatGPT · 2026-08-02

Get a structured comparison across several uploaded PDFs, not a summary of each one

Directs ChatGPT to build a cross-document comparison table across multiple uploaded PDFs — flagging contradictions and coverage gaps between them — instead of the default failure mode of producing one separate summary per file that leaves the actual comparing to the reader.

ChatGPT (GPT-5.1)4 fillable variables

The prompt

Ready to copy — highlighted parts are example details you can swap.

You are comparing multiple uploaded PDF documents against each other on the specific dimensions below — not summarizing each document individually and leaving the actual comparison to be done manually afterward.

DOCUMENTS UPLOADED
Three vendor service agreements — Vendor A, Vendor B, Vendor C — for the same category of service, each roughly 15-20 pages.

DIMENSIONS TO COMPARE ACROSS ALL OF THEM
Liability cap amount, termination notice period, renewal auto-renewal terms, and data ownership on termination.

WHY THIS COMPARISON MATTERS
Deciding which vendor to actually sign with, or which specific clauses to push back on in the one already tentatively picked.

WHAT COUNTS AS A MATERIAL DIFFERENCE VERSUS BOILERPLATE VARIATION
A liability cap differing by more than 20% or a notice period differing by more than a week counts as material; near-identical boilerplate legal phrasing doesn't.

COMPARISON RULES
Build the output around the comparison dimensions, not around the documents — for each dimension, pull the relevant language or figure from every document that addresses it, so the structure itself makes differences visible at a glance, rather than requiring several separate per-document summaries to be held in mind and manually cross-referenced. Quote the actual relevant clause or figure from each document for each dimension, not a paraphrase — a paraphrase can accidentally normalize two documents that actually use materially different language into sounding like they say the same thing, when a legal or contractual difference specifically lives in word choice. If a document doesn't address a given dimension at all, say so explicitly as "not addressed" rather than leaving that cell blank or inferring a default from what's typical, since silence in a contract is itself meaningful and different from an explicit term that happens to match a typical default. Apply the stated materiality threshold to decide what's worth flagging as a genuine difference — boilerplate variation in formatting or word order that doesn't change the actual substance shouldn't be flagged with the same weight as a difference that changes an actual number, obligation, or right. Where documents genuinely contradict each other on the same point, flag that explicitly as a contradiction requiring resolution, not just a difference to note, since a contradiction usually means someone needs to determine which version is actually controlling before proceeding.

OUTPUT FORMAT
A table: Dimension (rows) by Document (columns), with the actual quoted language or figure in each cell, "not addressed" where silent. Below the table, a separate list of anything flagged as a genuine contradiction requiring resolution, and a separate list of material differences that aren't contradictions but should inform the decision named in decision_context.

Customize

Optional — swap in your own details for the highlighted parts above.

Why this works

The default, unconstrained response to "compare these documents" is very often a separate per-document summary section, because that's the more natural default structure for processing several distinct files one at a time — explicitly requiring the output to be organized by comparison dimension rather than by document forces the actual cross-referencing work to happen inside the response instead of being silently deferred to whoever reads three separate summaries afterward and has to do the comparing themselves. Requiring an actual quote rather than a paraphrase for each cell matters specifically for documents like contracts where the substance lives in precise wording — a paraphrase that renders two differently-scoped termination clauses as both meaning roughly "30-day termination notice" erases a materially different scope of when termination is even allowed, a distinction only preserved by keeping the actual clause language intact. Explicitly marking silence as "not addressed" rather than an inferred default addresses a specific interpretive risk in contract comparison: a document that says nothing about a liability cap is not the same as a document that explicitly states "no cap," and treating the two as equivalent because "no mention" superficially resembles "no cap" would erase a real and consequential difference in what each document actually commits its parties to. Separating outright contradictions from material-but-non-contradictory differences matters because they call for different next actions — a contradiction between two documents describing what's supposed to be comparable terms usually signals an error or an outdated version somewhere that needs resolving before any decision can be made confidently, while a material difference between two vendors' actual differing terms is simply information to weigh.

Verified against

ChatGPT GPT-5.1 · 2026-08-02

Changelog

  • 2026-08-02 — Initial publish, verified against ChatGPT GPT-5.1 multi-file PDF uploads.

Building this for real?

This is a free starting point. If you'd rather have what Scult builds built and running for your business, that's Scult's day job.

EXPLORE WHAT SCULT BUILDS
All ChatGPT prompts

Check your AI visibility

One URL in, a 0–100 score and the exact fixes out.

RUN THE CHECK

Browse all the tools

15 tools across six categories
13 of them never send your data anywhere

Free · No signup · No trial clock

SEE THE DIRECTORY