#!/usr/bin/env python3 from seed_common import run_seed # Generate 500 distinct online marketing campaign descriptions def gen_marketing(n: int): channels = [ "email nurture", "lifecycle email", "paid social", "organic social", "search ads", "display retargeting", "video ads", "podcast sponsorship", "affiliate", "in-product messaging", "sms", "push notification", "webinar series", "community activation", "content syndication", ] audiences = [ "B2B SaaS founders", "growth-stage CTOs", "RevOps leaders", "enterprise procurement teams", "mid-market marketers", "developer advocates", "data science managers", "AI research leads", "design directors", "product-led growth teams", "freelance creators", "ecommerce operators", "fintech compliance teams", "healthcare administrators", "climate tech analysts", ] offers = [ "free benchmarking report", "interactive ROI calculator", "90-day pilot program", "co-marketing partnership", "invite-only beta", "executive roundtable", "certification workshop", "AI playbook download", "customer story series", "industry pulse newsletter", ] objectives = [ "drive qualified demo requests", "accelerate pipeline velocity", "improve activation to paywall", "expand enterprise accounts", "increase product-qualified leads", "re-engage dormant users", "reduce churn risk", "boost partner referrals", "grow share-of-voice", "upsell premium features", ] plays = [ "with multi-touch attribution", "with conversational nurture", "with realtime personalization", "with creative testing cadence", "with AI-assisted copy iteration", "with value-prop storytelling", "with social proof sequencing", "with influencer alignment", "with community-led prompts", "with retention cohort insights", "with predictive audience scoring", "with intent-driven offers", ] seen = set() produced = 0 for channel in channels: for audience in audiences: for objective in objectives: for offer in offers: phrase = ( f"Campaign: {channel} targeting {audience} leveraging {offer} to {objective}" ) if phrase in seen: continue seen.add(phrase) yield phrase produced += 1 if produced >= n: return if produced < n: for channel in channels: for play in plays: for audience in audiences: phrase = f"Campaign: {channel} {play} for {audience}" if phrase in seen: continue seen.add(phrase) yield phrase produced += 1 if produced >= n: return if __name__ == "__main__": run_seed("marketing", gen_marketing)