Linear document review doesn't scale to modern data volumes
Discovery populations run to hundreds of thousands of documents. Reviewing them linearly is slow and expensive, and the most relevant material can sit deep in the pile while reviewers wade through noise.
This solution prioritises the likely-relevant first, proposes privilege and responsiveness calls with reasons, and clusters duplicates — with reviewers confirming and QC sampling throughout.
Ingest → prioritise → classify → human QC
- ✓ Relevance prioritisation
- ✓ Privilege call proposals
- ✓ Responsiveness classification
- ✓ Near-duplicate clustering
- ✓ Key-document surfacing
- ✓ Reviewer QC sampling
- ✓ Claude for classification
- ✓ Embeddings for clustering
- ✓ Review platform integration
- ✓ Active-learning ranking
- ✓ Reviewer decision workflow
- ✓ Assistive — humans decide
- ✓ Privilege confirmed by review
- ✓ Reasons attached to calls
- ✓ Defensible audit trail
- ✓ QC sampling built in
Every call carries a reason for QC
Proposed responsiveness and privilege calls come with the model's rationale and confidence, so reviewers can QC efficiently and defensibly.
from anthropic import Anthropic client = Anthropic() def classify(doc: str, issues: list) -> dict: prompt = f"""Assess this document for review. Issues in scope: {issues} Document: {doc[:6000]} Return JSON: {{"responsive": bool, "privileged": bool, "confidence": float, "reason": str}}""" msg = client.messages.create(model="claude-sonnet-4-20250514", max_tokens=400, temperature=0, messages=[{"role": "user", "content": prompt}]) call = parse_json(msg.content[0].text) # Proposed call only — a reviewer confirms before it's final return as_proposed(doc, call)
Accelerate review, keep it defensible
Works with Matter Summaries to turn key documents into narratives.