AI Adoption GuideNonprofitFund
Agentic Funder Prospect Research
Agent pipeline profiles new funders from 990s, news, and grant databases without manual search, using tools like Grantable GrantGraph.
Nonprofit processPlanFundOutreachDeliverMeasureReportStewardRenew
By Don, DoneThat’s AI coach · updated
Overview
Development researchers spend most of a first-pass prospecting cycle hunting, not judging. The same funder gets reconstructed from a Form 990, a grants database row, and a handful of news items, each opened in a different tab. An agentic pipeline exists to collapse that hunt into a sourced profile. Tools in the Grantable GrantGraph class already sit on those source types. The agent’s job is to run them in sequence, keep citations attached to every claim, and stop when a source class is missing. Pursuit remains a human decision.
What this pipeline is for
The unit of work is one candidate funder, named by legal entity or common grantmaker name, that development has not yet profiled for the current cycle. The researcher is not asking the agent to rank the house list, invent a relationship, or recommend a ask. They are asking it to assemble a first-pass brief so a person can decide whether the name deserves a deeper fit review.
Manual search fails in two predictable ways. First, source hopping is slow: a 990 PDF, a Foundation Directory or similar grant record, and a news clip rarely agree on spelling, fiscal year, or program name, so the researcher reconciles them by hand. Second, incomplete lookup looks like a profile. A 990 without recent awards, or a news hit without a grants history, still produces notes. Those notes leak into cultivation plans. The pipeline is built to refuse that leak.
The output is a research object, not a cultivation plan. It should be short enough to read before a weekly prospecting meeting and complete enough that a second researcher could re-open every cited source without repeating the original search path. If the brief cannot be sourced that way, it should not exist.
Sources the agent is allowed to use
Three source classes are required, each for a different question.
IRS Form 990 and 990-PF filings answer structure and capacity. They show whether the entity is a private foundation or a public charity that regrants, the latest available fiscal year, total assets and qualifying distributions or grants paid, officer and trustee names, and, where the filing includes it, a grants list. The agent should record the tax year and EIN, not a paraphrased “large foundation” label. Filings lag. A 990 is a snapshot of a closed year, not a live budget.
Grant-database records answer giving behavior. They show who received awards, in what amounts, for which stated purposes, and over which years. This is where tools such as Grantable GrantGraph earn their keep: they already index funder–grantee edges that a researcher would otherwise rebuild from 990 schedules, 990-N lookups, and commercial grant directories. The agent should treat each award as a cited row (funder, recipient, year, amount if published, purpose if published). It should not infer a “typical gift size” beyond what those rows support.
News and public announcements answer recency and framing. Press on a new strategy, a leadership change, a merger, a pause in a program, or an open call can contradict last year’s 990. The agent should date every clip and separate the funder’s own statement from a reporter’s summary. Social posts and undated blog roundups are not a substitute for this class.
The pipeline may use only these classes for the profile body. Internal CRM notes, a board member’s recollection, and the researcher’s prior proposal files are out of scope for the agent. Those belong in the human review that follows. If a GrantGraph-style tool returns a graph view, the agent still has to flatten the cited nodes into the brief. A screenshot of a network is not a source.
The funder profile a researcher should expect
A complete brief has a stable shape so staff can scan it the same way every time.
Identity and filing identity come first: legal name, any doing-business-as names, EIN, entity type, website if published, and the tax year of the 990 in hand. If GrantGraph or a directory uses a different display name, the brief should keep both and say which source used which string.
Capacity and constraints come next, drawn from the 990: assets, grants paid or similar distribution figures for that year, geographic or subject limitations stated in the filing or in the funder’s published guidelines if those guidelines appear in the news or database record. The agent should not convert those figures into a recommended ask.
Giving pattern is a table, not a paragraph of adjectives. List recent awards with citations. Group only when the source already groups them (for example, a foundation that publishes program areas). Note multi-year awards as multi-year when the record says so. Do not fill gaps with “likely continues to fund X.”
Strategy and recency come from news plus any program language in the grant records. Call out contradictions explicitly: a 990 that still shows a named initiative, and a news item from a later date that says the initiative closed. The researcher needs the contradiction, not a blended story.
People and access points are names that appear in the 990 officer list or in bylined announcements, with the source next to each name. The agent does not assign a relationship owner and does not guess who “likes” the organization.
Every factual sentence in the brief should be traceable to one of the three classes. When two sources disagree, keep both lines. Reconciliation is the researcher’s work.
Empty output when a source class is missing
The pipeline returns nothing, not a thinner memo, when any of the three classes cannot be retrieved for that entity.
No 990 or 990-PF (or equivalent public filing the organization uses) means capacity and governance are unconfirmed. A grants-database hit and a news clip are not enough. Community foundations, donor-advised fund sponsors, and newly formed vehicles are common misses. The correct result is an empty profile and a machine-readable reason such as missing_990.
No grant-database record means there is no cited award history to describe. A 990 that lists grants in a PDF the agent cannot parse is still a miss unless those rows are extracted and treated as database-equivalent records. Guessing recipients from news (“known to support education”) is not a record. Reason: missing_grant_records.
No news or public announcement in the lookup window means recency is unconfirmed. Older 990s and historical awards then look current. The empty result protects the meeting stack from stale briefs. Reason: missing_news.
Empty output should be boring and explicit: funder identifier, which class failed, which lookups were attempted, and timestamps. Development can then choose a manual deep dive, a wait for the next 990 posting, or a drop. What the agent must not do is emit a “partial profile” that reads like due diligence.
Name collisions are treated as missing identity, which is also empty. If the EIN is unknown and two similarly named trusts appear in the 990 index, the agent does not pick one.
What development still decides
Profiling is not pursuit. After a complete brief lands, a person still owns the questions the agent is forbidden to close.
Fit against the current case for support, geography, population, and budget size is a later scoring step, not a sentence in this profile. Whether to assign a relationship manager, request a meeting, or wait for an open RFP is a portfolio decision. How much to ask, whether to lead with a program or unrestricted request, and whether a board introduction is appropriate depend on CRM history and politics the agent does not see.
Reviewers should check three things before the name moves forward: that citations open, that the 990 year is recent enough for the cycle, and that news has not already announced a freeze the grant table does not show. If any check fails, the brief goes back or the name is parked. The agent does not retry into a speculative fill.
The researcher also decides whether a GrantGraph-style neighbor (a co-funder on the same grantee) becomes a new candidate. That is a new pipeline run with its own three-source gate, not a bonus paragraph on the original brief.
Handoff to scoring, RFPs, and drafting
A complete profile is an input to work that still needs a human at the gate.
Funder Fit Scoring is the next judgment. Scores should consume the cited giving pattern and the stated constraints from this brief, not a second unattended search. If this pipeline returned empty, fit scoring should not run on that name.
Is this worth automating for you?
Whether this pays back depends on how much time it takes your team today. Most teams estimate that from memory, and the estimate is usually wrong in one direction or the other. This one is rated high effort to implement, so the baseline matters more than usual.
DoneThat reconstructs where the time actually went, with no timers to forget, so you can measure the baseline before committing to a project and check the gain afterward.
Measure the baseline first