Dashboard 6 of 6 · API client · Natural-language search

Canoe Documents

A natural-language and structured search layer over the team's Canoe document store, plus one-click batch downloads that arrive pre-organized into Fund / Year / DocType folders. Find every capital call, distribution notice, K-1, or audited statement in seconds.

90
Funds tracked
720
Documents indexed
5
Asset classes
5
Activity groups
On this page: Why it exists Data sources Salient features How to use

01Why this exists

The team's fund documents — capital calls, distribution notices, K-1s, quarterly reports, audited financials — all flow into Canoe Intelligence (the document-management vendor). Canoe's own UI works, but it's optimized for one-document-at-a-time browsing. The team frequently needs to answer questions like “pull every audited financial statement from 2024 across our buyout sleeve” or “download all Q1 capital calls from Stonehaven funds, organized by fund” — and that's painful in the native UI.

This tool wraps Canoe's REST API with two productivity layers: a natural-language search powered by Claude (so you can just type your question), and a structured filter panel for precision. Both feed the same result list, and the same Download button on top pulls whatever's currently filtered into a ZIP organized however you want.

Concrete pain killed: Quarterly tax-document collection used to be a four-hour Canoe click-through. With this tool it's one search and one download — ~5 minutes — and the files arrive already in the folder structure the tax team uses.

02Data sources & pipeline

The backend is a thin Python wrapper that holds OAuth credentials in memory and proxies requests to api.canoesoftware.com. No local database — every query hits Canoe live.

SourceUsed forNotes
Canoe REST APIFunds, documents, entities, accounts, taxonomy, document typesOAuth2 client-credentials flow; pages cached in memory per backend lifecycle
Anthropic Claude APINatural-language → Canoe filter objectStructured-output prompt with prompt caching on the fund/entity catalog
Performance Report PDFAsset-class taxonomyRe-parsed monthly via /api/taxonomy/refresh
Web Speech APIMultilingual voice transcription in the browserTranscript cleaned up via Claude before submission

The asset-class taxonomy is parsed from the same monthly performance report PDF the Performance Dashboard reads — one source of truth for what an “asset class” means. Unmatched Canoe funds fall into an “Other / Terminated” bucket.

The natural-language layer caches the fund and entity catalogs as part of the Claude prompt (Anthropic prompt caching) so repeated queries don't re-pay for the catalog tokens.

03Salient features

💬

Natural-language search

Type “all capital calls from Stonehaven Group in Q1 2025” and the dashboard parses your sentence into Canoe filter parameters via Claude. Filters auto-populate; results stream in.

🎤

Multilingual voice input

Click the mic, speak in any of ~30 languages. The browser transcribes; Claude translates to English (preserving fund names verbatim); the cleaned text lands in the search box for you to review and run.

📊

Asset-class donut + tree

Portfolio breakdown by asset class (Public Equity, Hedged Strategies, etc.) shown as a clickable donut chart. Click a slice to filter the whole search.

🔍

Structured filter panel

When NL isn't enough: pick asset class, fund, document type, investor entity, account, date range, document status, fund-sponsor keyword. Multi-select where it makes sense.

👥

By manager sidebar & toggle

Group the fund dropdown by PM coverage instead of asset class. The sidebar surfaces each manager's fund count plus an “Unassigned” pill so coverage gaps are visible at a glance.

📑

Activity-grouped doc types

Canoe's ~100 raw doc-types roll up into 5 curated activities (Transactions, Tax, CAS & Performance, Financial Statements, Manager Communications). Quick chips and the dropdown group by activity; a “Show all” toggle exposes the raw list.

⬇️

Batch download with organize-on-the-fly

Apply your filters, click Download — up to 1,000 documents come back organized by Fund / Activity (default), Fund / DocType, DocType / Year / Fund, or Account / Fund / Year.

☁️

Local or SharePoint destination

Save to your local downloads/ folder, straight into SharePoint, or both at once. SharePoint-write failures fall back to local with an inline warning so a flaky OneDrive sync never costs you the batch.

📰

Live activity feed + facts

Five most recent uploads streaming across the top. A “did you know” carousel surfaces aggregate stats (top document type, deepest asset class, etc.).

📈

Per-fund stats on hover

Hover any fund in the dropdown and a tooltip shows: total documents, breakdown by document type, most recent upload date.

04How to use it

Demo URL: canoe/index.html. The demo uses 90 anonymized funds and 720 fake documents across 5 activity groups; downloads are disabled. The live app talks to api.canoesoftware.com.

1

Land on the dashboard

Top of the page: hero with portfolio stats (funds / documents / asset classes). Below the hero: a “did you know” facts carousel cycling through aggregate insights. Both are computed live from the latest Canoe sync.

Landing view — hero stats and facts carousel.
Landing view — hero stats and facts carousel.
2

Read the portfolio breakdown

Right side of the search area: a clickable donut chart of funds-by-asset-class. Click any slice to filter the search to only that asset class.

Asset-class donut and quick chips.
Asset-class donut and quick chips.
3

Try a natural-language query

Type any English question into the search box — “capital calls from 2025,” “Stonehaven Q4 reports,” “all 2024 K-1s”. Click Parse. Claude turns it into a Canoe filter object; the structured filter panel auto-populates so you can see what was understood.

Tip — If something looks wrong, edit the filters by hand. NL is the on-ramp; structured filters are the source of truth.
Natural-language query parsed into filter parameters.
Natural-language query parsed into filter parameters.
4

Use the structured filter panel

Below the search bar: a collapsible panel with explicit filters — asset class, fund, document type, investor entity, account, date range, status, fund sponsor. Multi-select where it makes sense.

Tip — Toggle By class ↔ By manager on the Fund dropdown to regroup investments by PM coverage, then click a chip in the By manager sidebar to narrow the list. Flip Show all doc types on the Document type filter to expose raw Canoe tags beyond the 5 curated activities.
Structured filter panel — precise control.
Structured filter panel — precise control.
5

Drill via the asset-class tree

Sidebar tree: Asset Class → Sub-class → Funds. Click any node to filter the search to that scope. Useful for “everything in Buyout this quarter.”

Asset class → sub-class → fund tree.
Asset class → sub-class → fund tree.
6

Scan the results

Below the filter panel: matched documents render as a list. Each row shows the document name, type badge, fund, data date, entity, and upload date. Counts at the top (“50 shown · ~240 total”).

Search results — per-doc metadata at a glance.
Search results — per-doc metadata at a glance.
7

Pick a folder scheme & destination

Four schemes: Fund / Activity (default — rolls Canoe's raw types into the 5 curated folders), Fund / DocType (raw Canoe types), DocType / Year / Fund, Account / Fund / Year. Pick whatever matches the workflow of whoever's receiving the files. Next to it, the Save to dropdown sends the batch to your local downloads/, straight to SharePoint, or to both at once.

Tip — Tax team usually wants DocType / Year / Fund. Operations usually wants Fund / Activity. SharePoint write failures auto-fall-back to local with an amber warning — flaky OneDrive sync won't lose you the batch.
8

Use voice input

Click the mic icon next to the search bar. Speak in any of ~30 languages. The browser transcribes; Claude cleans it up and translates non-English to English (preserving fund names verbatim). The cleaned text lands in the search box for you to review.

Tip — Useful when typing — the team has reviewers who prefer dictation for long queries.