For Construction & AEC · GCs, design firms, owner’s reps

Construction document management that survives closeout.

Kodori is an AI-native DMS for AEC firms — project-centric collections, drawing-set version control, email ingest for subs and consultants, and a hash-chained audit trail your owner’s rep, the permitting board, and the arbitration panel can all verify.

Begin with Google →See every featureNo credit card · audit-defensible by default

What goes wrong on real projects

The closeout claim, the missing RFI, the wrong rev.

"We just paid $80k to settle a delay claim because nobody could find the RFI showing the architect approved the change."

GC project manager · Reddit r/Construction

Kodori

Every email, RFI, submittal, and approval is searchable in plain English. Ask the agent "did we get architect approval on the curtain wall change?" and it cites the document with a clickable link. Hash-chained timestamps make the audit defensible.

"The drawing set on Procore says revision 12, the one in SharePoint says revision 14, the one the field super has on his iPad is rev 9."

AEC document controller · ENR

Kodori

Content-addressable identity. The current revision is unambiguous, every prior revision is immutable, and "Compare" gives you a text diff between any two revisions. Field crews see the same authoritative copy as the design team.

"We have 14 active projects and search returns hits across all of them. Every query is a guessing game."

Newforma · Capterra

Kodori

Filter search by project (Collection), sensitivity, or document type with one click. Save a query as a one-click chip — "all RFIs on Tower 2 marked confidential" reusable in three keystrokes.

"Closeout took six weeks because we couldn't produce the chain of custody for half the submittals."

AEC compliance lead · LinkedIn

Kodori

Per-document history timeline shows every event in chronological order — version commits, sensitivity changes, hold applications, retention deferrals. Closeout becomes "export the audit log for this project, hand it to the owner."

"Subcontractor sent a CO request to the wrong gmail account. Took us four days to find the email and figure out which submittal it referenced."

GC office manager · LinkedIn

Kodori

Email-to-DMS — every project gets a unique ingest address. Subs forward to it; attachments become documents auto-classified to the project, all timestamped and chain-of-custody-tracked.

"Owner asked for the full project record. Cost us two weeks of paralegal time to assemble."

GC PM · ENR Construction Tech

Kodori

Hash-chained event log per tenant means the project record assembles itself. Use the `/api/v1` REST API or the OpenAPI spec to export — your owner gets a defensible, paginated archive without anyone copy-pasting from Outlook.

