real-estate-workflows

SKILL.md

Real Estate Workflows

Core Pipeline

URL → Video Workflow

[Listing URL Input]
[Firecrawl Extraction]
[Data Validation]
[AI Script Generation]
[TTS Voiceover (Optional)]
[Remotion Render]
[Upload to Storage]
[Notify User]

Workflow API

Single Video Generation

POST /api/workflow/generate-video
{
  listingUrl: "https://zillow.com/...",
  videoType: "property-showcase",
  options: {
    voiceover: true,
    music: "upbeat",
    branding: {
      agentName: "Jane Smith",
      logoUrl: "https://..."
    }
  }
}

Batch Processing

POST /api/workflow/batch
{
  urls: ["url1", "url2", "url3"],
  videoType: "social-short",
  options: { ... }
}

Status Tracking

GET /api/workflow/status/:jobId

{
  jobId: "job_abc123",
  status: "rendering",
  progress: 65,
  steps: [
    { name: "scrape", status: "complete", duration: 2.3 },
    { name: "script", status: "complete", duration: 4.1 },
    { name: "voiceover", status: "complete", duration: 8.2 },
    { name: "render", status: "in_progress", progress: 45 }
  ],
  estimatedCompletion: "2024-01-15T10:30:00Z"
}

Detailed Rules

Database Schema

Video Jobs (Convex)

defineTable({
  userId: v.string(),
  listingUrl: v.string(),
  videoType: v.string(),
  status: v.string(), // pending, scraping, generating, rendering, complete, failed
  progress: v.number(),
  propertyData: v.optional(v.any()),
  script: v.optional(v.string()),
  voiceoverUrl: v.optional(v.string()),
  videoUrl: v.optional(v.string()),
  thumbnailUrl: v.optional(v.string()),
  error: v.optional(v.string()),
  createdAt: v.number(),
  completedAt: v.optional(v.number()),
})

Error Handling

Error Recovery
Scrape failed Retry with fallback parser
AI timeout Retry with shorter prompt
Render OOM Reduce resolution, retry
Storage failed Queue for later upload

Webhook Notifications

// Configure in user settings
POST /webhooks/video-complete
{
  event: "video.complete",
  jobId: "job_abc123",
  videoUrl: "https://storage.../video.mp4",
  propertyAddress: "123 Main St",
  timestamp: "2024-01-15T10:30:00Z"
}

Integrations

  • Firecrawl: Property data extraction
  • Gemini AI: Script generation
  • OpenAI TTS: Voiceover synthesis
  • Remotion Lambda: Video rendering
  • Supabase Storage: Asset hosting
  • Convex: Real-time job tracking
  • Clerk: User authentication
  • Stripe: Usage billing
Weekly Installs
3
First Seen
Feb 24, 2026
Installed on
opencode3
gemini-cli3
claude-code3
github-copilot3
amp3
codex3