<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Neeraj Ciju</title>
    <description>The latest articles on DEV Community by Neeraj Ciju (@neeraj_ciju).</description>
    <link>https://dev.to/neeraj_ciju</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4068557%2Fad9be9c7-c250-4ad1-9e07-c4e651f2e3b5.jpg</url>
      <title>DEV Community: Neeraj Ciju</title>
      <link>https://dev.to/neeraj_ciju</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/neeraj_ciju"/>
    <language>en</language>
    <item>
      <title>I Built an Agentic AI Stock Research Terminal with LangChain</title>
      <dc:creator>Neeraj Ciju</dc:creator>
      <pubDate>Sat, 08 Aug 2026 09:01:54 +0000</pubDate>
      <link>https://dev.to/neeraj_ciju/i-built-an-agentic-ai-stock-research-terminal-with-langchain-36p2</link>
      <guid>https://dev.to/neeraj_ciju/i-built-an-agentic-ai-stock-research-terminal-with-langchain-36p2</guid>
      <description>&lt;p&gt;What if you could type a stock ticker and get more than just its current price?&lt;/p&gt;

&lt;p&gt;I wanted to build something that could combine &lt;strong&gt;real financial data, fundamental valuation, and recent market information&lt;/strong&gt; into one place.&lt;/p&gt;

&lt;p&gt;So I built &lt;strong&gt;StockAny AI&lt;/strong&gt; — an AI-powered equity research and valuation terminal.&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/iPrq/Stock-Market-Analyser" rel="noopener noreferrer"&gt;https://github.com/iPrq/Stock-Market-Analyser&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The idea is simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Enter a ticker → fetch financial data → calculate intrinsic value → research recent developments → generate an investment thesis.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And the interesting part is that the AI isn't responsible for doing everything.&lt;/p&gt;

&lt;p&gt;The financial calculations happen in the backend, while Gemini is used to interpret the data and research recent developments.&lt;/p&gt;




&lt;h2&gt;
  
  
  What does StockAny AI actually do?
&lt;/h2&gt;

&lt;p&gt;For any stock ticker, the application performs four main steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Fetches live financial data&lt;/li&gt;
&lt;li&gt;Calculates an estimated intrinsic value using a DCF model&lt;/li&gt;
&lt;li&gt;Calculates the margin of safety&lt;/li&gt;
&lt;li&gt;Uses Gemini + web search to generate an investment thesis&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The final result gives you things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Current stock price&lt;/li&gt;
&lt;li&gt;Estimated intrinsic value&lt;/li&gt;
&lt;li&gt;Margin of safety&lt;/li&gt;
&lt;li&gt;BUY / HOLD / SELL recommendation&lt;/li&gt;
&lt;li&gt;AI-generated investment thesis&lt;/li&gt;
&lt;li&gt;Bull case&lt;/li&gt;
&lt;li&gt;Bear case&lt;/li&gt;
&lt;li&gt;Recent developments and catalysts&lt;/li&gt;
&lt;li&gt;Sources used for the research&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal wasn't to build another stock-price dashboard.&lt;/p&gt;

&lt;p&gt;I wanted it to feel more like a &lt;strong&gt;mini equity research terminal&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  The Architecture
&lt;/h1&gt;

&lt;p&gt;The application is split into two major parts:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                 ┌─────────────────────┐
                 │    Next.js Frontend │
                 │   React 19 + TS     │
                 └──────────┬──────────┘
                            │
                     POST /api/analyze
                            │
                            ▼
                 ┌─────────────────────┐
                 │    FastAPI Backend  │
                 │      Python         │
                 └──────────┬──────────┘
                            │
             ┌──────────────┴──────────────┐
             │                             │
             ▼                             ▼
      Financial Data                 DCF Valuation
        FMP API                     Intrinsic Value
             │                             │
             └──────────────┬──────────────┘
                            ▼
                  ┌──────────────────┐
                  │ Gemini 3.1 Flash │
                  │      Lite        │
                  └────────┬─────────┘
                           │
                           ▼
                    Tavily Web Search
                           │
                           ▼
                  Structured Analysis
                           │
                           ▼
                    Next.js Results
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The frontend is built with &lt;strong&gt;Next.js 16, React 19 and Tailwind CSS v4&lt;/strong&gt;, while the backend uses &lt;strong&gt;Python, FastAPI and Uvicorn&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  Why not just ask an LLM?
&lt;/h1&gt;

