Skip to main content

Find what gets buried in the data room — open-source integrated M&A due diligence across legal, financial, commercial, and technical domains

Project description

Due Diligence Agents

Find what gets buried in the data room. Open-source integrated M&A due diligence — legal, financial, commercial, and technical analysis across every contract, cross-referenced with exact citations.

PyPI version PyPI downloads CI Python 3.12+ License Tests mypy strict GitHub Stars


See a sample report — interactive HTML output from a synthetic 4-customer deal, no install required.


Finds what gets buried across hundreds of contracts — cross-references it across legal, financial, commercial, and technical domains — and traces every finding to an exact page, section, and quote. Use the structured output alongside your advisors to build IC memos, advisor reports, negotiation checklists, or integration plans.

This tool does not replace professional advisors. Legal, financial, and regulatory conclusions should always be made by qualified professionals. This tool helps your team and advisors work faster.

Why This Exists

I built this to solve my own problem. As a corp dev lead, I'd spend weeks assembling the cross-domain picture from siloed advisor reports — legal, financial, and commercial teams all flagging the same customer independently, with nobody connecting the dots. A termination clause in one contract and a revenue concentration risk in the same customer would be flagged in separate workstreams, if at all.

The numbers tell the story:

  • 31% of M&A failures trace back to due diligence shortcomingsAcquisition Stars, citing HBR, McKinsey, and KPMG research
  • DD timelines keep compressing — what used to be a six-week process becomes three weeks, with no reduction in scope — Spellbook
  • Corp dev teams screen 200-1,000+ companies/year but close only 1-10 — a 1-3% conversion rate, with DD costs sunk on every deal that doesn't close — CorpDev.AI
  • AI contract analysis reaches 95% accuracy with clause-aware prompting (up from 74% baseline) — Addleshaw Goddard RAG Report, 510 contracts tested
  • 86% of M&A organizations have integrated GenAI into deal workflows — Deloitte 2025 M&A Trends

This tool runs all four workstreams in parallel across every document, cross-references findings automatically, and produces structured analysis your team can search, filter, and drill into — the kind of cross-domain picture that used to take weeks to assemble manually.

Who uses this: Corp dev teams screening targets, PE firms running portfolio DD, legal teams doing contract review, advisors accelerating workstreams. Anyone who needs to search hundreds of contracts and connect findings across domains.

What You Can Do

Full Pipeline — Integrated Due Diligence

dd-agents run deal-config.json

Analyzes every document through 4 domain lenses, cross-references findings, and validates quality through 5 blocking gates. Produces:

  • Interactive HTML report — cross-domain findings, risk heatmaps, severity filtering, drill-down to exact clauses
  • 14-sheet Excel report — structured findings, cross-references, audit trail for downstream modeling
  • Per-customer JSON findings — every finding with severity, citations, cross-references, and governance graph edges

Quick Scan — Red Flag Triage in Minutes

dd-agents run deal-config.json --quick-scan --model-profile economy

GREEN / YELLOW / RED signal across 8 deal-killer categories. Get a first read before committing to full analysis.

Contract Search — Targeted Questions, No Full Pipeline

dd-agents search prompts.json --data-room ./data_room

Ask specific questions across every contract and get an Excel report with answers, citations, and verification scores. The prompts file is plain JSON any legal professional can write:

{
  "name": "Change of Control Analysis",
  "columns": [
    {
      "name": "Consent Required",
      "prompt": "Does this agreement require consent upon a change of control? Answer YES, NO, or NOT_ADDRESSED."
    }
  ]
}

See examples/search/ for ready-to-use templates.

Post-Run Tools

dd-agents query --report _dd/forensic-dd/runs/latest       # Ask questions about findings
dd-agents assess ./data_room                                # Check data room quality
dd-agents portfolio add "Deal A" --data-room ./data_room_a  # Track multiple deals
dd-agents portfolio compare                                 # Compare risk across deals
dd-agents export-pdf report.html                            # Export to PDF

Quick Start

Prerequisites: Python 3.12+ and an Anthropic API key.

# 1. Install
pip install dd-agents[pdf]

# 2. Set your API key
export ANTHROPIC_API_KEY="sk-ant-..."

