Inspiration
We kept seeing AI agents confidently make up movie ratings and box office numbers. For real acquisition decisions, that's useless. We wanted something that can't lie — every figure has to come from a live database query.
What it does
You give ScreenScore a movie title. It queries 388K IMDb titles in ClickHouse, runs real SQL, and gives you an ACQUIRE / PASS / FURTHER REVIEW recommendation with genre benchmarks, director track records, and risk flags.
How we built it
- Google ADK + Gemini 3.1 Flash Lite
- ClickHouse via MCP (388K movies, 817K actors, 3.4M roles)
- 8-step deterministic pipeline
- Anti-hallucination self-audit that fails the pipeline if data doesn't match
- Cloud Run with auto-deploy from GitHub
Challenges we ran into
- The LLM kept hallucinating. We'd give it SQL results and it'd still report wrong numbers. Built a strict self-audit gate to catch it.
- Free tier quota is tiny. Had to cut our prompt by 51% to fit.
- MCP fails silently if env vars are wrong. No error, just no tools.
Accomplishments that we're proud of
- The anti-hallucination system actually works — tested it hard, catches fakes every time
- 115 tests passing
- The memo output is legit — not just a chat summary
What we learned
- Grounding in real databases changes everything. The agent doesn't "know" movies — it queries them.
- Prompt engineering is half the project. Seven iterations before it worked within quota.
- MCP made database integration take hours instead of days.
What's next for Screenscore
- Persistent sessions across page loads
- More database sources (box office, streaming data)
- Batch analysis — compare multiple titles at once
Built With
- clickhouse
- docker
- fastapi
- gemini
- googe-adk
- google-cloud
- llm
- mcp
- python
Log in or sign up for Devpost to join the conversation.