Inspiration

Most AI filmmaking tools focus on making the film: script generation, editing, VFX. But finishing a film is only half the problem. The other half, getting it seen, is mostly ignored. Indie filmmakers spend hours manually digging through festival and distributor websites that are outdated the moment they find them. I wanted to build something that treats “getting distribution” as seriously as any other agentic research problem, and does the research live instead of relying on stale training data.

What it does

Launch Radar takes a film’s basic profile (genre, runtime, budget tier, festival pedigree) and produces a ranked “Launch Strategy Memo”: a verdict on overall prospects, a ranked shortlist of festivals and distributors that actually fit the film right now, the specific reason each one fits, and what action to take next. It’s built to be honest rather than impressive. When the available data on a candidate is thin, the memo says so instead of inventing detail.

How I built it

Launch Radar runs a four-step pipeline:

1.  Parallel Search finds broad candidate leads for the film’s profile.
2.  Parallel Find All turns those leads into a structured shortlist of active festivals and distributors.
3.  Parallel Extract pulls the real, current submission criteria off each candidate’s own site.
4.  Gemini (via the google-genai SDK, structured with a pydantic schema) synthesizes all of that into the final ranked memo.

The app is a Flask web app deployed on Render, with background job processing and polling on the frontend since the full pipeline takes a few minutes and exceeds typical request timeouts. It’s deployed on Render’s free tier with an external pinger keeping it warm.

Challenges we ran into

The biggest challenge was making sure the pipeline reflected reality rather than plausible-sounding fiction. Early on, results included LinkedIn company pages instead of official festival or distributor websites. I traced this to Extract’s raw data actually containing the real official URL in an embedded field that the synthesis step wasn’t using, and fixed it to prefer that field.

The other recurring challenge was Gemini’s API occasionally returning 503 “high demand” errors mid-pipeline, unrelated to account or quota limits, just transient overload on Google’s side during periods of heavy traffic.

Accomplishments that we're proud of

Getting the full four-step pipeline (Search, Find All, Extract, Gemini) working end-to-end with real, live data, not mocked or cached results, and verifying every claim against actual terminal output rather than trusting a summary. Catching and fixing the LinkedIn-URL bug by actually tracing the root cause in Extract’s raw data instead of guessing at a fix. Getting Gemini to hedge honestly on thin data instead of inventing plausible-sounding detail, which is the whole credibility of the tool. And shipping this solo, live and deployed, under real hackathon deadline pressure.

What we learned

Grounding matters more than fluency. It was more valuable to get the agent to say “I don’t have enough information to confirm this” than to have it generate a confident-sounding guess. I also learned a lot about designing multi-step agentic pipelines where each step’s output has to survive being consumed by a very different kind of step next (search results feeding structured extraction feeding synthesis).

What's next for Launch Radar

Expanding beyond festivals and distributors to include sales agents and grant/funding opportunities, and adding the ability to track submission deadlines directly rather than just surfacing them.

Built With

Share this project:

Updates

Submission history