# 3. Generate a deal config (AI scans the data room and infers entity aliases, focus areas)
dd-agents auto-config "Buyer Corp" "Target Inc" --data-room ./data_room

# 4. Run the analysis
dd-agents run deal-config.json
Install from source (development)
git clone https://github.com/zoharbabin/due-diligence-agents.git
cd due-diligence-agents
pip install -e ".[dev,pdf]"

Open _dd/forensic-dd/runs/latest/report/dd_report.html in your browser.

No API key yet? Generate a config without any API calls: dd-agents init --data-room ./data_room

See the Getting Started guide for a complete walkthrough with the included sample data room.

API Key Options

Environment variable (temporary):

export ANTHROPIC_API_KEY="sk-ant-..."

.env file (persistent, recommended):

cp .env.example .env
# Edit .env and add your key

AWS Bedrock (if you use AWS):

export AWS_PROFILE=default
export AWS_REGION=us-east-1
Preparing Your Data Room

Organize contracts into folders by customer or counterparty:

data_room/
  CustomerGroup_A/
    Acme_Corp/
      master_agreement.pdf
      amendment_2024.pdf
    Beta_Inc/
      license_agreement.pdf
  CustomerGroup_B/
    Gamma_LLC/
      services_contract.docx
  _reference/                    # Optional: buyer overview, customer database, etc.
    buyer_overview.pdf

Supports PDFs, Word, Excel, PowerPoint, and images. Scanned PDFs are handled via OCR.

How It Works

  Data Room (PDFs, Word, Excel, Images)
       │
       ▼
  ┌─────────────────────────────────────┐
  │        Python Orchestrator          │
  │         35-step pipeline            │
  │       5 blocking quality gates      │
  └──────────────┬──────────────────────┘
                 │
    ┌────────────┼────────────┐
    │            │            │
    ▼            ▼            ▼
 ┌──────┐  ┌────────┐  ┌──────────┐  ┌──────────┐
 │Legal │  │Finance │  │Commercial│  │ProductTech│
 │Agent │  │ Agent  │  │  Agent   │  │  Agent   │
 └──┬───┘  └───┬────┘  └────┬─────┘  └────┬─────┘
    │          │             │             │
    └──────────┴──────┬──────┴─────────────┘
                      │
              ┌───────▼────────┐
              │  Judge Agent   │  ← Validates findings
              │  (optional)    │
              └───────┬────────┘
                      │
              ┌───────▼────────┐
              │  Merge & Audit │  ← Dedup, numerical checks,
              │  31 QA checks  │    citation verification
              └───────┬────────┘
                      │
              ┌───────▼────────┐
              │   Executive    │  ← Severity calibration,
              │   Synthesis    │    Go/No-Go signal
              └───────┬────────┘
                      │
                      ▼
            HTML + Excel + JSON

4 domain specialists analyze every document in parallel. A Judge spot-checks findings. Executive Synthesis calibrates severity and the Go/No-Go signal. Red Flag Scanner provides quick triage. Acquirer Intelligence maps findings to the buyer's thesis (when configured).

The pipeline halts on quality failures rather than producing unreliable output. Runs can be resumed from any step.

What Gets Analyzed

Domain Focus Areas
Legal Change of control (5 subtypes), anti-assignment, termination clauses, IP ownership, data privacy, indemnification, liability caps, warranty, dispute resolution, governance graph construction
Finance Revenue cross-referencing (flags >5% ARR mismatch), revenue decomposition, unit economics (CAC/LTV/NRR/GRR), pricing compliance, cost structure, financial projections
Commercial Renewal mechanics, churn risk, SLA commitments, volume commitments, customer segmentation (flags >30% concentration), pricing models, MFN clauses, competitive positioning
ProductTech DPA analysis, security certifications (SOC2/ISO27001), technical SLAs, integration requirements, data portability, migration complexity, technical debt, vendor lock-in

Pipeline Output

_dd/forensic-dd/
  index/text/                     # Extracted document text (cached across runs)
  inventory/                      # File discovery and company registry
  runs/
    latest/                       # Always points to the most recent run
      findings/
        legal/                    # Per-customer findings from each agent
        finance/
        commercial/
        product_tech/
        merged/                   # Deduplicated cross-domain findings
      report/
        dd_report.html            # Interactive HTML report
        dd_report.xlsx            # 14-sheet Excel report
      audit.json                  # 31 quality validation checks
      numerical_manifest.json     # Every financial figure traced to source
      metadata.json               # Run metadata and API costs
  entity_resolution_cache.json    # Company name matching (reused across runs)