Built for the way construction documents flow.

  • Project-centric collections — with default sensitivity + retention inheritance

    Cabinets, drawers, projects — pick the kind that matches your firm's vocabulary. A submittal can sit in the project AND in the discipline cabinet AND in a closeout matter, without a duplicate copy of the bytes. Configure default sensitivity and / or default retention class on a project once and every doc filed there inherits automatically. Sensitivity is highest-tier-wins (a confidential geotech report dropped into a regulated jobsite stays regulated; an internal RFI dropped into a confidential project escalates). Retention is no-override (a doc with an existing 10-year retention won't silently shorten because someone moved it into a 7-year project). Tell the agent: "set Tower 2 to confidential and 10-year retention" and the rules apply on every future filing.

  • Version control for drawing sets

    Content-addressable identity means there's no "rev_12_FINAL_v2" guessing. Each revision is immutable. The current one is unambiguous. Compare any two revisions with a server-rendered text diff; older revisions re-extract on demand.

  • Email-to-DMS for subs and consultants

    Each project gets an unguessable ingest address. Forward to it from any email client. The agent auto-classifies sensitivity, suggests the right project collection, and proposes RFI / submittal / change-order tags — you confirm, it files.

  • Hybrid search across the project record

    FTS for spec section numbers, RFI numbers, and party names; embeddings for conceptual phrases ("change orders related to scope creep"). Fused via Reciprocal Rank Fusion. Sub-second on a 50,000-document project.

  • Hash-chained audit for closeout and claims

    Every consequential action appends to a per-tenant tamper-evident log. The project record assembles itself — closeout becomes an API export, not a paralegal sprint. Defensible at delay claims, dispute resolution, or warranty audits.

  • Retention for permits, plans, and warranties

    Define classes ("Permit drawings — 10 years", "Warranty correspondence — until 1 year past warranty expiry"). Records that elapse appear in a review queue with defer + dispose actions, captured reasons, and held-doc deny-wins for active disputes.

  • Pre-trained recognition for AEC document types

    Kodori's deterministic doc-type matcher recognizes RFIs, submittals, change orders, meeting minutes, and inspection / daily reports on sight — no LLM call needed for the unambiguous cases. Keeps tagging consistent across thousands of documents per project.

  • RFI tracker — morning-stand-up view at /rfi-tracker

    When the auto-classifier flags a doc as RFI / Request For Information, Kodori extracts RFI number, subject, project ref, requested by → requested of, location (spec section, drawing reference), and due date. Lands on /rfi-tracker with five status counters (Open / Overdue / Due in 7d / Answered / Rejected) plus top-projects-by-open-count. Open RFIs past their due date highlight in red — the "what's blocking the project right now" view a superintendent looks at every morning.

  • Submittal tracker — by CSI spec section at /submittal-tracker

    Sister surface to RFI tracker for the second-highest-volume AEC document. Auto-classifies shop drawings, product data sheets, material samples, mock-ups, and test reports; pulls CSI MasterFormat spec section as the canonical anchor. Five status counters (Under review / Overdue / Due in 7d / Approved / Rejected) plus top-spec-sections-by-pending-count breakdown surface "where are reviews piling up?" Disposition wording preserved verbatim ("Approved as noted — rev. mullion finish to RAL 9006") while the derived status bucket drives the queue.

  • Project lifecycle metadata at /projects/<ref>

    Per-project header card on the drill-in with owner / contract value / target completion / status (active / on-hold / closed) / free-text notes. Inline Edit form. The /projects rollup keeps deriving from the trackers (so a doc filed with a new projectRef shows up immediately) — this is OPTIONAL enrichment that surfaces the project executive view for jobs the team has chosen to curate. Pre-create metadata before any docs land for jobs you just won.

  • Projects dashboard — every active job's health on one screen at /projects

    Cross-project executive view. Each row is a project; columns show open / total RFIs, under-review submittals, pending / executed / rejected COs, executed cost impact, pipeline cost impact, executed + pipeline schedule days. Sort: hottest project first. Top-line stats roll up project count, open RFI / submittal / CO totals, and project-wide executed cost impact. Pure read-side aggregation over the existing tracker projection tables — no project lifecycle schema needed.

  • Drawing-set integrity check — expected ranges + gap detection

    On every project drawing register, define expected sheet ranges ("A-100 to A-501", "S-100 to S-308") per discipline and Kodori cross-checks against the indexed drawings. Per-range expected/found counts, missing-major list ("Missing: A-205, A-206 …"), top-of-section completeness chip (green at 100%, amber ≥90%, red below), and an unexpected-sheets warning panel for sheets outside every range. Closeout-review answer: "do we have every sheet on the contract drawing list?" — without scrolling 800 rows.

  • Drawing register — sheet extraction + per-project rollup

    Click "Extract drawings" on any drawing PDF and Kodori scans the text against AIA/CSI sheet-numbering patterns (A-201, S-101, M3.05, etc.) covering 14 disciplines (architectural, structural, MEP, fire, civil, landscape, telecom, equipment, security, demolition, general). Per-doc panel surfaces the discipline-grouped index with sheet titles + occurrence counts. Per-project rollup at /collections/[id]/drawing-register aggregates every readable doc's sheets across the project, grouped by discipline, with traceable source documents per sheet — the "drawing register" output every AEC project requires, built from the same regex-driven extraction surface. Permission-trimmed; idempotent on re-run; lands a drawings.extracted event on the doc audit stream alongside every other governance signal.

  • Spec-section directory — project heatmap by CSI MasterFormat at /spec-sections

    The Monday-morning project-manager view: joins RFIs, submittals, and change orders by CSI spec section into one table. Per row: open / total RFIs (matched by location text containing the section number), under-review submittals, pending / executed / rejected COs, executed cost impact (red for additive, emerald for credits), pipeline cost impact. Sections sort hottest-first across all three artifact types — overdue RFIs, overdue submittals, and PCOs older than 14 days surface as red badges on the same row. No "review log" spreadsheet that goes stale; the page is live against the three projection tables.

  • Inspection / daily-report tracker at /inspection-tracker

    Fourth AEC daily-action surface. Auto-classified inspection reports + daily reports + punch lists land here with inspector, inspection date, location, trade, verbatim result, open-finding count, and a 1-2 sentence Haiku-extracted summary of what's still blocking. Top-line stats include total open findings across all rows; "by trade" breakdown ("MEP 27 · structural 4 · envelope 2") shows where the issues live. Sort order: open-with-findings first (the actionable queue), then pass-no-findings, then closed-out for historical reference.

  • Change-order tracker — every PCO and CO with cost + schedule impact at /change-order-tracker

    Third AEC daily-action surface alongside RFIs and submittals. Auto-classifier flags change orders / PCOs / construction change directives; a Haiku-backed extractor pulls CO number, subject, project ref, spec section, originator, approver, signed cost impact (additive vs deductive), schedule days, reason category, dates, and signature status. Five status counters (Pending / PCO / Overdue signature / Executed / Rejected), executed-vs-pipeline cost aggregates with red for additive and emerald for credits, schedule-day aggregates, top reason categories ("owner request" / "design change" / "field condition" / "RFI response" / "errors and omissions" / etc.), and overdue-PCO highlighting at 14 days. Replaces the manual "change order log" spreadsheet — every PCO and CO in the workspace surfaces here automatically with a continuous audit trail.

  • AP-invoice three-way match for trade billings

    Vendor invoices upload, Kodori extracts vendor / total / PO / currency / line items, scans for a matching purchase-order doc AND a receipt (packing slip / goods received note) sharing that PO. Three-way match status (matched / price-variance / awaiting receipt / 2-way only) with signed cents variance, plus per-line pairing (item-code → exact description → line number) with per-line ✓ matched / ! variant / unpaired badges. Late-arriving receipts retroactively reconcile invoices in place. Approval / rejection emits webhook-deliverable events for accounting-system sync.

  • Check-in / check-out for spec coordination

    Two consultants editing the same spec section is the classic AEC version-collision. Kodori's soft check-out lets one engineer claim the lock before opening a draft; everyone else gets "Held by jane@…" instead of an overwrite. Lock clears atomically on the next version commit.

  • Typed AEC metadata + currentSet enforcement

    Stamp project / phase / discipline / spec section / drawing number / revision / sheet on every document. Mark a revision currentSet=true and Kodori automatically demotes every prior revision of the same drawing on the same project — exactly one current revision per drawing per project at any time. The agent can answer "what's the current A-101?" without guessing.

  • External connectors — pull RFI threads from Outlook, drawings from SharePoint, sub messages from Slack

    AEC document gravity is split across email + SharePoint + Slack + (sometimes) Drive. Connect all of them from /integrations: Slack, Gmail, Outlook, SharePoint, OneDrive, Google Drive — six vendors live. Messages and file attachments index into the same FTS + pgvector retrieval Kodori uses for native uploads, and the agent's `unifiedSearch` tool fires both legs in parallel + fuses via Reciprocal Rank Fusion. The superintendent asks "every change-order discussion about the staircase rebuild" and gets hits from the Procore-exported documents in SharePoint AND the Slack threads where the GC and structural engineer hashed it out AND the Outlook chain where the architect formally responded — one query, ranked together. Tenant-scoped. OAuth tokens encrypted at rest. Connector text extraction for PDFs / drawings / Office files runs the same Azure Doc Intel / Claude PDF cascade — extracted text is searchable, but the bytes stay at the vendor (no mirror, no compounded breach blast-radius).

