Inspiration

Production offices still treat the night before a shoot like a scavenger hunt. The call sheet is done. The research is not. Someone has to find out if the location is in the news, if another unit already locked the block, if a name on the sheet just became a problem, and if that needle-drop is going to get legal on the radio. That work is tabs, Slack, and hope. We wanted the overnight packet to actually do the googling.

The Agentic Cinema brief asked for a Gemini agent that does a real media job and talks to a partner at runtime. Parallel Search is the partner that fits: the desk needs the live web, not a warehouse of old rows.

What it does

Overnight is a web desk for a coordinator. You paste tomorrow's call sheet (or load the River Line sample). A Gemini agent on Google ADK fires separate Parallel searches for location, talent/news, competing productions, and music, then writes a one-page brief: proceed, watch, or ask legal, with sources. The UI looks like paperwork, not a chatbot.

How we built it

Google ADK + Gemini for the agent (app/agent.py) Official parallel-web SDK: from parallel import Parallel then client.search(...) (app/tools.py) FastAPI for /api/overnight React + Vite + Tailwind for the desk

Data is the live public web via Parallel, not a spreadsheet. The sample shoot is a fictional indie at a real place (Brooklyn Navy Yard) so searches hit real pages. On every Run overnight, Gemini (Google ADK in app/agent.py) calls the official Parallel SDK in app/tools.py: from parallel import Parallel then client.search(...). Four tools: location, talent/news, competing productions, music clearance.

Challenges we ran into

Windows saved some repo files as UTF-16, which pip cannot read. We ship a bootstrap that rewrites requirements as UTF-8. The agent can take 30-60 seconds because it runs several live searches; that is honest, not a spinner. Hosting has to be a real process (Render / Cloud Run), not a 10-second serverless function.

What we learned

The coordinator never chats with a bot. They get a stamped packet: proceed / watch / ask legal, flags, and source URLs. We learned the overnight job is several searches, not one prompt, and that a 30–60 second wait is honest if the web is actually being searched.

What's next

Hook this into a real call-sheet PDF drop, and let legal reply on the same packet. Same desk, same tools.

Built With

Share this project:

Updates

Submission history