Installation

pip install dd-agents[pdf]      # Recommended (includes PDF extraction via pymupdf)
Alternative install methods
# macOS (Homebrew)
brew install zoharbabin/due-diligence-agents/dd-agents

# Docker
docker pull ghcr.io/zoharbabin/due-diligence-agents:latest

# Extras
pip install dd-agents           # Core only (no PDF extraction)
pip install dd-agents[vector]   # + semantic search via ChromaDB
pip install dd-agents[ocr]      # + OCR for scanned documents (English)
pip install dd-agents[glm-ocr]  # + multilingual OCR (100+ languages, Apple Silicon)
Optional System Dependencies
Dependency macOS Linux Purpose
poppler brew install poppler apt install poppler-utils Fallback PDF extraction
tesseract brew install tesseract apt install tesseract-ocr OCR for scanned PDFs

These are optional — the tool works without them but may produce lower-quality text from some scanned documents.

Docker
# Pre-built image (recommended)
docker pull ghcr.io/zoharbabin/due-diligence-agents:latest
docker run -e ANTHROPIC_API_KEY="sk-ant-..." \
  -v ./data_room:/workspace/data_room \
  -v ./deal-config.json:/workspace/deal-config.json \
  ghcr.io/zoharbabin/due-diligence-agents run deal-config.json

# Or build from source
docker build -t dd-agents .
docker run -e ANTHROPIC_API_KEY="sk-ant-..." \
  -v ./data_room:/workspace/data_room \
  -v ./deal-config.json:/workspace/deal-config.json \
  dd-agents run deal-config.json

Licensing

All core dependencies use permissive open-source licenses (Apache 2.0, MIT, BSD). The optional [pdf] extra installs pymupdf, which is AGPL-3.0 licensed — if you redistribute software that bundles pymupdf, AGPL copyleft terms apply to your distribution. Using it internally or as a tool does not trigger copyleft.

Documentation

Guide Description
Getting Started Installation, first run with sample data room
Deal Configuration Config file structure, auto-generation
Running the Pipeline Execution modes, resume, quality gates
Reading the Report Navigating the HTML and Excel output
CLI Reference Complete command reference
Search Guide Contract search for legal teams
Architecture & Design System architecture and design documents

Contributing

See CONTRIBUTING.md for development setup, code style, and PR process.

Star History

If this project is useful to you, consider giving it a star — it helps others discover it.

Star History Chart

License

Apache 2.0. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dd_agents-0.5.11.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dd_agents-0.5.11-py3-none-any.whl (571.0 kB view details)

Uploaded Python 3

File details

Details for the file dd_agents-0.5.11.tar.gz.

File metadata

  • Download URL: dd_agents-0.5.11.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dd_agents-0.5.11.tar.gz
Algorithm Hash digest
SHA256 e6107aea6e82459e6fe85345c141a02c982526003ef80678b36ce9b1306fe126
MD5 d18b0299ea33c60309fc3be34b881910
BLAKE2b-256 be1a85f12df4e804270172d8dc8f90ccfe67567008bbfe5134349e89c1e826b8

See more details on using hashes here.

Provenance

The following attestation bundles were made for dd_agents-0.5.11.tar.gz:

Publisher: release.yml on zoharbabin/due-diligence-agents

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file dd_agents-0.5.11-py3-none-any.whl.

File metadata

  • Download URL: dd_agents-0.5.11-py3-none-any.whl
  • Upload date:
  • Size: 571.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dd_agents-0.5.11-py3-none-any.whl
Algorithm Hash digest
SHA256 14a6b82d678b80d06acd7e6b695d1549f1624a8355271190a139367d6ab6fdcb
MD5 9f911e514ca87b5f140dfa1fa9273451
BLAKE2b-256 33fa8e4b8b16170b563cd98dae1a77d3b86786b7f39a967c9328da46edfb4876

See more details on using hashes here.

Provenance

The following attestation bundles were made for dd_agents-0.5.11-py3-none-any.whl:

Publisher: release.yml on zoharbabin/due-diligence-agents

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page