AI Social Media Growth
0/15 complete

Module 01 · Building Your Content Engine

Setting Up an AI Content Calendar in Sheets and ChatGPT

An AI content calendar is a publishing queue with clear decisions attached. Google Sheets stores the plan; ChatGPT proposes topics and hooks from your niche promise. Neither tool decides what deserves publication.

By the end, you will have an eight-column Sheet, a human approval gate, and a filled 14-day sample calendar that separates ideas from approved work.

// concept

Build the Eight-Column Sheet

Create a blank Google Sheet and put these headers in row 1, in this exact order:

ColumnHeaderWhat belongs there
ADatePublish or production date: YYYY-MM-DD
BPlatformInstagram, TikTok, LinkedIn, YouTube, or Internal
CFormatReel, carousel, text, Short, production, or review
DTopicThe useful subject, not “tips”
EHookThe exact opening line
FStatusIdea, Needs Review, Approved, In Production, Scheduled, Published, or Rejected
GLinkReal URL after publication
HResultOne consistent observation after review

Select F2:F100, then use Data > Data validation > Add rule and add the seven statuses. Google also documents Insert > Dropdown. Check its current help page if your interface differs. Freeze row 1 and wrap text. Keep Link blank until a real URL exists. Choose one result format, such as 48h: saves __; replies __; 48 hours is your comparison rule, not a claim about platform distribution.

Place two queue counters above or beside the table. These formulas assume the 14-day plan occupies rows 2 to 15:

// apps script2 lines
=COUNTIF(F2:F15,"Published")
=COUNTIF(F2:F15,"Approved")+COUNTIF(F2:F15,"In Production")+COUNTIF(F2:F15,"Scheduled")

Label them Published count and Approved pipeline; they are not growth scores.

// concept

Make Approval a Human-Only Status

Every ChatGPT suggestion enters as Needs Review. Only a person changes it to Approved; that is the gate before filming or design begins.

Generate 20 candidates, then reject 6 to 10: a deliberate 30–50% curation pass for this exercise, not an industry benchmark. Reject a row when any answer is “no”:

  1. Does the idea directly serve the niche promise?
  2. Can you support any factual claim with information you already have or can verify?
  3. Is the hook meaningfully different from other hooks in these two weeks?
  4. Can you produce it with the available people, footage, and time?
  5. Does it avoid engagement bait, false urgency, and unproved results?
  6. Does its English, Urdu, or Roman Urdu fit the audience?

Keep weak rows as Rejected so next week’s prompt can avoid them. Move approved work through In Production and Scheduled; use Published only after checking the URL. ChatGPT never approves or reports results.

// concept

Batch Ideas with a Weekly ChatGPT Prompt

First write a niche promise naming the audience, problem, and help: “For busy Karachi office workers, show homemade lunch options, clear ordering steps, and preparation.” Never paste names, phone numbers, addresses, orders, CNIC data, or private messages into ChatGPT.

Use this weekly planning prompt and replace the bracketed fields:

// prompt — copy me27 lines
You are helping me propose candidates for a 14-day social content calendar.

NICHE PROMISE:
[one sentence naming the audience, problem, and useful content]

CONTENT PILLARS:
1. [pillar]
2. [pillar]
3. [pillar]

PRIMARY PLATFORM: [platform]
SECONDARY PLATFORM: [platform]
AVAILABLE ASSETS: [for example: phone camera, product photos, 2 hours on Sunday]
LANGUAGE MIX: [English / Urdu / Roman Urdu and where each is used]
RECENTLY COVERED: [topics or hooks not to repeat]
SEASONAL SLOT: [verified event/date, or "none"]

Generate 20 candidates. Return only:
ID | Platform | Format | Topic | Exact hook | Evidence or asset needed

Rules:
- Tie every candidate to the niche promise and one pillar.
- Do not invent trends, customer quotes, discounts, results, or event dates.
- Mark any claim that requires checking as VERIFY.
- Include four low-production ideas for a difficult week.
- Vary the hook mechanism; do not repeat the same numbered-list opening.
- These are proposals for human review, not approved posts.

Copy accepted candidates into Sheets, add dates, set Needs Review, and leave Link and Result blank. The workflow needs ordinary text output; check the current official page if your plan or interface differs.

On Android, make the Sheet available offline. Use one connected session to run the prompt and paste accepted rows; update hooks and statuses offline during load-shedding, then reconnect before sharing. Use split screen if available, or transfer accepted ideas from a plain-text note.

// worked_example

Worked Example

This hypothetical sample is for an unnamed Karachi home kitchen. Its promise is: “Help office workers choose lunch by showing the menu, ordering steps, and preparation without health claims.” Instagram is primary; TikTok receives selected videos.

The editor supplied:

