Inspiration

Greenlighting a film means committing tens of millions of dollars based on a room's read of a screenplay — informed, but rarely evidence-based. The historical record of what happened to comparable projects exists. It is almost never consulted in the room where the decision gets made, because pulling it together takes weeks, not the afternoon a greenlight meeting actually has.

We wanted to put that record in the room, in real time, and — just as importantly — build a tool that supports an argument rather than replacing one. A single score that claims authority is the wrong shape for a decision this consequential. What a committee needs is evidence it can interrogate: reject a comparable it disagrees with, see what a number is made of, and find out where a lever actually moves the outcome.

The gap is sharper outside Hollywood. A producer in Tokyo greenlighting a project faces the same all-or-nothing bet, with a comparable record that is thinner in their own language and their own market — and the analysis tools that exist are almost all English-first, built around English-language catalogues. We wanted the tool to work the other way: read in Japanese, argue in Japanese, and when the Japanese-market record is too thin to stand on its own — which, honestly, it often is — say so and reach for the far deeper global record instead of pretending the local one is enough.

What it does

Paste a screenplay, treatment, or series bible. Three Gemini agents built on Google's Agent Development Kit read it, investigate a real catalogue of 2,719 films and 20,836 television series in ClickHouse, and write a greenlight memo — citing real titles, real box-office and renewal outcomes, and stating plainly where the evidence is thin.

Film and television are scored on different questions, because they are different businesses. Film is judged on projected gross against the break-even a budget of that size actually needs to clear. Television is judged on whether it comes back — against the market it was made for, since a ten-episode single season is a cancellation in Los Angeles and a completed commission in Tokyo.

Three things set this apart from a chatbot that answers questions about movies:

The agent writes its own SQL. Beyond a fixed set of tools, the research agent can query the catalogue directly through ClickHouse's own MCP server — deciding what to ask, not just retrieving what it was told to. In production, that query returns in tens of milliseconds.

Any comparable can be rejected — and the tool makes you watch what that costs. "That title isn't comparable" is the most common objection in a real greenlight room. Unchecking a title re-derives the verdict from ClickHouse in milliseconds, with no model call — and the score does not politely hold steady. Drop the one discouraging title from a five-title set and the verdict can move a whole tier. That movement is the point: a producer who quietly discounts the titles that argue against a project in their own head never has to watch how much of their confidence that discounting bought. This tool makes the cost of cherry-picking visible instead of letting it stay invisible.

It shows where the verdict turns. Rather than a text recommendation like "reduce the budget," the tool re-runs the deterministic model along a ladder of budgets and names the point where the verdict actually changes — sometimes revealing that the obvious advice is wrong for this particular project.

The interface runs in English or Japanese — and that is not a cosmetic toggle. A Japanese producer working entirely in Japanese can pull evidence from the same 2,719-film, 20,836-series catalogue a Hollywood studio would use, with Japanese titles shown for the 346 Japanese and 1,015 Korean television series already in it. When the Japanese-specific comparable set is too thin — Wikidata records far fewer Japanese film budgets than American ones — the memo says so by name and draws its comparison from the wider English-language record instead, rather than forcing a verdict out of five titles.

How we built it

Agents. The first design had five narrowly-scoped agents, one per task. We cut it to three. A Research Analyst that owns five tools and decides for itself which to call, in what order, is a harder and more honest demonstration of autonomy than five agents each handed one fixed job — agent count measures headcount, not judgment. The split of labor is deliberate, too: the three agents read, investigate, and write — reasoning tasks a language model is suited for. Every number a reader actually sees, the score, the ROI range, the verdict ladder, is computed by ordinary Python from the rows ClickHouse returned, never by the model. That does not eliminate hallucination — the agents still choose which titles are comparable and argue a case — but it does remove arithmetic mistakes as a failure mode entirely, rather than prompting the model to please be careful with numbers. Three Google ADK LlmAgents run on Gemini 2.5 Flash: a Script Analyst that extracts a structured brief, that Research Analyst — vector search, segment benchmarking, talent lookup, catalogue coverage, and ad-hoc SQL via ClickHouse's official mcp-clickhouse MCP server — and a Greenlight Writer that turns computed numbers into a memo it is forbidden to contradict. Six independent ceilings (spend, wall clock, model calls, tool calls, repeated identical calls) sit in front of every model and tool call, so a runaway agent stops itself rather than the bill.

Data. Real box-office and renewal outcomes are only useful if the licence allows using them the way this project does — fed to a model, run inside a business. Wikidata (CC0) and English Wikipedia (CC BY-SA 4.0) both do. The catalogue — 2,719 films with a real budget and box-office gross, 20,836 television series with a recorded season count — was built with a SPARQL query for the numeric spine and steadier REST APIs for enrichment, because the Wikidata Query Service degrades often. Every row carries a Gemini text-embedding-004 embedding of its synopsis.

Database. ClickHouse runs self-hosted on a single Compute Engine node, reachable only from inside the VPC — not ClickHouse Cloud, whose 30-day trial would have expired mid-way through the judging window. cosineDistance() over 768-dimension embeddings finds tone-similar titles in tens of milliseconds; a query against the full catalogue completes in under 250ms end to end from Cloud Run, same region.

Frontend. Plain HTML, CSS, and JavaScript with no build step, served directly by FastAPI. The interesting engineering is behind the API; a page that cannot break its own build cannot break the submission the week of a deadline.

Challenges we ran into

The commercial film database we planned to use required certifying that our use was strictly personal and would never touch a business environment — a certification this submission, entered under a company name at a public URL, could not honestly make. We rebuilt the entire ingest pipeline on Wikidata and Wikipedia instead, with thirteen days left.

Handing ADK a model by name built a fresh client on every single call — thirty seconds of cold start each time on this network, entirely from TLS handshake and token exchange, not from model "thinking." Sharing one warmed client across every agent call brought that to under a second.

Rejecting a comparable title moved the score by one point at first, because break-even probability was drawn almost entirely from a budget-matched benchmark and barely touched the comparable set the interface puts front and centre. Film's projection now blends both, shrunk by sample size the same way the television model already did, so an objection a reviewer actually raises now moves the number honestly.

Accomplishments that we're proud of

Every claim in the README is checkable at /api/health, which reports the live ClickHouse server version and row counts, the Gemini backend, and whether the official MCP server actually started — not what we assert, but what is wired up. When mcp-clickhouse silently failed to install in a clean container build, health caught it before a judge would have.

The What-if slider and the "where the verdict changes" ladder run entirely on ClickHouse reads with zero model calls, so a reviewer can interrogate a dozen scenarios in the time one model call would have taken.

What we learned

A tool that outputs one score invites its reader to stop thinking. A tool that shows the score's components, lets a reviewer reject the evidence it disagrees with, and answers "at what point does this change" earns a different kind of trust — the kind a real committee actually needs, because it can be argued with instead of merely believed.

What's next for Greenlight Studio

The next chapter is turning that gap into the product's actual center of gravity: not an English-language tool that happens to carry some Japanese data, but the tool a Japanese-speaking producer reaches for first — reading and arguing entirely in their own language, drawing on the deep, global record of English-language hits as the default evidence base. Deeper native Japanese and Korean film-budget coverage is what closes the honesty gap behind that claim: the tool already handles a thin local record well today, falling back to the wider English-language catalogue and saying so in the memo rather than forcing a verdict out of five titles, but a Japanese producer deserves a Japanese comparable set as deep as the English one. Multi-title slates, so a studio can compare a season's worth of proposals against the same evidence at once. And a persisted history of past greenlight decisions the tool could learn to calibrate against.

Built With

Share this project:

Updates

Submission history