agrosense / scripts /build_calendar30.py
johnpitteera's picture
Upload folder using huggingface_hub
d27b187 verified
Raw
History Blame Contribute Delete
5.92 kB
"""Generate the AgroSense 30-Day Content Calendar (post-launch) as Word + PDF.
pip install python-docx fpdf2
python scripts/build_calendar30.py
"""
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 - 30-Day Content Calendar"
SUBTITLE = "Post-launch monthly plan that extends the #GrowWithAgroSense sprint"
SECTIONS = [
("1. Overview and Cadence", [
("p", "This 30-day plan continues after the 14-day launch sprint. It sustains a "
"predictable rhythm, rotates the five content pillars (empathy, features, "
"education, proof, community/CTA), and builds recurring series so followers "
"know what to expect."),
("ul", ["Cadence: 1 post/day on average - about 12 reels, 6 carousels, 6 single "
"posts, 1 live, plus daily stories and 2 user-generated (UGC) reposts.",
"Every post ends with a clear CTA (try free / apply as a doctor / save "
"and share). Keep the link sticker on stories.",
"Best posting windows in India: roughly 7-9 AM and 7-9 PM IST; test and "
"adjust to your audience insights.",
"Always burn in captions/subtitles; design for muted autoplay."]),
]),
("2. Recurring Weekly Series", [
("ul", ["Market Monday (Reel) - this week's mandi/commodity prices + a sell-smart tip.",
"Tip Tuesday (Reel) - one quick, cited agronomy tip (60 seconds).",
"Doctor Friday (Reel) - meet/learn from a verified plant doctor.",
"Weekend Wins (Story/UGC) - testimonials and farmer results.",
"Mid-week (Carousel or single post) - education, features, or community."]),
]),
("3. Week 1 - Feature Deep-Dives", [
("ul", ["Day 1 (Reel, Market Monday): top-crop mandi prices this week; 'sell at "
"the right mandi'.",
"Day 2 (Reel, Tip Tuesday): 'Right fertilizer for your soil' - cited mini-tip.",
"Day 3 (Carousel): how AgroSense weather + satellite time your irrigation "
"and spraying.",
"Day 4 (Single post): Myth vs fact - 'More fertilizer = more yield?'.",
"Day 5 (Reel, Doctor Friday): meet a verified plant doctor (intro + rating).",
"Day 6 (Story): poll + week recap; repost a UGC result.",
"Day 7 (Carousel): 'Ask in your language' - demo across 7 Indian languages."]),
]),
("4. Week 2 - Education and Seasonal Agronomy", [
("ul", ["Day 8 (Reel, Market Monday): price trend + 'when to sell'.",
"Day 9 (Reel, Tip Tuesday): scout pests in 60 seconds (IPM basics).",
"Day 10 (Single post): seasonal checklist for the current crop stage.",
"Day 11 (Carousel): 'Snap-a-leaf' plant-clinic walkthrough, step by step.",
"Day 12 (Reel, Doctor Friday): mini-AMA clip / live Q&A teaser.",
"Day 13 (Story): quiz - identify the pest, then reveal the cited answer.",
"Day 14 (Single post): impact stat + a short farmer testimonial."]),
]),
("5. Week 3 - Trust and Community", [
("ul", ["Day 15 (Reel, Market Monday): 'why prices vary across mandis'.",
"Day 16 (Reel, Tip Tuesday): water-smart irrigation tip.",
"Day 17 (Carousel): farmer success story (before/after).",
"Day 18 (Single post): expert spotlight - a verified doctor and their ratings.",
"Day 19 (Reel, Doctor Friday): how verification works (credentials + ICAR "
"registration) and why it builds trust.",
"Day 20 (LIVE): live consultation demo / expert AMA; save as a reel after.",
"Day 21 (Story, UGC takeover): a farmer shares their week with AgroSense."]),
]),
("6. Week 4 - Growth and Partnerships", [
("ul", ["Day 22 (Reel, Market Monday): commodity outlook + sell-smart tip.",
"Day 23 (Reel, Tip Tuesday): post-harvest handling tip.",
"Day 24 (Carousel): 'For FPOs and cooperatives' - onboard your members.",
"Day 25 (Single post): referral - 'invite a fellow farmer, help them grow'.",
"Day 26 (Reel, Doctor Friday): 'Become a verified plant doctor' - recruit "
"experts.",
"Day 27 (Carousel): 'For agri-input partners' (B2B value).",
"Day 28 (Story): poll - which feature should we build next?"]),
]),
("7. Days 29-30 - Monthly Wrap", [
("ul", ["Day 29 (Reel): monthly recap - best tips and community wins.",
"Day 30 (Carousel + Story): 'This month at AgroSense' highlights, a strong "
"CTA, and a teaser for next month."]),
]),
("8. Content Mix and Notes", [
("ul", ["Pillar balance per week: 2 feature, 2 education, 1 proof, 1 community/CTA, "
"1 empathy.",
"Repurpose: turn each reel into a carousel and 2-3 story frames; clip the "
"live into reels.",
"Localize top performers into Hindi/Kannada/Telugu/Tamil/Marathi/Bengali/"
"Malayalam.",
"Boost the best 2-3 reels as ads to look-alike audiences.",
"Keep compliance: 'decision support, not a substitute for an expert' on "
"treatment content; never guarantee yields.",
"Review weekly: double down on the top hooks (first 2 seconds) and CTAs."]),
]),
]
def main() -> int:
build_both(TITLE, SUBTITLE, SECTIONS, DOCS_DIR, "AgroSense_30Day_Calendar")
return 0
if __name__ == "__main__":
raise SystemExit(main())