Loading
CASE STUDY · HOOKSCRIBE

Private Product · Functional MVP · AI Media Workflow

HookScribe

A focused Ruby on Rails application that turns uploaded audio and video into transcripts, campaign hooks, advertising angles and structured copy—inside one reusable workflow instead of scattered files, repeated playback and one-off chats.

My Role Product strategy, workflow design, UX and Rails development
Product Model Private, authenticated media-processing workspace
Core Stack Rails, PostgreSQL, Active Storage, FFmpeg and OpenAI
Current Stage Functional private MVP ready for continued productisation

The Product

The Problem

Useful campaign ideas were trapped inside repetitive media work.

Producing advertising content from interviews, testimonials and raw campaign footage often meant replaying the same media, manually transcribing it, copying fragments into documents and asking separate tools to generate hooks or ad copy without preserving the source workflow.

HookScribe turns that repeated process into a product. Each upload becomes a persistent request with its source media, processing state, transcript and reusable campaign outputs kept together in one private workspace.

HookScribe private Rails application showing its media transcription and advertising-content workflow
HookScribe keeps the upload, transcript and campaign-generation workflow inside one focused interface built for repeated internal use.

Product Workflow

From Media to Campaign Material

One request carries the work from upload through reusable output.

The workflow is intentionally linear. Each stage has a clear responsibility, reducing the chance of losing the source, duplicating work or separating the generated content from the media that created it.

01

Upload Media

Choose a supported audio or video file and create a persistent transcript request.

02

Validate & Store

Confirm file type and size, then attach the source securely through Active Storage.

03

Prepare Audio

Use FFmpeg where needed to produce an audio source suitable for transcription.

04

Generate Transcript

Convert spoken material into editable text while preserving the original request context.

05

Create Campaign Outputs

Turn the transcript into hooks, angles and structured advertising copy using OpenAI.

06

Review & Reuse

Keep outputs available for copying, refining, campaign planning and later reference.

What I Built

01 · ACCESS

Private Authentication

A Devise-backed login-only product with no unnecessary public signup or multi-tenant complexity for an internal workflow.

  • Authenticated access
  • Private request history
  • Controlled internal product scope

02 · MEDIA

Audio & Video Uploads

Active Storage attachments with supported-media validation and a practical 250 MB limit for real campaign files.

  • Audio and video validation
  • Source-file persistence
  • Clear validation feedback

03 · PROCESSING

FFmpeg Media Preparation

A server-side processing step that can prepare uploaded video for transcription without asking the user to convert files manually.

  • Video-to-audio preparation
  • External command integration
  • Failure-aware processing flow

04 · TRANSCRIPTION

Persistent Transcript Requests

A dedicated record tracks the uploaded media, transcript workflow and results rather than treating the output as disposable text.

  • Saved request history
  • Source and output association
  • Delete and workflow controls

05 · AI OUTPUTS

Hooks, Angles & Ad Copy

OpenAI-backed actions transform the transcript into structured campaign material designed for practical advertising use.

  • Campaign hooks
  • Advertising angles
  • Structured copy outputs

06 · PRODUCT EXPERIENCE

Review, Copy & Reuse

A focused interface with workflow context, advanced actions and Stimulus clipboard controls for moving useful outputs into active campaign work.

  • Stimulus clipboard actions
  • Clear request workflow panel
  • Reusable generated material

Processing Architecture

A Product Pipeline, Not a Prompt Box

The application coordinates storage, media processing and AI services.

HookScribe is useful because it manages the work around the model call: authentication, validation, file storage, media preparation, persistent records, output presentation and recovery from invalid input. AI is one service inside the product rather than the product’s entire architecture.

01

Rails Request Layer

Authentication, validation, record creation and workflow actions.

Application
02

Active Storage

Persistent attachment of the original audio or video source.

Storage
03

FFmpeg

Media preparation and audio extraction for supported video uploads.

Processing
04

OpenAI Services

Transcription and structured generation from the stored request context.

AI
05

Saved Product Output

Transcript, hooks and copy remain connected to the request for reuse.

Workspace

Key Product Decisions

Decision 01

Keep the first version private.

The MVP solves a real internal workflow without adding public onboarding, subscriptions, teams or permissions before the core processing experience has earned that complexity.

Decision 02

Store the workflow, not only the answer.

A transcript request preserves the source media and generated material so useful campaign work is not lost inside a temporary chat response.

Decision 03

Use AI for structured assistance.

Generated hooks and copy support the campaign workflow, while the product keeps review, selection and final judgment in the user’s hands.

My Role & Engineering Approach

End-to-End Ownership

I turned a repeated marketing task into a focused product.

The workflow came from direct experience producing paid-advertising campaigns. I defined the product boundary, modelled the request lifecycle, built the Rails application and shaped the interface around the work that actually needed to happen.

  • 01 Product problem, workflow and MVP scope
  • 02 Rails models, validations, controllers and views
  • 03 Authentication and private-access decisions
  • 04 Active Storage, FFmpeg and OpenAI integration
  • 05 Interface design, clipboard actions and browser checks

Technology

A focused Rails product with practical integrations.

The stack stays conventional while using the right external tools for media handling and AI-assisted content generation.

Ruby on Rails PostgreSQL Active Storage Devise Stimulus FFmpeg OpenAI APIs Minitest

Development Practice

Build the complete workflow before expanding the market.

The MVP prioritised a reliable end-to-end path—authentication, upload, processing, output and reuse—before introducing broader SaaS features that would not improve the core job.

Current Stage

Private MVP · Functional Workflow

The product solves the original internal use case.

HookScribe supports authenticated access, real media uploads, transcript requests, advanced campaign actions and reusable outputs. It is intentionally private while the workflow is used and refined.

AuthenticationFunctional
Media UploadsFunctional
Transcription WorkflowFunctional MVP
Campaign OutputsFunctional MVP

Direction

Productise further only when usage justifies it.

Future development could add background processing, richer output templates, team workspaces, usage controls and public plans. Those additions should follow real demand rather than turning a focused tool into premature SaaS.

Rails Development · Media Processing · AI Integration

HookScribe demonstrates how I turn a repeated workflow into focused, usable software.

Explore the rest of my software and client work, review my development profile or start a conversation about practical products and workflow automation.

© 2026 Cary Wood. Building software, tools and digital systems.

+
+