# CharitySense Agent Instructions

Use the canonical overlay API at `https://data.charitysense.com/api/v2`.
Responses use UpperCamelCase fields. Missing facts and unavailable sections are
omitted. Do not infer that an omitted field is false or zero.

## Workflow

1. Resolve the organization with `GET /search?Query=...&Mode=Identity`.
2. Fetch the bounded page shell with `GET /charity/{EIN}/page`.
3. Read `Sections`; request a section only when its `Id` is advertised.
4. Use `/filings`, `/money-network`, `/relationships`, or `/discovery` only for
   the corresponding follow-up question.
5. Cite the returned `EvidenceRefs`, filed `SourcePath`, and source document.

## Endpoints

```text
GET  /api/v2/search?Query=&Mode=Identity|Discovery&Cursor=1&Limit=10
GET  /api/v2/charity/{EIN}/page?Form=&Year=
GET  /api/v2/charity/{EIN}/sections/{SectionId}?Form=&Year=&Cursor=&Limit=
GET  /api/v2/charity/{EIN}/filings?Form=&Cursor=&Limit=
GET  /api/v2/charity/{EIN}/money-network?Scope=Latest|Historical&Direction=Incoming|Outgoing&Cursor=&Limit=
GET  /api/v2/charity/{EIN}/relationships?Cursor=&Limit=
GET  /api/v2/charity/{EIN}/discovery?Form=&Intent=
GET  /api/v2/stats
GET  /api/v2/health
POST /api/v2/assistant/chat
POST /api/v2/contact
POST /api/v2/subscribe
POST /api/v2/charity-question
POST /api/v2/agent-feedback
```

No profile fallback, normalized-collection route, raw block route, category
route, or top-list route exists.

## Forms

`990`, `990EZ`, `990N`, `990PF`, and `990T` are first-class page contexts.
Use `Context.AvailableForms` to choose a context. A `990T` verdict may point to
an available parent filing because 990-T covers unrelated business income, not
the whole organization. A 990-N may return `NotEnoughData`; that is a form
limitation rather than a negative finding.

## Ratings

Ratings in `Verdict` are computed live from canonical filing facts and stored
reference inputs. Persisted authoritative final scores do not exist. Cite the
category `EvidenceRefs` and relevant lazy section when explaining a verdict.

## Search

Identity mode is the default fast path for EINs, legal names, historical names,
aliases, and acronyms. Discovery mode is semantic and intended for cause or
mission queries. Search results may include `Resolution` with an alias
explanation or an ambiguous family/brand choice. Ranking uses textual relevance
and structural prominence, not paid placement or popularity tracking.

Filters are `State`, `Cause`, `MinRevenue`, and `Sort`. Supported sort values are
`Relevance`, `Revenue`, `Assets`, and `Recent`.

## Evidence

Treat every claim as a statement about a filed return or identified overlay
source. Preserve uncertainty in counterparty resolution. Money-network edges
are investigative evidence, not findings of misconduct. Never manufacture a
counterparty, reciprocal filing, missing amount, or relationship.
