X Autoposting Bot — Manual Workflow Automation

Bot otomasi posting X (Twitter) yang dibangun dari nol tanpa platform middleware, sebagai latihan membangun workflow automation end-to-end.

Role
Automation Engineer
Ownership
Solo builder end-to-end: arsitektur, prompt engineering, deployment, monitoring
Company
Personal Project
Team
Solo
Period
Apr 2026 - sekarang
Focus
Backend, Backend Developer, AI Automation

Overview

Project latihan untuk memahami cara kerja automated content pipeline dari riset trending, generate konten via LLM, sampai posting ke X API. Dibangun tanpa framework middleware seperti OpenClaw — semua orchestration ditulis manual di Python dengan scheduler, retry logic, dan Telegram alerting. Bot berjalan di VPS IDCloudHost dan dikelola via PM2.

Tech & Libraries

Teknologi dan library yang dipakai atau disentuh di project ini:

PythonClaude CLI (Anthropic)Tweepy (X/Twitter API v2)schedule (Python scheduler)BeautifulSoup4DuckDuckGo SearchPM2 (process manager)Telegram Bot APIrsyncVPS IDCloudHostJSON file-based state

Problem

Ingin memahami secara mendalam bagaimana workflow automation bekerja: dari scheduling, API integration, content generation via LLM, sampai deployment di VPS. Kebanyakan developer langsung pakai platform jadi tanpa memahami mekanisme di baliknya. Project ini sengaja dibangun manual supaya paham setiap layer: scheduler, retry, rate limit, prompt engineering, dan monitoring.

My Role & Ownership

Solo builder end-to-end: arsitektur, prompt engineering, deployment, monitoring

Technical Approach

Membangun Python scheduler (library schedule) yang mengorkestrasi 3 posting terjadwal per hari plus 12 posting spontan per minggu yang didistribusikan acak. Konten di-generate via Claude CLI dengan prompt engineering berlapis: persona, mode konten (9 variasi), dan universal output rules.

Riset trending diambil dari Google News lalu di-scoring berdasarkan neuroscience hook (Amygdala, Loss Aversion, RAS Specificity, Curiosity Gap). Posting ke X via Tweepy API v2.

Sistem juga menjalankan A/B testing antara model Original (prompt terstruktur 9 mode) dan model Challenger (prompt copywriter bebas) untuk membandingkan engagement. Laporan harian dan breakdown A/B dikirim otomatis ke Telegram.

Architecture Notes

Arsitektur sistem dibagi menjadi 3 layer:

  1. Orchestration layer: worker.py sebagai scheduler utama yang mengatur jadwal tetap dan spontan, guard anti-duplikat, dan jeda acak supaya posting tidak prediktif.
  2. Skills layer: modul terpisah untuk riset (Google News + hook scoring), tweet writing (prompt + validation + retry), artikel thread, dan SEO page builder.
  3. Integration layer: core modules untuk Twitter API (Tweepy), Telegram alerting, logging, dan deployment script (rsync ke VPS).

Trade-offs

Keputusan teknis yang sengaja diambil:

  1. Pakai Claude CLI langsung via subprocess, bukan SDK — lebih simpel untuk single-call pattern dan tidak perlu manage session. Trade-off: tidak bisa streaming, tapi untuk tweet generation tidak perlu.
  2. Scheduling pakai library schedule (Python) bukan cron — supaya guard logic (anti-duplikat, kuota mingguan) bisa hidup di memory yang sama dengan scheduler.
  3. Tidak pakai database — state disimpan di JSON files (daily_log, kuota_spontan). Cukup untuk skala bot personal, dan deployment jadi lebih ringan.
  4. A/B testing dilakukan dengan memisahkan prompt model, bukan memisahkan akun. Satu persona, dua cara nulis — hasilnya bisa dibandingkan di feed yang sama.

Implementation Highlights

  • Neuroscience-based hook scoring (Amygdala, Loss Aversion, RAS, Curiosity Gap, Practical Value) untuk ranking trending news
  • A/B testing dua model prompt (Original 9-mode vs Challenger copywriter) dalam satu persona
  • Guard system anti-duplikat posting spontan yang survive restart
  • Prompt trimming untuk optimasi token: strip whitespace, BOM, dan multi-newline sebelum kirim ke Claude
  • Tweet validation guardian yang menolak output meta Claude (balik nanya/klarifikasi) dengan auto-retry 3x

Results

  • Latihan membangun automated content pipeline dari nol — memahami setiap layer tanpa bergantung platform middleware.
  • Bot berjalan stabil di VPS tanpa intervensi manual selama berminggu-minggu
  • Memahami end-to-end workflow automation: scheduling, LLM integration, API posting, monitoring
  • A/B testing model prompt menghasilkan data perbandingan engagement yang actionable
  • Telegram alerting memastikan awareness tanpa harus SSH ke server
  • 3 posting terjadwal + 1-2 spontan per hari berjalan konsisten
  • 9 mode konten yang dirotasi mingguan via WEEKLY_MODE_MATRIX
  • Bot uptime stabil di VPS tanpa crash selama operasi normal

Links