Inspiration

[What made you want to build this? e.g., a specific moment evaluating a startup idea yourself, frustration with how scattered market/competitor research is, or the hackathon's "repetitive, judgment-heavy tasks" framing resonating with something you'd actually experienced.]

What it does

VentureLens takes a single startup idea typed into the browser and runs it through six specialist AI agents that each handle one piece of due diligence:

  • Market Agent — searches for market size, trends, and timing
  • Competitor Agent — finds real, live competitors and alternatives
  • Customer Agent — researches customer pain points and scores sentiment
  • Business Agent — runs unit-economics, break-even, and growth-scenario math
  • Risk Agent — researches regulatory issues and rates market, competitive, and financial risk
  • Synthesis Agent — combines everything into a score, recommendation, strengths, risks, and a plain-language summary

The result is a structured JSON report covering all six dimensions, returned from a single API call.

How we built it

The backend is a FastAPI service orchestrated by the AWS Strands Agents SDK, with each agent wired up using Strands' tool decorators. The orchestrator is explicit Python — the pipeline order (market → competitor → customer → business → risk → synthesis) is hardcoded rather than left to a model to decide, so runs are predictable and debuggable.

For reasoning, we use a configurable LiteLLM provider (Groq's Llama 3.3 70B by default) since Strands has no first-party Hugging Face integration. For research, the Tavily Search API pulls live market, competitor, and customer signal instead of relying on the model's training data. Two local Hugging Face models — cardiffnlp/twitter-roberta-base-sentiment-latest and dslim/bert-base-NER — handle sentiment scoring and entity extraction without an external API call. Financial calculations (unit economics, break-even, growth scenarios) are plain deterministic Python, not model-generated numbers.

The frontend is a lightweight HTML/JavaScript app styled with Tailwind and Marked.js for rendering the markdown-formatted report. Everything runs locally over HTTPS, with Docker Compose available for containerized deployment.

Challenges we ran into

  • Reproducibility: LLM responses and live search results vary between runs, so the same idea could return different-looking answers each time. We solved this by normalizing whitespace on the input, generating a stable 16-character analysis ID, and caching completed results — identical ideas now always return the identical saved result.
  • Rate limits: Running six sequential research-heavy stages against a free-tier LLM provider meant hitting rate limits during testing. The pipeline runs stages sequentially (rather than in parallel) and retries with backoff to stay within provider quotas.
  • No first-party HF support in Strands: Since Strands doesn't ship a native Hugging Face model provider, we had to route reasoning through Strands' LiteLLM provider instead, and use the HF models directly as local classifiers rather than through the agent framework.
  • Local HTTPS setup: Getting a self-signed cert working correctly so the frontend could call the HTTPS backend without CORS/certificate issues took real trial and error.

Accomplishments that we're proud of

[e.g., getting a genuinely multi-stage, non-trivial agent pipeline working end-to-end rather than a single-prompt demo, or the deterministic finance layer producing real numbers instead of hallucinated ones.]

What we learned

Orchestrating multiple agents reliably is less about the LLM and more about the plumbing around it — caching, retries, and explicit sequencing mattered more to a stable demo than prompt engineering did.

[Add anything else specific to your experience — e.g., what surprised you about Strands, or about combining local classifiers with an LLM instead of using an LLM for everything.]

What's next for VentureLens

AWS isn't used at runtime yet — Strands Agents SDK is a dependency, not a deployment target. Next steps are deploying the backend to Amazon Bedrock AgentCore for a hosted, production-grade agent runtime, and optionally moving the reasoning model itself onto Amazon Bedrock alongside the existing Strands orchestration.

Built With

  • bert
  • docker
  • docker-compose
  • fastapi
  • groq
  • html5
  • huggingface
  • javascript
  • json
  • litellm
  • llama-3.3
  • marked-js
  • named-entity-recognition
  • nginx
  • pydantic
  • python
  • rest-api
  • roberta
  • sentiment-analysis
  • strands-agents-sdk
  • tailwindcss
  • tavily
  • tavily-search-api
  • transformers
  • uvicorn
Share this project:

Updates

Submission history