// prompt — copy me5 lines
CONTENT PILLARS: menu clarity; ordering help; preparation process
AVAILABLE ASSETS: phone camera, menu cards, kitchen B-roll, 2 hours on Sunday
LANGUAGE MIX: simple English captions; natural Roman Urdu in spoken clips
RECENTLY COVERED: generic "Monday motivation" and discount posts
SEASONAL SLOT: none

Draft one included this candidate:

// prompt — copy me1 line
07 | Instagram | Reel | Healthy lunch | The healthiest lunch in Karachi is here | customer results

It failed: “healthiest” is unsupported, the topic is broad, and no customer results exist. The editor replaced it with a filmable detail:

// prompt — copy me1 line
07 | Instagram | Reel | How one lunch box is packed | Rice, curry, salad: here is how we keep each part separate | packing B-roll

After rejecting similar candidates, the editor built this 14-day sample. Internal rows protect production and review time.

DatePlatformFormatTopicHookStatusLinkResult
2026-08-03InstagramCarouselWeekly menuSample: “Five weekdays, one clear menu.”Approved
2026-08-04TikTokShortPackingSample: “See how each part stays separate.”In Production
2026-08-05InternalProductionFilm B-rollSample: “Capture hands, labels, lids; no faces.”Approved
2026-08-06InstagramReelOrderingSample: “Kal ka lunch chahiye? Process yeh hai.”Needs Review
2026-08-07InstagramStoryMenu questionSample: “Which detail should we explain?”Approved
2026-08-08InternalReviewCheck assetsSample: “Remove clips showing order slips.”Approved
2026-08-09TikTokShortPortion viewSample: “The box, viewed directly above.”Needs Review
2026-08-10InstagramCarouselFirst orderSample: “New here? Save these three steps.”Approved
2026-08-11InstagramReelLabel routineSample: “These labels get checked before packing.”Needs Review
2026-08-12InternalProductionMenu photosSample: “Shoot one menu and three close-ups.”Approved
2026-08-13TikTokShortPackingSample: “Packed in 20 seconds.”Rejected
2026-08-14InstagramCarouselDelivery areaSample: “Check your area before ordering.”Needs Review
2026-08-15InstagramStoryMenu choiceSample: “Daal or chicken: what should we explain?”Needs Review
2026-08-16InternalReviewRecord resultsSample: “Enter chosen metrics; leave gaps blank.”Approved

August 13 is Rejected: “20 seconds” could imply packing time, not video length. Replace it with “Watch one box go from empty to sealed” and return it to Needs Review.

// failure_cases

Failure Cases to Diagnose

7 cases to diagnose

  • Every row says `Idea`

    add the status dropdown and review before production.

  • The Sheet contains topics but no opening lines

    “menu,” “career advice,” or “new product” cannot be filmed as written. Require an exact hook in column E.

  • One hook shape repeats

    add it to RECENTLY COVERED and reject near-copies.

  • Pasted rows become `Approved`

    paste as Needs Review; a person checks evidence and capacity.

  • Links appear before publication

    placeholders can be mistaken for live proof. Keep column G blank until the post resolves publicly.

  • Results mix unlike measures

    choose one result format per platform; record N/A when unavailable.

  • Seasonal ideas use guessed dates

    remove the date and keep a Seasonal slot placeholder until an official calendar or announcement confirms timing.

// pakistan_angle

Pakistan Angle

Ramzan and Eid can change production capacity, but never ask ChatGPT to guess lunar dates. Add Ramzan week 1 or Eid ordering cutoff, then attach the date after the relevant Pakistan announcement and your business schedule are confirmed.

On unreliable mobile data, batch ChatGPT work once and use Sheets offline. Never paste WhatsApp exports, phone numbers, easypaisa or JazzCash receipts, CNIC images, or delivery addresses. Use a non-identifying order code only when necessary.

Plan Roman Urdu only where it fits, and read the hook aloud: Kal ka lunch chahiye? Process yeh hai. Treat times around load-shedding, Maghrib, or Isha as hypotheses to test in current account analytics, not universal rules.

// hands_on

Hands-On Exercise

7 steps

Build your own two-week calendar:

  1. Create the eight headers and seven-value status dropdown.

  2. Add both COUNTIF queue formulas.

  3. Write your niche promise, three pillars, platforms, assets, and language mix.

  4. Generate 20 candidates; use a verified seasonal slot or none.

  5. Reject 6–10 and paste survivors as Needs Review.

  6. Cover 14 dates, including production/review blocks; approve only feasible rows.

  7. Make the Sheet offline and change a status without a connection. Done means 14 dates are covered, every post has a hook, AI rows passed review, and links/results await real evidence.

// completion_rubric

Completion Rubric

6 checks — tick as you verify

0/6

// sources

Sources

// check_yourself

Check yourself

4 questions · answers and options are taken word-for-word from this course

0/4
  1. 1 / 4 · diagnose

    Your work shows this failure mode: “Every row says `Idea`.” What does the lesson tell you to do about it?