Spaces:
Sleeping
Sleeping
File size: 13,728 Bytes
d27b187 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 | """Generate the AgroSense Instagram Launch Campaign as Word (.docx) and PDF.
pip install python-docx fpdf2
python scripts/build_campaign.py
Content is ASCII so the PDF renders with built-in core fonts.
"""
from __future__ import annotations
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parent))
from docgen import build_both # noqa: E402
DOCS_DIR = Path(__file__).resolve().parent.parent / "docs"
TITLE = "AgroSense - Instagram Launch Campaign"
SUBTITLE = "Content, reel scripts, voiceover and audio direction - 2-week launch sprint"
SECTIONS = [
("1. Campaign Overview", [
("ul", ["Campaign name: #GrowWithAgroSense ('Smart farming, local wisdom').",
"Goal: awareness + sign-ups (farmers, FPOs/cooperatives, agri-doctors).",
"Audience: smallholder farmers, FPOs, agri-experts, agri-students, "
"agri-input partners (India-first; multilingual).",
"Duration: 14-day launch sprint, then 3-4 posts/week ongoing.",
"Primary CTA: 'Try free at the link in bio.' Secondary: 'Are you an "
"agri-expert? Apply to become a verified Plant Doctor.'",
"KPIs: reach, saves, shares, profile visits, link clicks, reel plays, "
"sign-ups, doctor applications.",
"Tone: empowering, practical, trustworthy, hopeful, local.",
"Look: green/earth palette, the sprout (leaf) logo, real farm footage, "
"clean data overlays, large readable captions."]),
]),
("2. Content Pillars", [
("ol", ["Empathy - real farmer pain points (wrong inputs, pests, price shocks).",
"Features - advisor, weather/satellite, plant clinic + live doctor, "
"prices & farmer trading, clubs, traditional/Panchang advisor, finance "
"(loans + schemes), land records, multilingual.",
"Education - quick, useful agronomy tips ('Did you know').",
"Proof and impact - outcomes, numbers, testimonials.",
"Community and CTA - sign up, refer, become a verified plant doctor."]),
]),
("3. Two-Week Content Calendar", [
("ul", ["Day 1 (Reel): Launch - 'Meet AgroSense'. CTA: link in bio.",
"Day 2 (Carousel): '5 ways AgroSense helps your farm'.",
"Day 3 (Story): Poll - 'Biggest farm worry? Pests / Weather / Prices'.",
"Day 4 (Reel): 'Snap a sick leaf -> get a prescription' (Plant clinic).",
"Day 5 (Single post): Weather + satellite advisory screenshot + tip.",
"Day 6 (Carousel): 'Ask in your language' (multilingual demo).",
"Day 7 (Reel): 'Talk to a real plant doctor' (live consult).",
"Day 8 (Story): Quiz - 'Which fertilizer for sandy-soil maize?'.",
"Day 9 (Single post): Live mandi prices + commodities, 'Sell smarter'.",
"Day 10 (Reel): 'From question to cited answer in 1 second' (advisor).",
"Day 11 (Carousel): 'For agri-experts: become a verified Plant Doctor'.",
"Day 12 (Story): Behind the scenes / founder note + countdown.",
"Day 13 (Single post): Impact stats (yield +15%, fertilizer -20%).",
"Day 14 (Reel): Recap + strong CTA + testimonial clip."]),
]),
("4. Reel 1 - 'Meet AgroSense' (30s, launch)", [
("p", "Format: 9:16 vertical. Pace: fast cuts, captions burned-in. Hook in 2s."),
("ul", ["0-3s | Worried farmer looking at a spotted leaf | Text: 'Wrong advice "
"costs your crop.' | VO: 'Every season, a wrong guess costs the harvest.'",
"3-8s | Phone shows the AgroSense app/chat | Text: 'Ask anything.' | VO: "
"'AgroSense gives evidence-backed answers - with sources you can trust.'",
"8-14s | Quick montage: weather, satellite map, leaf scan, price ticker | "
"Text: 'Weather - Satellite - Plant clinic - Prices' | VO: 'Local weather, "
"satellite view, plant diagnosis, and live market prices.'",
"14-20s | Chat answer in Hindi/Kannada | Text: 'In your language.' | VO: "
"'Ask in your own language.'",
"20-26s | Video call with a 'Plant Doctor' | Text: 'Talk to a real "
"expert.' | VO: 'And when you need a human, consult a verified plant "
"doctor - live.'",
"26-30s | Logo + CTA card | Text: 'Try free. Link in bio.' | VO: "
"'AgroSense. Smart farming, local wisdom.'"]),
("p", "Audio: upbeat, hopeful acoustic/folk-fusion bed (90-110 BPM); soft "
"whoosh on each cut; VO ducks the music by ~8 dB."),
]),
("5. Reel 2 - 'Snap a sick leaf' (20s, Plant clinic)", [
("ul", ["0-3s | Close-up: yellowing/spotted tomato leaf | Text: 'Sick crop?' | "
"VO: 'Not sure what is wrong with your crop?'",
"3-9s | Farmer photographs the leaf in the app | Text: 'Just take a "
"photo.' | VO: 'Just snap a photo.'",
"9-15s | Screen: diagnosis + prescription card appears | Text: 'Get a "
"diagnosis + treatment.' | VO: 'Get a likely diagnosis and a step-by-step "
"treatment - with safe dosages.'",
"15-20s | Healthy field + logo | Text: 'AgroSense Plant Clinic. Link in "
"bio.' | VO: 'Heal your crop early. AgroSense.'"]),
("p", "Audio: light curiosity motif, camera-shutter SFX at 6s, positive resolve "
"chord at 15s. Disclaimer caption: 'Decision support, not a substitute for "
"an expert.'"),
]),
("6. Reel 3 - 'Talk to a real plant doctor' (25s)", [
("ul", ["0-3s | Farmer with a tough problem | Text: 'Need a real expert?' | VO: "
"'Some problems need a human expert.'",
"3-9s | App: choose specialization/language, tap Request | Text: 'Request "
"a live consult.' | VO: 'Request a live consultation in seconds.'",
"9-16s | Routed to a verified doctor; star rating + ICAR reg shown | "
"Text: 'Matched to a VERIFIED doctor.' | VO: 'You are matched to a "
"verified plant doctor - ratings and registration shown.'",
"16-22s | Video call + chat | Text: 'Video + chat. Your language.' | VO: "
"'Talk by video or chat, in your language.'",
"22-25s | Logo + CTA | Text: 'AgroSense. Link in bio.' | VO: 'Expert help, "
"wherever you farm.'"]),
("p", "Audio: warm, reassuring piano/strings bed; gentle notification chime when "
"matched (14s)."),
]),
("7. Carousel Posts (copy)", [
("h2", "Carousel A - '5 ways AgroSense helps your farm'"),
("ol", ["Cited crop, fertilizer and pest advice - no more guesswork.",
"Local weather + satellite view to time irrigation and spraying.",
"Snap-a-leaf plant clinic: diagnosis + treatment.",
"Live mandi prices - sell at the right place and time.",
"Ask in your language; consult a verified plant doctor."]),
("h2", "Carousel B - 'Become a verified Plant Doctor'"),
("ol", ["Reach farmers who need your expertise.",
"Get verified (credentials + ICAR/registration number).",
"Take live video/chat consults; build your rating and reviews.",
"Apply in the app - Plant clinic tab -> 'Apply as a plant doctor'."]),
]),
("8. Sample Captions", [
("p", "Launch (Reel 1): One wrong input can cost a whole season. AgroSense puts "
"evidence-backed, cited farming advice in your pocket - plus weather, "
"satellite, plant diagnosis, live prices, and verified plant doctors. In "
"your language. Try it free - link in bio. #GrowWithAgroSense"),
("p", "Plant clinic (Reel 2): Spotted leaves? Do not guess. Snap a photo and get "
"a likely diagnosis with a safe, step-by-step treatment. Catch problems "
"early, protect your yield. Link in bio. (Decision support, not a "
"substitute for an expert.)"),
("p", "Plant doctor (Reel 3): When you need a human, AgroSense connects you to a "
"VERIFIED plant doctor - by video or chat, in your language, with ratings "
"you can see. Real expertise, wherever you farm. Link in bio."),
("p", "Experts: Are you an agronomist, pathologist or entomologist? Get verified "
"on AgroSense and help farmers across India. Apply in the app today."),
]),
("9. Stories and Interactive", [
("ul", ["Poll: 'Biggest worry this season? Pests / Weather / Prices'.",
"Quiz: 'Which fertilizer for sandy-soil maize?' (reveal the cited answer).",
"Slider: 'How confident are you about pest control?'.",
"Countdown sticker to launch / a live Q&A.",
"'Ask me anything' box -> answer using AgroSense on screen.",
"Behind-the-scenes: how answers are grounded and cited.",
"Repost user results/testimonials; add captions and the link sticker."]),
]),
("10. Voiceover Scripts (Audio)", [
("h2", "Master VO - 30s launch (English)"),
("p", "'Every season, a wrong guess costs the harvest. AgroSense gives "
"evidence-backed answers - with sources you can trust. Local weather, "
"satellite view, plant diagnosis, and live market prices. Ask in your own "
"language. And when you need a human, consult a verified plant doctor, "
"live. AgroSense - smart farming, local wisdom. Try it free.'"),
("h2", "Localization"),
("p", "Record the same VO in Hindi, Kannada, Telugu, Tamil, Marathi, Bengali and "
"Malayalam. Keep sentences short; match the on-screen captions. Use a warm, "
"trusted regional voice (ideally a real farmer/agronomist for authenticity). "
"Always burn in subtitles - most feed views are muted."),
("h2", "Tagline (all reels)"),
("p", "'AgroSense - smart farming, local wisdom.'"),
]),
("11. Audio and Music Direction", [
("ul", ["Bed: upbeat acoustic / folk-fusion, 90-110 BPM, hopeful and warm; use "
"Instagram-licensed/trending audio where possible for reach, plus a "
"royalty-free original for ads.",
"Doctor/telemedicine reels: softer piano/strings for trust.",
"SFX: subtle whoosh on cuts, camera shutter on photo capture, gentle "
"chime on 'doctor matched'.",
"Mix: duck music under VO by 6-8 dB; normalize to about -14 LUFS; keep "
"peaks below -1 dBFS.",
"Accessibility: always include burned-in captions/subtitles."]),
]),
("12. Hashtag Sets", [
("p", "Core: #GrowWithAgroSense #AgroSense #SmartFarming #DigitalAgriculture "
"#AgriTech #FarmingAdvisor"),
("p", "Reach (India): #KisanTech #Kheti #IndianAgriculture #AgriIndia #FarmerFirst "
"#CropCare #PlantDoctor #SustainableFarming #AIforAgriculture #FarmSmart"),
("p", "Use 8-12 relevant tags per post; mix high- and niche-volume; rotate to "
"avoid repetition; add 1-2 regional/language tags per localized post."),
]),
("13. Profile and Link-in-bio", [
("ul", ["Handle: @agrosense (or @agrosense.app).",
"Bio: 'AI farming advisor | Cited crop, weather & market advice | Plant "
"clinic + verified doctors | In your language | Try free ->'.",
"Link-in-bio: app/sign-up, 'Become a plant doctor', and the user manual.",
"Highlights: How it works, Plant clinic, Live doctor, Prices & Trading, "
"Clubs, Traditional, Finance, Land records, Languages, FAQs."]),
]),
("14. Production Notes and Tools", [
("p", "These are production-ready scripts. To produce the actual media:"),
("ul", ["Video editing: CapCut, InShot, Canva, or Premiere/After Effects for "
"motion graphics. Shoot real farm B-roll; screen-record the app.",
"Voiceover: record a real regional voice, or use a quality TTS (e.g. "
"ElevenLabs/Murf) then human-review for pronunciation.",
"Music: Instagram's in-app licensed audio for organic reach; royalty-free "
"libraries (e.g. Epidemic, Artlist) for ads.",
"Captions: auto-caption then proofread; keep text in the safe zone.",
"Specs: 1080x1920, 9:16, MP4 (H.264), 30 fps, under 60s for reels.",
"Compliance: keep the 'decision support, not a substitute for an expert' "
"line on medical/treatment content; avoid guaranteeing yields."]),
]),
("15. Measurement", [
("ul", ["Track per post: reach, plays, average watch time, saves, shares, "
"profile visits, link clicks.",
"Track funnel: link clicks -> sign-ups -> active users; doctor applications.",
"Double down on the top 2 reels (boost as ads to look-alike audiences).",
"Review weekly; iterate hooks (first 2 seconds) and CTAs."]),
]),
]
def main() -> int:
build_both(TITLE, SUBTITLE, SECTIONS, DOCS_DIR, "AgroSense_Instagram_Campaign")
return 0
if __name__ == "__main__":
raise SystemExit(main())
|