&lt;p&gt;This was one of the most important design decisions.&lt;/p&gt;

&lt;p&gt;If you simply ask an LLM:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Is NVIDIA a good investment?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;you'll get an answer, but there are several problems.&lt;/p&gt;

&lt;p&gt;The model shouldn't be responsible for inventing financial numbers or performing the entire valuation itself.&lt;/p&gt;

&lt;p&gt;Instead, StockAny separates the responsibilities.&lt;/p&gt;

&lt;h3&gt;
  
  
  The backend handles the numbers
&lt;/h3&gt;

&lt;p&gt;Financial Modeling Prep provides data such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stock price&lt;/li&gt;
&lt;li&gt;Market capitalization&lt;/li&gt;
&lt;li&gt;P/E ratio&lt;/li&gt;
&lt;li&gt;Free cash flow&lt;/li&gt;
&lt;li&gt;Shares outstanding&lt;/li&gt;
&lt;li&gt;Sector information&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The backend then uses this data for the actual valuation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Gemini handles interpretation
&lt;/h3&gt;

&lt;p&gt;Gemini is given the financial context and uses Tavily to research recent information such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Earnings&lt;/li&gt;
&lt;li&gt;Company developments&lt;/li&gt;
&lt;li&gt;Competitive threats&lt;/li&gt;
&lt;li&gt;Catalysts&lt;/li&gt;
&lt;li&gt;Recent news&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This creates a much more useful separation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Financial APIs
      ↓
Reliable numerical data
      ↓
DCF calculation
      ↓
Financial context
      ↓
Gemini + web research
      ↓
Human-readable investment thesis
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h1&gt;
  
  
  Building the DCF Model
&lt;/h1&gt;

&lt;p&gt;The core of the valuation system is a &lt;strong&gt;two-stage Discounted Cash Flow model&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The first stage projects free cash flow for five years.&lt;/p&gt;

&lt;p&gt;The default assumptions are:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Growth rate:       8%
Discount rate:     9%
Terminal growth:  2.5%
Projection period: 5 years
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The projected cash flows are discounted back to their present value.&lt;/p&gt;

&lt;p&gt;Then we calculate a terminal value based on perpetual growth.&lt;/p&gt;

&lt;p&gt;Conceptually:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;              FCF₁     FCF₂     FCF₃     FCF₄     FCF₅
               │        │        │        │        │
               ▼        ▼        ▼        ▼        ▼
             Discount each cash flow to present value
                              │
                              ▼
                     Terminal Value
                              │
                              ▼
                  Discount terminal value
                              │
                              ▼
                ┌───────────────────────┐
                │ Enterprise/Equity     │
                │ Value Estimate        │
                └───────────┬───────────┘
                            ▼
                     Shares Outstanding
                            │
                            ▼
                   Intrinsic Value/Share
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The intrinsic value per share is then compared with the current market price.&lt;/p&gt;




&lt;h1&gt;
  
  
  Margin of Safety
&lt;/h1&gt;

&lt;p&gt;One of the most useful outputs is the &lt;strong&gt;margin of safety&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The calculation is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Margin of Safety =
(Intrinsic Value - Current Price)
--------------------------------- × 100
          Current Price
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For example, if a stock is trading at &lt;code&gt;$100&lt;/code&gt; and the calculated intrinsic value is &lt;code&gt;$130&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;(130 - 100) / 100 × 100
= 30%
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The application can then visually show the gap between the current market price and the estimated intrinsic value.&lt;/p&gt;

&lt;p&gt;This gives the AI something quantitative to reason about instead of simply asking it to make a prediction.&lt;/p&gt;




&lt;h1&gt;
  
  
  Adding Web Research with Tavily
