Ask questions about any earnings call transcript using RAG + LLM. Get live news and StockTwits sentiment. Built for analysts, by a developer.
Features β’ Demo β’ Tech Stack β’ Setup β’ Usage
ConcallIQ is an AI-powered earnings call analysis tool that lets you:
- π Upload any concall PDF and instantly ask questions about it
- π€ Get precise, cited answers grounded in the actual transcript β no hallucinations
- π° Fetch live news sentiment about any stock using NewsData.io + LLM scoring
- π Analyze retail investor sentiment from StockTwits (no API key needed)
- π Compare multiple companies side by side
This is the kind of tool used by hedge funds and trading firms β built from scratch with open-source tools and free APIs.
| Feature | Description | Tech |
|---|---|---|
| π€ PDF Upload & Index | Upload concall transcripts, auto-chunked and embedded | PyPDF2 + pdfplumber |
| π¬ RAG Q&A | Ask natural language questions, get cited answers | LangChain + ChromaDB + Groq |
| π Auto Summary | One-click comprehensive concall summary | LLaMA3 70B |
| π° News Sentiment | Live news fetched and scored -1 to +1 | NewsData.io + LLM |
| π StockTwits Sentiment | Retail investor bullish/bearish sentiment | StockTwits API (Free) |
| π Multi-Company Compare | Ask same question across multiple concalls | Multi-doc RAG |
| π Sentiment Charts | Visual gauge charts for sentiment scores | Plotly |
User uploads Concall PDF/Transcript
β
RAG chunks + indexes it (ChromaDB + Local Embeddings)
β
User asks β "What did CEO say about margins?"
β
RAG retrieves relevant chunks β LLM answers with citations
+
NewsData.io fetches latest Indian & global news sentiment
+
StockTwits retail investor sentiment (bullish/bearish)
β
Final Answer = Concall Insight + Market Sentiment
Frontend β Streamlit
RAG Framework β LangChain
Vector Store β ChromaDB (local, free)
LLM β Groq (LLaMA3 70B / Mixtral) β Free tier
Embeddings β all-MiniLM-L6-v2 (local, free)
PDF Parser β pdfplumber / PyPDF2
News Sentiment β NewsData.io + Groq LLM
Social Sentiment β StockTwits β Free, no API key needed
Visualization β Plotly
ConcallIQ/
β
βββ src/
β βββ ingestion/
β β βββ pdf_loader.py # Load & parse concall PDFs
β β βββ chunker.py # Smart text chunking with overlap
β β
β βββ rag/
β β βββ embeddings.py # Local HuggingFace embeddings
β β βββ vector_store.py # ChromaDB setup & retrieval
β β βββ retriever.py # Full RAG pipeline
β β
β βββ sentiment/
β β βββ news_sentiment.py # NewsData.io + LLM scoring
β β βββ reddit_sentiment.py # StockTwits retail sentiment
β β
β βββ utils/
β βββ logger.py
β βββ exception.py
β
βββ data/concalls/ # Store uploaded PDFs
βββ app.py # Streamlit UI (4 tabs)
βββ requirements.txt
βββ .env # API keys (never commit!)
βββ README.md
git clone https://github.com/YOUR_USERNAME/ConcallIQ.git
cd ConcallIQpython -m venv venv
source venv/bin/activate # macOS/Linux
venv\Scripts\activate # Windowspip install -r requirements.txtCreate a .env file:
OPENAI_API_KEY=your_groq_key_here # Get free at console.groq.com
NEWSDATA_API_KEY=your_newsdata_key_here # Get free at newsdata.io
OPENAI_BASE_URL=https://api.groq.com/openai/v1
# StockTwits β no API key needed!streamlit run app.pyOpen http://localhost:8501 π
| Service | Cost | Link | Used For |
|---|---|---|---|
| Groq | β Free | console.groq.com | LLM inference |
| NewsData.io | β Free (200 req/day) | newsdata.io | Live Indian & global news |
| StockTwits | β Free (no key needed) | stocktwits.com | Retail investor sentiment |
| ChromaDB | β Free (local) | Built-in | Vector storage |
| HuggingFace Embeddings | β Free (local) | Built-in | Text embeddings |
Total cost to run: $0 π
- Go to Upload & Index tab
- Upload a concall PDF (BSE/NSE filings, investor relations pages)
- Enter the company name (e.g.
Infosys) - Click π Index Concall β done in ~30 seconds
- Go to Q&A tab
- Select company or ask across all
- Use preset questions or type your own:
- "What was Q3 revenue growth?"
- "What did the CEO say about AI investments?"
- "What are the key risks for next quarter?"
- Go to Sentiment tab
- Type any company/stock name or NSE ticker (e.g.
NetweborNETWEB) - Get live news + StockTwits retail sentiment scores with visual gauges
- BSE India β bseindia.com β Search company β Announcements
- NSE β nseindia.com β Company page β Transcripts
- Company investor relations pages
| Model | Speed | Best For |
|---|---|---|
llama3-8b-8192 |
β‘ Fastest | Quick Q&A |
llama3-70b-8192 |
π― Best quality | Detailed analysis |
mixtral-8x7b-32768 |
β‘ Fast | Long transcripts (32K context) |
gemma2-9b-it |
β‘ Fast | Balanced performance |
Q: Does it work with Hindi/regional language concalls?
A: It works best with English transcripts. Mixed language may reduce accuracy.
Q: How many PDFs can I index?
A: Unlimited β ChromaDB is local and only limited by your disk space.
Q: Is my data sent to any server?
A: PDF text is sent to Groq for LLM inference. ChromaDB and embeddings run 100% locally.
Q: Can I use OpenAI instead of Groq?
A: Yes β set OPENAI_BASE_URL to https://api.openai.com/v1 and use gpt-4o as the model.
This tool is for educational and research purposes only.
It is not financial advice. Always do your own research before making investment decisions.