Questions AEC firms ask.

How does this compare to Procore Documents or Newforma?
Procore is workflow-first; the document layer is a commodity. Newforma is older. Kodori is AI-first: every operation is a typed tool the agent can call, the search actually works on extracted PDF text, and the audit trail is hash-chained and defensible. We're building Procore + Newforma read-connectors in Phase 5 so you can keep your current workflow surface and let Kodori own retrieval, retention, and audit.
Will it integrate with Bluebeam, Autodesk, or BIM 360?
Phase 4 ships AEC-specific surfaces: large-format PDF viewer with markup (build-vs-buy decision targeting PDFTron / Apryse partnership), IFC / BIM model viewer (read-only) via Autodesk APS or open-source. The MCP tool catalog and `/api/v1` REST API are open today — integrators can already build extensions on the existing read surface.
Can the field super search submittals on a phone?
Yes. Kodori is mobile-responsive across the entire app — wide tables wrap in horizontal scroll, the agent drawer goes full-width on phones, and search works the same on iOS Safari as on desktop Chrome. A native iOS / Android app for offline read + camera capture is on the roadmap (Phase 2).
What about sensitive documents — sealed bids, contractor financials?
Five-tier sensitivity (public / internal / confidential / restricted / regulated) on every document, with deny-wins permission rules. A sealed bid with explicit access for the procurement team only does not appear in search results, dashboard counts, or `/api/v1` responses for anyone outside that team. The agent can't bypass — it sees what the user it's acting for sees.
How does retention work for warranty, permits, lien releases?
Define a retention class per record category ("Lien releases — until lien expiration + 1 year", "Permit drawings — 10 years post-occupancy"). When a record's retention term elapses it lands in `/retention/review` with two human-confirmed actions: defer with a reason, or dispose with a reason. Auto-deletion is intentionally not enabled in v0.
Will it pass an owner's closeout requirements?
Closeout is the single biggest pain point we hear from AEC docs. Kodori's hash-chained event log means the project audit trail is verifiable end-to-end without re-running anything. The `/api/v1` REST API + OpenAPI spec means you can export the full project record programmatically. Permitting boards, owners, and arbitration panels see the same defensible chain.

Drop a project folder. See it work.

Five minutes to a working DMS on your own RFIs, submittals, and drawings — on a tenant isolated from everyone else.