&lt;/h1&gt;

&lt;p&gt;Financial numbers alone aren't enough.&lt;/p&gt;

&lt;p&gt;A company's valuation can look attractive while something important has changed recently.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A major competitor launches a new product&lt;/li&gt;
&lt;li&gt;Earnings guidance changes&lt;/li&gt;
&lt;li&gt;A company loses an important customer&lt;/li&gt;
&lt;li&gt;Regulation affects an industry&lt;/li&gt;
&lt;li&gt;Management announces a major acquisition&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So I added &lt;strong&gt;Tavily Search&lt;/strong&gt; to the pipeline.&lt;/p&gt;

&lt;p&gt;The AI can search for recent information about the company before generating its thesis.&lt;/p&gt;

&lt;p&gt;The resulting workflow becomes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Financial fundamentals
        +
DCF valuation
        +
Recent web information
        ↓
    Gemini
        ↓
Investment thesis
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is also why the output includes source links.&lt;/p&gt;

&lt;p&gt;The goal isn't to have an AI confidently hallucinate an explanation.&lt;/p&gt;

&lt;p&gt;The goal is to give it &lt;strong&gt;real inputs and let it synthesize them&lt;/strong&gt;.&lt;/p&gt;




&lt;h1&gt;
  
  
  Structured AI Output
&lt;/h1&gt;

&lt;p&gt;Instead of asking Gemini to return a giant block of text, the backend expects structured information.&lt;/p&gt;

&lt;p&gt;Something conceptually like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"recommendation"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"BUY"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"thesis"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"..."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"bull_case"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"..."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"bear_case"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"..."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"sources"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This makes the frontend much easier to build.&lt;/p&gt;

&lt;p&gt;The UI can independently render:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─────────────────────────────┐
│          BUY                │
│                             │
│ Current Price     $100      │
│ Intrinsic Value   $130      │
│ Margin of Safety  +30%      │
└─────────────────────────────┘

Investment Thesis
─────────────────────────────
...

Bull Case
─────────────────────────────
...

Bear Case
─────────────────────────────
...

Sources
─────────────────────────────
...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is much more flexible than trying to parse arbitrary AI-generated text on the frontend.&lt;/p&gt;




&lt;h1&gt;
  
  
  Tech Stack
&lt;/h1&gt;

&lt;p&gt;The project currently uses:&lt;/p&gt;

&lt;h3&gt;
  
  
  Frontend
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Next.js 16&lt;/li&gt;
&lt;li&gt;React 19&lt;/li&gt;
&lt;li&gt;TypeScript&lt;/li&gt;
&lt;li&gt;Tailwind CSS v4&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Backend
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;li&gt;FastAPI&lt;/li&gt;
&lt;li&gt;Uvicorn&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  AI
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Gemini 2.5 Flash Lite&lt;/li&gt;
&lt;li&gt;LangChain&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Data &amp;amp; Research
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Financial Modeling Prep&lt;/li&gt;
&lt;li&gt;Tavily Search&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The project also uses Inter for typography and a video background for the landing page.&lt;/p&gt;




&lt;h1&gt;
  
  
  Project Structure
&lt;/h1&gt;

&lt;p&gt;The repository is organized roughly like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Stock-Market-Analyser/
│
├── app/
│   ├── main.py
│   ├── requirements.txt
│   └── pyproject.toml
│
└── stockany/
    ├── app/
    │   ├── page.tsx
    │   ├── layout.tsx
    │   └── globals.css
    │
    ├── public/
    │   └── *.mp4
    │
    ├── next.config.ts
    └── package.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The FastAPI backend contains the API routes, LangChain tooling and DCF logic, while the Next.js application handles the user interface and results page.&lt;/p&gt;




&lt;h1&gt;
  
  
  Running It Locally
&lt;/h1&gt;

&lt;p&gt;You'll need API keys for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Financial Modeling Prep&lt;/li&gt;
&lt;li&gt;Google AI Studio / Gemini&lt;/li&gt;
&lt;li&gt;Tavily&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Create:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;app/.env
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and add:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;FMP_API_KEY=your_fmp_key_here
GOOGLE_API_KEY=your_gemini_key_here
TAVILY_API_KEY=your_tavily_key_here
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then start the backend:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;app

pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt

uvicorn main:app &lt;span class="nt"&gt;--reload&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The FastAPI server will run on:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://localhost:8000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then start the frontend:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;stockany

npm &lt;span class="nb"&gt;install
&lt;/span&gt;npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and open:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://localhost:3000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The complete setup instructions are available in the repository.&lt;/p&gt;




&lt;h1&gt;
  
  
  What I Learned
&lt;/h1&gt;

&lt;p&gt;The biggest lesson from this project was that &lt;strong&gt;AI applications don't necessarily need to let the LLM do everything&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A much better approach is often:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Traditional software
        +
APIs
        +
Deterministic calculations
        +
LLM reasoning
        +
Web research
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The DCF calculation is deterministic.&lt;/p&gt;

&lt;p&gt;Financial data comes from an API.&lt;/p&gt;

&lt;p&gt;Web research comes from a search system.&lt;/p&gt;

&lt;p&gt;The LLM sits on top of those components and turns the information into something humans can understand.&lt;/p&gt;

&lt;p&gt;That architecture makes the application considerably more grounded than simply prompting an LLM for a stock prediction.&lt;/p&gt;




&lt;h1&gt;
  
  
  What's Next?
&lt;/h1&gt;

&lt;p&gt;There are several things I'd like to improve:&lt;/p&gt;

&lt;h3&gt;
  
  
  Historical valuation
&lt;/h3&gt;

&lt;p&gt;Instead of only looking at the current valuation, I'd like to compare the stock against its historical multiples.&lt;/p&gt;

&lt;h3&gt;
  
  
  More valuation models
&lt;/h3&gt;

&lt;p&gt;Adding:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;P/E valuation&lt;/li&gt;
&lt;li&gt;EV/EBITDA&lt;/li&gt;
&lt;li&gt;Price-to-Free-Cash-Flow&lt;/li&gt;
&lt;li&gt;Comparable company analysis&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;would make the valuation more robust.&lt;/p&gt;

&lt;h3&gt;
  
  
  Better AI reasoning
&lt;/h3&gt;

&lt;p&gt;The next step would be giving the model access to more structured financial statements and letting it explicitly explain &lt;strong&gt;which assumptions drive the valuation&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Portfolio analysis
&lt;/h3&gt;

&lt;p&gt;Eventually, I'd like to allow users to enter multiple tickers and compare them side-by-side.&lt;/p&gt;




&lt;h1&gt;
  
  
  Final Thoughts
&lt;/h1&gt;

&lt;p&gt;StockAny AI started as an experiment in combining &lt;strong&gt;financial analysis with agentic AI&lt;/strong&gt;, but it ended up teaching me something more important about building AI products.&lt;/p&gt;

&lt;p&gt;The interesting part isn't just calling an LLM API.&lt;/p&gt;

&lt;p&gt;It's designing a system where the LLM has access to the &lt;strong&gt;right tools, the right data, and the right constraints&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For this project, that meant combining:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FMP → financial data&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DCF → valuation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tavily → recent information&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gemini → reasoning and synthesis&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FastAPI → backend orchestration&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Next.js → user experience&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The result is a small but complete example of how traditional software and generative AI can work together.&lt;/p&gt;

&lt;p&gt;If you want to check out the implementation:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/iPrq/Stock-Market-Analyser" rel="noopener noreferrer"&gt;https://github.com/iPrq/Stock-Market-Analyser&lt;/a&gt;&lt;br&gt;
👉 &lt;strong&gt;Youtube:&lt;/strong&gt; &lt;a href="https://youtu.be/XbrxvaP-FYk" rel="noopener noreferrer"&gt;https://youtu.be/XbrxvaP-FYk&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'd love to hear what you'd add to the project next.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Disclaimer: StockAny AI is an educational and informational project. Its outputs are not financial advice, and investment decisions should always involve independent research.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>computerscience</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
