DEV Community

Cover image for Our app runs its own Instagram accounts: how the autopilot works, and week 1's real numbers
Mattia Maggioni
Mattia Maggioni

Posted on Edited on Fully Autonomous

Our app runs its own Instagram accounts: how the autopilot works, and week 1's real numbers

I'm building an app that creates, edits and posts short videos on its own. To test it in public, it runs two Instagram accounts by itself: one in English since October 21 and one in Italian since October 22. Nobody edits the videos; when something comes out wrong we fix the app. Here's how the autopilot works, and what week 1 looked like.

How the autopilot works

1. A plan per calendar week. Every Monday, in the audience's time zone, a worker plans Monday to Sunday: the slots (at the audience's best times, up to 2 a day), a role for each slot (core format, sales or test, with fixed shares counted over the last 4 weeks), the format for each slot, a hook and an ending, and an idea. Switch it on mid-week and the first plan only runs to Sunday, so the next one starts with a full week of data.

2. Formats are picked with Thompson sampling. For each core slot it draws a random number around each format's score, wider when the format has little data, and the highest wins. No format gets more than 60% of the core slots over 4 weeks. In week 1 there's no data, so every format is equal and the plan is mostly tests.

3. Videos are made about 30 hours before their slot. A Postgres cron job (pg_cron) checks every 10 minutes for approved slots going out within 30 hours and queues the video.

4. Making one video. A small language model writes the script, then fills a JSON scene file that follows the style's schema. The model never writes code. A fact-check pass reads the script first. A text-to-speech voice reads the lines and returns word timings, which set each scene's length and the captions. Remotion renders 1080×1920 at 30 fps inside a container that only runs when there's work. The language-model parts are cheap: title and caption about 0.1 cents per video, the fact-check about 1 cent.

5. Learning at day 7. Each video gets a score from reach, watch time and actions. Each number is divided by the median of the account's recent mature videos on the same network, in log scale, so a 300-view account and a 300,000-view account both have a "×1". Small numbers are smoothed toward the account's usual. Hits count at most ×3 and flops at least ×0.33 for their format. It needs at least 5 scored videos before it learns anything.

Week 1: the cold start, in numbers

Read on Monday, October 26. Only videos made by HypeFox; one demo video we posted ourselves on each account is left out.

English account (Oct 21–25) Italian account (Oct 22–25)
Videos posted 9 7
Views 1,074 (49–175 per video) 1,019 (120–232)
Swiped away in the first 3 s (avg) 57% 58%
Avg watch time 6.1 s of ~34 s 6.3 s of ~36 s
Likes / saves / comments / shares 3 / 4 / 2 / 0 4 / 1 / 0 / 0
Followers 2 → 5 1 → 4
Signups from the account 0 0

Point 5 is why week 1 can't be smart: no video is 7 days old yet, so there's nothing to learn from. The Monday report says it plainly: "no numbers yet". The first videos turn 7 days old on Wednesday, and next Monday's plan will be the first one built on the account's own numbers.

What surprised me

  • The best English video, made by the AI, was titled "An AI tool can't run your account by itself" (175 views, 44% swiped away, the best hold on that account).
  • The polished demo we made ourselves was the most skipped video of the week: 99% swiped away in 3 seconds on the English account. The AI's plain explainers kept about 43 out of 100 viewers past 3 seconds.
  • The two sales videos ("DM me PLAN") held worse than average and nobody sent the word.
  • 14 of 16 videos landed between 116 and 232 views: a new account's test audience, and nothing broke out yet.

What we changed (the app, never a video)

We rebuilt the main style on day 1 (drawn places, moving icons, a moving camera), added background music, and picked new script instructions with blind tests judged by models that didn't know which version they were reading.

Next

Week 2 is running: 14 videos per account, still without lessons. I'll post the numbers every Monday, including the first week the learning loop actually kicks in.

Top comments (0)