Agentic Cinema Hackathon  •  ClickHouse Track

From question
to acquisition memo
in seconds.

ScreenScore is a Studio Acquisition Analyst. It queries 388,000+ IMDb titles via ClickHouse, benchmarks against recent market comps, and produces a structured ACQUIRE / PASS / FURTHER REVIEW memo — backed by live SQL, not model memory.

Launch ScreenScore → See the pipeline
388K+Titles indexed
817K+Actors & directors
3.4M+Roles & credits
8Pipeline steps

Eight steps. Deterministic.
Every time.

Judges want to see determinism, not a black-box LLM call. Every step runs as a distinct, traceable operation — schema discovery, SQL execution, benchmark retrieval, and artifact generation.

01
Schema
Calls init_pipeline_state() + get_schema_info() to verify schema availability.
02
Discover
Calls list_tables via MCP. Confirms schema: movies, actors, directors, roles, genres.
03
Plan
States the query plan before writing SQL. Selects tables, columns, and join strategy.
04
Query
Executes ClickHouse SQL via run_query (read-only). Retries with corrected SQL on failure.
05
Analyze
Extracts genre position, director track record, rating trajectory, and cast comps from raw rows.
06
Compare
Retrieves recent streaming and box office benchmarks. Frames title vs. genre average and recent slate.
07
Validate
Calls validate_analysis_constraints(). Enforces all user constraints and data provenance rules.
08
Decide
Calls generate_acquisition_memo. Saves a signed markdown + JSON memo as a downloadable artifact.

Enterprise friction,
actually solved.

Not a chat-with-a-database demo. ScreenScore produces a structured decision artifact at the end of every acquisition workflow — the output an analyst actually needs.

Acquisition memos as artifacts
The DECIDE step generates a structured markdown + JSON memo saved to the ADK artifact store. Every memo contains recommendation, rationale, comparable titles, genre benchmark, and risk flags — ready to download and share.
ClickHouse at columnar speed
Sub-second aggregations on 3.4M+ rows. MergeTree indexes, window functions, and ARRAY JOIN — all used automatically.
Market comp benchmarks
Synthetic streaming and box office data for 19 recent titles supplements the historical IMDb dataset for comparative reasoning.
Read-only governance
run_query is the only data-writing surface — and it only executes SELECT statements. No INSERT, UPDATE, DELETE, or DDL is possible.
Analyst vs. executive view
Full SQL output for analysts. Ask for "executive view" to receive only the memo artifact — no raw data tables.
MCP-native SQL
Backed by the official mcp-clickhouse MCP server. Schema discovery and query execution are standard MCP tool calls — auditable and swappable.

A memo, not
just an answer.

The final step produces a downloadable acquisition memo — structured, sourced, and signed with a timestamp. Ready to share with an exec without copy-pasting a chat window.

Generate a memo →
Acquisition Memo — Anora (2024) Acquire
Generated2026-08-17 21:00 UTC
Genre benchmarkDrama/Romance — avg 6.9 / 14,200 titles
Director track recordSean Baker — avg 7.4 over 8 credits
Streaming (first 30d)8.3M views — Neon / Hulu
Comparable titlesPast Lives (7.9), Aftersun (7.7), Tangerine (7.1)
Risk flags1 — Limited theatrical window
All figures sourced from ClickHouse IMDb dataset and synthetic performance benchmarks. This memo does not constitute legal or financial advice.

Acquisition questions it
answers completely.

Acquisition Analysis
Run a full acquisition analysis on Anatomy of a Fall — director track record, genre comp, recommendation.
Try this →
Slate Comparison
Show all A24-distributed titles with IMDb rating above 7.5 since 2018 and their genre breakdown.
Try this →
Director Diligence
Compare Nolan, Villeneuve, and Fincher by average rating, genre range, and consistency over 10+ films.
Try this →
Genre Trend
How has the average IMDb rating of psychological thrillers trended from 2000 to 2024? Is the genre rising or declining?
Try this →
Risk Assessment
Which genres have the widest variance in ratings? Where is acquisition risk highest?
Try this →
Comps Report
Find the closest historical comps to Anora — same genre, similar era, high critical rating — and produce an acquisition memo.
Try this →

Real decisions.
Real data.

388,000 titles. Eight deterministic steps. One downloadable memo.

Launch ScreenScore →

Frequently asked
questions.

At the end of every full acquisition workflow, ScreenScore calls generate_acquisition_memo and saves a markdown + JSON file to the ADK artifact store. The memo contains: recommendation (ACQUIRE / PASS / FURTHER REVIEW), rationale, genre benchmark, comparable titles with ratings, and specific risk flags. It can be downloaded directly from the chat interface.
No. Every figure in the memo is sourced from a live ClickHouse query or the synthetic performance benchmark table. If a field is not present in the database (box office revenue, streaming rights, budget), the agent states this explicitly. It does not substitute model training data for missing facts.
The MCP toolset is configured with a strict tool_filter allowing only run_query, list_databases, and list_tables. The run_query tool in mcp-clickhouse executes SELECT statements only — no write operations are possible through this interface. The system prompt also instructs the agent to refuse any modification requests.
The IMDb ClickHouse dataset does not include box office revenue or streaming view counts. ScreenScore adds a synthetic benchmark table covering 19 recent titles (2022–2024) with estimated streaming views (first 30 days) and opening week box office. This lets the agent do comparative reasoning — new title vs. recent acquisition comps — closer to real M&E ops workflows.
Google ADK (Agent Development Kit) orchestrates the eight-step pipeline. Gemini 3.1 Flash Lite handles reasoning. ClickHouse SQL Playground is the data backend, accessed via the official mcp-clickhouse MCP server. The application is deployed on Google Cloud Run with a single instance for session consistency.
Powered by
Google Gemini 3.1 Flash Lite Google ADK ClickHouse MCP IMDb Dataset Cloud Run Python 3.11