Financial Analyst AI Chatbot
Building a financial analyst chatbot for brokers
TL;DR β I built an AI chatbot to provide fast, contextual financial analysis based on in-house research, enabling brokers to scale personalized client support without scaling headcount.
This bot answers user questions using a simple methodology:
β
Reads the company or industry-specific reports relevant to the question
β
Finds the key information needed to answer, if it exists
β
Synthesizes an accurate, natural-language answer
β
Cites the sources used
During testing, we found that using underlying model such as Gemini 2.5 Pro yielded reliable answers, and that the the bot will correctly identify when information is missing to answer.
Code and documentation available: Github β AI Financial Research Assistant
Thanks to Hugo Bosch β financial research professional and AI enthusiast β for his clear vision on how LLMs can address challenges in finance and for helping shape this work.
Context and Motivation
Financial securities brokers help investors make informed decisions
β by publishing research reports via analyst teams and providing personalized advice through sales representatives.
The problem? This system doesnβt scale well!
While research teams are already busy writing reports, sales teams lack deep expertise or bandwidth to answer every client question in detail.
Answering individual client questions is time-consuming and requires expertise, so scaling personalized support with only human teams is inefficient.
A Q&A chatbot with access to in-house financial reports can answer technical questions from clientsβaccurately, instantly, and with source citations.
Design Philosophy
β Retrieves the Right Report
The chatbot uses cues from the userβs question (e.g. company name, report date, type) to select the most relevant report from a structured list of reports (e.g. βFPT_Q1Y25.pdfβ, βFPT_Q2Y25.pdfβ,β¦).
β Cites the source
Every answer comes with the exact report name and section, enabling clients or compliance teams to audit the result.
β Avoid hallucination
If the answer isnβt available in the report, the chatbot says soβmaking it reliable for high-stakes environments like finance.
β Understands financial language
Thanks to a glossary of synonyms and definitions, plus clarification-seeking prompts, the chatbot handles varied client inputs without confusion.
Agent architecture
There are two main workflows in this system β a data ingestion workflow and a chatbot workflow (inference).
The data ingestion workflow takes the raw report PDF files and structure them into readable data when addressing user queries. Think of it as a file management portal where the admin can upload new reports files to extend the knowledge base of the chatbot.
Data ingestion system design
The inference workflow takes user inputs via the chatbot interface, process them by calling a cloud hosted LLM and accessing self-hosted report data if needed, and replies to the user.
The chatbot system is built around a modular function-calling architecture where the model can perform the following actions:
- get_date()
- list_reports()
- read_report(report_name)
For example:
> User asks: βWhat was the value of FPT in Q1?β
> Bot logic:
get_date() β "17-07-2025"
list_reports() β "FPT_Q1Y25.json", "FPT_Q4Y24.json"
read_report("FPT_Q1Y25.json") β "FPT shares rose to 1000 VND this quarter"
Answer: "The value of FPT in Q1Y25 is 1000 VND."
Chatbot (inference) system design
Chatbot (inference) workflow
Why it matters
This approach is not just a proof-of-concept. It demonstrates that generative AI + structured financial data can:
βͺοΈReduce workload on sales and research teams,
βͺοΈImprove client responsiveness and satisfaction,
βͺοΈAnd scale operations without increasing headcount.
For brokers, this is a glimpse of how AI can augment expertise and automate insight delivery.