A modern, LLM-powered financial research app that lets users screen, analyze, and compare companies using natural language - like “Show me tech companies with over \$10B market cap and low P/E ratio”. Powered by Perplexity's SONAR API, FinQuery AI brings conversational intelligence to finance.


🚀 Inspiration

As data scientists and aspiring investors, we constantly juggle financial dashboards, screeners, and outdated UIs just to answer simple investment questions.

Most tools are either too manual, too rigid, or require finance fluency. We asked ourselves:

"What if finding great stocks felt like chatting with an analyst?"

That question led us to build FinQuery AI - a tool where you ask, and the AI filters, ranks, and explains the results in context.


🔍 What it does

FinQuery AI allows users to:

  • Search for stocks using plain English queries (e.g., "Energy companies with positive earnings and high dividend yield")
  • Receive structured, sortable results based on financial data like market cap, growth, P/E, etc.
  • View interactive company cards with key stats and AI-generated insights
  • Use a modern, clean UI/UX dashboard built with investors in mind

🛠️ How we built it

Frontend

  • Built with React + TypeScript
  • Styled with TailwindCSS and Shadcn UI for a clean, accessible layout
  • UI includes:

    • 🔍 Search Bar: Accepts NL queries
    • 📊 Filter Sidebar: Controls for market cap, sector, etc.
    • 📈 Company Cards: Key stats + CTA for analysis
    • 🧠 Analysis Modal: In-depth insights from SONAR

LLM Integration

  • We used the Perplexity SONAR API to:

    • Parse financial intent from user queries
    • Identify key conditions (e.g., “low P/E”, “>10B revenue”)
    • Generate AI explanations per company using prompt chaining and structured context

Tooling

  • Vite for lightning-fast builds
  • React Router for navigation
  • Local storage for saving the SONAR API key securely in-browser

😤 Challenges we ran into

  • Designing finance-specific prompts: SONAR is powerful, but we needed to fine-tune prompts to handle logical constraints, sorting, and domain-specific terms
  • Ambiguity in queries: Some phrases had to be parsed into filters (e.g., “undervalued” → low P/E and high EPS)
  • UI filtering vs. LLM filtering: We had to carefully balance what was filtered client-side vs. what should be inferred from the SONAR response
  • Data limitations: Without access to real-time APIs, we mocked financial data to demonstrate the user flow

✅ Accomplishments we're proud of

  • Transformed natural queries into stock screeners using only an LLM
  • Built a fast, clean, and mobile-friendly UI with clear filtering and AI insights
  • Made finance research accessible - no more complex dashboards or ticker codes needed
  • Developed robust prompt workflows with SONAR for parsing, filtering, and summarizing

📘 What we learned

  • Prompt engineering is key to translating vague user intent into concrete financial logic
  • The SONAR API can reason over numerical conditions with well-structured input
  • Even without real-time data, it’s possible to build a compelling demo using mock data and UX polish
  • Good UX + AI = trust - users care about clarity, not just correctness

🔮 What’s next for FinQuery AI

  • 🔗 Connect to real-time financial APIs (e.g., Polygon, Alpha Vantage)
  • 🤖 Add follow-up conversation flow to refine searches (“exclude Chinese companies”, “focus on biotech”)
  • 📦 Enable portfolio uploads for personalized analysis
  • 📌 Launch as a Chrome extension for on-page stock summaries (e.g., Twitter, Reddit)
  • 🧪 Fine-tune SONAR prompting even further using chain-of-thought examples

Built With

  • perplexity
  • react
  • shadcn
  • tailwindcss
  • vite
Share this project:

Updates