SignalCut turns AI-search visibility gaps into source-backed video campaigns.
Live production app: https://signalcut.pages.dev
Built at Big Berlin Hack for teams that need to turn distribution insight into something they can ship immediately.
Early-stage brands increasingly compete inside AI answers, not only on search result pages. A brand can be the best fit for a specific buyer and still lose because answer engines keep recommending larger incumbents.
SignalCut takes visibility context from Peec AI, finds the highest-value prompt gap, pulls source evidence, writes a grounded creative strategy, and generates a Hera video asset.
Example demo scenario:
- Brand: Attio
- Competitors: Salesforce and HubSpot
- Prompt gap: "best CRM for agencies with custom onboarding workflows"
- Output: ranked opportunity, source evidence, campaign brief, video variants, Hera prompt, completed MP4, and exportable campaign pack
SignalCut uses at least three Big Berlin Hack partner technologies:
- Peec AI: visibility context and prompt-gap input. SignalCut normalizes Peec visibility reports into campaign opportunities.
- Hera: AI video generation. SignalCut sends an opinionated creative prompt to Hera and displays the completed MP4 in the app.
- Google DeepMind / Gemini: campaign reasoning, opportunity normalization, creative strategy, scripts, and Hera prompt generation.
- Tavily: live source evidence retrieval for proof-backed campaign claims.
- Enter a brand, website, competitors, target audience, and visibility context.
- Normalize the visibility context into ranked AI-search opportunities.
- Select the strongest prompt gap.
- Pull source evidence with Tavily.
- Generate the campaign brief and video variants with Gemini.
- Create a Hera video job from the selected variant.
- Review the completed video and export the campaign pack as Markdown or JSON.
SignalCut is a Vite React app deployed to Cloudflare Pages with Pages Functions for provider integrations.
React UI
-> /api/opportunities -> Gemini
-> /api/evidence -> Tavily
-> /api/campaign -> Gemini
-> /api/hera/jobs -> Hera
-> /api/hera/status -> Hera
Provider keys are never exposed to the browser. They are stored as Cloudflare Pages secrets and used only inside server-side functions.
- React 19
- TypeScript
- Vite
- Cloudflare Pages and Pages Functions
- Gemini API
- Tavily API
- Hera API
- Lucide icons
src/
App.tsx Main product UI and flow orchestration
lib/api.ts Browser-safe API client
lib/scoring.ts Opportunity scoring
lib/export.ts Markdown/JSON campaign export helpers
functions/api/
opportunities.ts Peec visibility context -> ranked opportunities
evidence.ts Tavily source retrieval
campaign.ts Gemini campaign strategy generation
hera/jobs.ts Hera video job creation
hera/status.ts Hera polling/status endpoint
docs/hackathon/
signalcut-demo-plan.md
ai-visibility-video-agent-prd.md
ai-visibility-video-agent-feature-spec.md
Prerequisites:
- Node.js 20+
- npm
- API keys for Tavily, Gemini, and Hera
Install dependencies:
npm installCreate local secrets:
cp .env.example .dev.varsFill .dev.vars:
TAVILY_API_KEY=...
GEMINI_API_KEY=...
GEMINI_MODEL=gemini-flash-latest
HERA_API_KEY=...
HERA_STYLE_ID=Run locally:
npm run devFor local Pages Functions parity, use Wrangler:
npx wrangler pages dev distMost development work can be done with Vite. Use Wrangler when validating Cloudflare Pages Functions behavior.
npm run buildThis runs TypeScript checks for both the Vite app and Cloudflare Functions, then builds the static frontend into dist/.
The project is configured for Cloudflare Pages in wrangler.toml.
name = "signalcut"
pages_build_output_dir = "dist"
compatibility_date = "2026-04-25"Set production secrets:
npx wrangler pages secret bulk .dev.vars --project-name signalcutDeploy:
npm run build
npx wrangler pages deploy dist --project-name signalcut --branch main --commit-dirty=trueProduction URL:
- Do not commit
.dev.vars,.env.local,.wrangler/,dist/,node_modules/, orartifacts/. - Provider keys are server-side only.
- The browser receives only generated campaign data and provider job status.
- The app avoids unsupported competitor claims by grounding generated strategy in retrieved evidence.
npm run dev # Start Vite development server
npm run build # Typecheck and build
npm run preview # Preview built app locally
npm run typecheck # Typecheck app and functions- Live product deployed: https://signalcut.pages.dev
- Public repository with setup instructions
- README documents partner technologies
- README documents APIs and deployment
- Source code avoids committed secrets