AI agents know everything about their user. Your product data has to keep up.
By Scott Macpherson, Founder, Bancadia
Published 7 min read
AI agents hold an enormous amount of context about their users, and they use it by turning it into filters. To make the best recommendation, an agent needs product data it can filter on many dimensions at once: fees, waivers, cash handling, eligibility, states, integrations and more. A marketing page or a "best of" list can't be filtered. A structured dataset can.
How does an AI agent turn what it knows about a user into a recommendation?
It filters. An agent that knows its user is an S corp in California doesn't want every business checking account in the country. It wants the ones that accept S corps and serve California. Each fact the agent holds removes products that can't work, until what's left is a short list it can actually reason about.
This is the part most AEO advice skips. AEO (answer engine optimization) is the practice of getting your products to show up in answers from AI systems. Most of the advice is about restructuring web pages so a language model will cite them. But an agent with real context about its user isn't looking for a page to quote. It's looking for a set of products that pass its filters.
The more an agent knows, the more filters it applies, and the more its recommendation depends on the product data supporting those filters.
What does that look like for a real business?
Hypothetical scenario. An AI CFO agent works for a six-person e-commerce company. It's an S corp, registered in California, with a second warehouse in Nevada. It pays overseas suppliers by international wire every month, keeps a cash cushion it would like to earn something on, wants a separate sub-account to set aside sales tax, and runs its books in accounting software. It rarely handles physical cash.
Here is how that context becomes a query against Bancadia's MCP server:
query_business_checking (every argument is a real filter in the tool schema){
"entity_types_accepted": ["s_corp"],
"available_states": ["CA", "NV"],
"interest_bearing": true,
"sub_accounts_supported": true,
"accounting_integration_available": true,
"monthly_fee_max": 30,
"target_industries": ["ecommerce"],
"target_business_profiles": ["established_smb"]
}The first six arguments are hard filters: an account that fails any of them isn't returned. The last two only reorder the results toward accounts built for e-commerce businesses at this stage. (The full ordering rules are on our methodology page.)
The agent then does the part only it can do. Each result comes back with outgoing_international_wire_fee, apy_default and the account's plan_tiers, so the agent can work out what this specific business would pay on its actual wire volume and earn on its actual balance, and rank the short list by net cost.
Which product attributes does an agent need to filter on?
For business checking, an agent needs to be able to filter or compare on at least the dimensions below. The right-hand column is what Bancadia supports today, stated plainly, including where we aren't there yet. "Filter" means an agent can pass it as a query argument. "Returned" means it comes back in each result for the agent to compare, but isn't a query argument yet.
| Dimension | What the agent is matching against | Bancadia today |
|---|---|---|
| Monthly fee | What the business is willing to pay | Filter: monthly_fee_max |
| Fee-waiver conditions | Whether this business will clear the waiver | Returned as text: monthly_fee_waiver_condition, per plan tier too |
| Opening deposit and minimum balance | Cash on hand at opening and month to month | Filter: minimum_opening_deposit_max. Ongoing minimum balances appear in waiver text and the detail fee schedule only |
| Cash deposits | How much cash the business handles | Filter: cash_deposit_available. Returned: cash_deposit_fee_per_100, monthly_cash_deposit_limit |
| Transaction limits | Monthly transaction volume | Filter: free_transactions_min. Returned: per_transaction_fee_after_limit, daily_debit_limit |
| Wire fees | Domestic and international wire volume | Returned: incoming and outgoing domestic and international wire fees, free_domestic_wires_per_month |
| ACH fees | ACH payment volume | Not a structured field yet |
| Entity types accepted | LLC, S corp, sole prop, nonprofit and so on | Filter: entity_types_accepted |
| States served | Where the business is registered and operates | Filter: available_states |
| Restricted industries | Whether the bank will open an account for this line of business | Not in the schema yet. target_industries ranks toward accounts built for an industry but doesn't exclude |
| Interest and APY | Idle balance the business wants to earn on | Filter: interest_bearing, apy_min. Returned: apy_default, apy_tiers |
| Deposit insurance | Balance relative to the insurance limit | Filter: insurance_type (FDIC, NCUA, uninsured). Sweep programs and extended coverage aren't structured yet |
| Branch and ATM access | Whether the owner needs a branch or cash access | Returned: atm_network, atm_fee_reimbursement. Branch access isn't structured yet |
| Mobile deposit | Whether checks arrive by mail | Returned: remote_deposit_capture (yes or no). Deposit limits aren't structured yet |
| Sub-accounts | Separating tax, payroll or reserves | Filter: sub_accounts_supported |
| Card and payment controls | Spend control and fraud protection | Returned: virtual_cards_available, physical_debit_card_available, positive_pay_available, ach_debit_block_available |
| Software integrations | The accounting, tax and expense tools in use | Filter: accounting_integration_available, tax_integration_available, expense_integration_available (category-level, not which product) |
| Real-time payments | Whether the business needs instant transfers | Filter: rtp_supported, rtp_network |
That's eighteen dimensions for one product category, and that's before plan tiers, promotions and the fine print in a fee schedule. An agent with deep context about its user can use every one of them.
Why can't an AI agent just read the bank's product page?
It can read it. It can't filter it. A product page is a single document that describes one product the way the marketing team wants it described. To answer a multi-constraint question, an agent would have to find every relevant product page, read each one, pull out values that may or may not be stated, and line them up itself. That's slow, expensive and full of gaps (see what AI agents need from product data for what that costs).
Worse, the attributes that decide fit are often not on the page at all. Cash deposit fees, wire fees and waiver conditions usually live in a fee schedule PDF, if they're published anywhere. A page can be perfectly optimized for citation and still leave the agent unable to answer the one question that decides whether its user should open the account.
A "best of" list is worse still. It's already been filtered, by someone else, for a reader they knew nothing about. I come back to that in affiliate content was written for a generic reader.
What should banks and fintechs do about it?
Make your product attributes available as structured, filterable data, somewhere agents actually query. Every product is the best choice for somebody. A bank whose business checking has low cash deposit fees is the best fit for a business that deposits cash every week. But an agent can only find that match if "cash deposit fee" is a value it can filter and compare on, not a line in a PDF.
This is the core of my disagreement with AEO as page optimization. Rewriting your product page so a model is more likely to cite it helps you appear in generic answers. It doesn't help an agent that knows its user and is filtering for a specific fit. For that agent, if your attributes aren't queryable, you're not in the result set, no matter how good your web page is.
Where you're the best fit is exactly where structured data helps you most. The more specific the user, the fewer products pass the filters, and the more likely the agent recommends one of the few that do.
Frequently asked questions
What is AEO?
AEO (answer engine optimization) is the practice of getting your products to show up in answers from AI systems. Most AEO advice focuses on web pages; I argue that for agents, structured and filterable product data matters more.
Can an AI agent filter on a bank's web page?
No. An agent can read a page, but it can't run a query against it. To compare many products on many constraints, it needs typed fields it can filter on directly.
Which filters does Bancadia support for business checking?
Entity type, state, monthly fee, opening deposit, insurance type, cash deposits, sub-accounts, free transactions, real-time payments, accounting, tax and expense integrations, interest and minimum APY, plus soft ranking by industry and business profile. The MCP reference has the full list.
Does schema.org markup on my product page solve this?
It helps a crawler understand one page. It doesn't give an agent a way to query across every product on many constraints at once, which is what a recommendation needs.
Work with us
For banks, credit unions and fintechs: Want your products queryable by AI agents? We're onboarding early partners. Email Scott at [email protected].
For agent builders: connect your agent to Bancadia's MCP server. Start with the agent integration guides.