AI document gap analysis

Find the [ gaps ]
that matter.

Upload the old and new version of a policy, contract or standard. GapexAI pairs every section with its counterpart, even after renumbering, and explains each change with quotes from both files.

Input
DOCX · PDF in
Output
Word · Excel · PDF · CSV · JSON out
Security Policy · 2023matching 14 sections2025
1Scope
2Definitions
3Access control
4Passwords
5Data retention
6Incident reporting
7Legacy VPN
1Scope
2Definitions
3Access control
4Authentication
5Incident response
6Data retention
7Generative AI use
PART4 Authentication ↔ 4 Passwordssimilarity 0.95

Passwords now need 12 characters instead of 8, the 90-day expiry rule is gone and MFA is required for every account. Update the identity provider settings.

100%

of sections appear in the report, including the ones that were removed

91%

agreement with an expert reviewer on our best benchmark document

5 stages

of section matching before any language model is called

< $2

spending cap per comparison, and repeat runs use the cache

Why it matters

Revisions are slow to review by hand

A new version can move, rename and reword dozens of sections. Reading both versions side by side takes days, and small changes to a number or a deadline are easy to miss.

Manual review

  • Days of side-by-side reading
  • Renumbered sections break a line-by-line diff
  • Results depend on who did the review
  • Hard to show what was actually checked

With GapexAI

  • A full report in a few minutes
  • Sections matched by meaning, not by position
  • The same rules applied on every run
  • Each finding quotes both versions

How it works

What happens after you upload

  1. 01

    Upload

    Add the old and the new version as Word or PDF files.

  2. 02

    Split

    Both files are broken into numbered sections. Cover pages and empty headings are left out.

  3. 03

    Match

    Each new section is paired with its old counterpart, even if it was renumbered or renamed.

  4. 04

    Explain

    A language model compares each pair and describes the change using the values from both files.

  5. 05

    Export

    Download the report as Word, Excel, PDF, CSV or JSON.

Inside the engine

How the matching and analysis work

Embeddings and fixed rules decide which sections belong together. The language model only writes the findings, and it sees one pair of sections at a time.

Embeddings

Meaning over keywords

Every section is turned into a 384-dimension embedding. Two sections that say the same thing in different words end up close together.

Similarity

A minimum score for every pair

Candidate pairs are scored with cosine similarity. If a pair scores too low, the sections are reported as new or removed instead of being forced together.

Matching

Five matching stages

Exact section number, exact heading, renumbered chapters, split sections and finally semantic similarity. Each stage follows fixed rules, so the result is repeatable.

Filtering

Noise is removed first

Cover pages, informative annexes, heading-only lines and stray table text are dropped before anything is compared.

Context

Cross-references are followed

When a section says “see 5.3”, section 5.3 is added to the analysis for both versions of the document.

Grounding

Tied to the source text

Findings quote both documents. Section numbers come from the parser rather than the model, and every model response is checked against a fixed schema.

Model routing

The right model for each pair

A small, fast model handles most pairs. Long or uncertain pairs go to a larger model. Each run has a cost cap and a cache.

Transparency

Clear about what it can't read

Figures, tables and images are marked as not analysed, so a reviewer knows exactly where to look.

Similarity floor0.65

Below this score, two sections are not paired.

Renumbering check0.50

Stops unrelated sections being paired just because they share a number.

Coverage check100%

Every new and every removed section gets its own row.

Example findings

Real output from five sample documents

Choose a document, then a finding, to see the text from both versions next to what GapexAI reported.

Northwind Security Policy 20232025DOCX13 rows · 11 matched · 1 new · 1 removedAI cost $0.0035
2023 · 4 Passwords

Passwords shall be at least eight (8) characters long and shall be changed every ninety (90) days. Passwords shall not be shared.

2025 · 4 Authentication

Passwords shall be at least twelve (12) characters long and shall not be shared. Multi-factor authentication is mandatory for all accounts. Periodic password expiry is no longer required.

PartReport remarksimilarity 0.95

2025 (4) raises the minimum password length to 12 characters from 2023's 8 characters and makes multi-factor authentication mandatory, while 2023 required passwords to be changed every 90 days; the password policy and training materials must be updated accordingly.

Renamed section, matched by meaning.

Use cases

Where teams use it

It works best on documents with numbered sections or clear headings.

01

Policies and SOPs

Security policies, HR handbooks and operating procedures.

02

Contracts

Changed obligations, fees, notice periods and liability caps.

03

Standards and regulations

A revised standard compared with the edition you follow today.

04

Security frameworks

ISO 27001, SOC 2 and internal control updates.

05

RFPs and tenders

A proposal checked against the requirements it has to meet.

06

Technical specifications

API and product specs across releases.

07

Insurance wordings

Changes to cover, exclusions and limits.

08

Quality documentation

Quality manuals and work instructions after a rule change.

How we built it

Built with specialist AI agents

Each part of GapexAI was developed with its own coding agent, responsible for that area's code, tests and quality checks.

Ingestion agent

Reads Word and PDF files and splits them into sections

Matching agent

Embeddings, similarity scores and the five matching stages

Analysis agent

Prompts, structured output and model routing

Cross-reference agent

Finds references between sections and resolves them

Reporting agent

Word, Excel, PDF, CSV and JSON exports

QA agent

Samples findings and checks them against the source

API agent

Sign-in, background jobs and the database

Frontend agent

The dashboard, uploads and charts

The dashboard

One place for every comparison

  • Upload files and follow progress as it runs
  • Review findings and charts in the browser
  • Add colleagues and manage their access
  • Export reports in five formats
Open Dashboard →

Security and privacy

Your documents stay private

  • Matching runs on the GapexAI server with a local model
  • Only matched section pairs go to the language model, never whole files
  • Passwords are hashed and sessions use signed tokens
  • Each user only sees their own jobs

FAQ

Common questions

What is document gap analysis?

+

It is a side-by-side review of two versions of the same document to find what changed, what was added and what was removed. GapexAI does the matching for you and writes a short finding for every section, with quotes from both versions.

How does GapexAI match sections between versions?

+

Each section is converted into an embedding that represents its meaning. A five-stage matcher then pairs sections by exact number, exact heading, renumbered chapters, split sections and finally by similarity. Pairs with a low score are not forced together.

Does it work if sections were renumbered or renamed?

+

Yes. Matching looks at what a section says, and one stage is dedicated to chapters that changed number. A section that moved from 6 to 5 is still paired with its original.

Can the AI make things up?

+

The model has to quote both documents, it never chooses section numbers, and its answers are checked against a fixed format. Figures and tables it cannot read are flagged for a person to review.

Which file formats are supported?

+

You can upload Word (.docx) and PDF files. Reports can be downloaded as Word, Excel, PDF, CSV or JSON.

Is my whole document sent to an AI model?

+

No. Matching runs on the GapexAI server with a local embedding model. Only matched pairs of sections are sent to the language model, one pair at a time.

What do Full, Part and Not mean?

+

Full means the section is unchanged or only reworded. Part means something specific changed, such as a number, a deadline or who is responsible. Not means the section is new in the latest version or was removed from it.

Compare your next revision in minutes

Open Dashboard →