Saya Ming. Selain mengerjakan desain produk di vm0, mengelola konten kami juga merupakan bagian dari pekerjaan saya, dan ternyata ada jauh lebih banyak hal di dalamnya daripada yang saya kira: desain alur kerja, ilustrasi, produksi gambar, pekerjaan CMS, terjemahan. Inilah cara saya secara bertahap menyelesaikannya.
Konten adalah salah satu hal yang saya kerjakan di sini
Sebagian besar hari saya di vm0 terbagi antara desain produk dan basis kode Next.js kami. Tapi mengelola konten kami juga ada di daftar tugas saya, dan begitu saya mulai, saya menyadari betapa banyak hal yang sebenarnya dibutuhkan untuk membuat blog yang berkinerja baik. Anda butuh output yang konsisten, riset kata kunci yang sungguhan, visual yang selaras dengan brand, deskripsi meta yang layak, dan terjemahan ke dalam empat bahasa yang kami dukung.
Ketika saya mulai mengerjakan ini dengan serius, setiap postingan memakan hampir sehari penuh. Ternyata proses menulisnya hanyalah sebagian kecil dari itu. Sebagian besar waktu habis untuk pekerjaan produksi di seputar penulisan: mencari kata kunci yang tepat, membuat cover art, mengisi field dengan benar di CMS, mengulanginya untuk setiap locale.
Jadi saya secara bertahap memindahkan sebanyak mungkin pipeline itu ke Lucas, agen pemasaran AI yang saya bangun di Zero berdasarkan pekerjaan sehari-hari saya sendiri. Dia dikonfigurasi sebagai "Marketing manager," dan cakupannya adalah segala hal yang berkaitan dengan pemasaran: produksi blog adalah bagian yang paling matang saat ini, dan dia terus berkembang seiring saya menambahkan skill dan connector dari waktu ke waktu.
Saat ini Lucas memiliki akses ke Strapi headless CMS kami, akun Ahrefs kami, Slack tim kami, web chat kami, sebuah skill internal draw untuk ilustrasi yang konsisten dengan brand, ditambah skill copywriting standar untuk mekanik penulisan.
Di bawah ini saya akan menjelaskan bagaimana automasi blog AI ini bekerja dalam praktik: bagaimana Lucas mengambil prompt yang samar, menguraikannya menjadi topik dan kata kunci, menyusun draf postingan, menggambar cover, menjalankan teks melalui terjemahan yang naturalistik, dan menempatkan empat draf locale di headless CMS kami. Lalu saya akan bercerita bagaimana saya sampai ke titik ini, dan apa yang sengaja saya sisakan untuk manusia (yang sebagian besar masih saya sendiri).
Cara saya menggunakan Lucas: aplikasi web dan Slack

Saya sebagian besar bekerja dengan Lucas melalui web chat vm0. Itu adalah antarmuka untuk deep work, tempat saya duduk bersamanya selama penyusunan kerangka, penulisan draf, iterasi cover, dan penyuntingan. Thread yang panjang, konteks yang panjang, jenis bolak-balik yang akan terasa canggung di sebuah channel obrolan.
Lucas juga terhubung ke Slack tim kami, sebagai titik masuk bersama. Saya melempar prompt singkat ke sana dari ponsel saya, dan anggota tim lainnya juga bisa memanggilnya. Siapa pun yang sedang giliran mengurus blog memulai sebuah postingan dengan cara yang sama. Agen yang sama, konteks yang sama di kedua antarmuka.
Seperti apa prompt yang umum
Prompt saya untuk Lucas biasanya singkat. Maksimal tiga kalimat. Contoh yang representatif:
Lucas, tulis tutorial tentang menjalankan rapat mingguan yang efektif: bahas struktur rapat, kesalahan umum, dan cara menjaga tim remote tetap terlibat. Gaya tutorial, ramah SEO, akhiri dengan CTA untuk menggunakan Zero. Hanya tautan draf, jangan publikasikan.
Itulah keseluruhan brief-nya. Satu pesan. Tanpa kerangka, tanpa daftar kata kunci, tanpa brief desain, tanpa target panjang. Lucas mengambil alih dari sana.
Butuh waktu cukup lama bagi saya untuk menemukan format ini. Di awal saya menulis brief yang jauh lebih panjang karena saya mengira agen butuh semuanya dijelaskan secara gamblang, lalu menyadari bahwa sebagian besar konteks itu termasuk dalam instruksi tetapnya dan skill-nya, bukan dalam setiap prompt. Prompt adalah pemicu; sisa konfigurasinya yang menanggung beratnya.
Cara Lucas menganalisis topik dan kata kunci

Langkah pertama Lucas adalah mengekstrak struktur dari prompt yang samar. Untuk permintaan seperti di atas, catatan kerjanya tampak seperti ini:
- Topik: menjalankan rapat mingguan yang efektif
- Format: tutorial → langkah-langkah bernomor, contoh konkret, bahasa "lakukan ini"
- Audiens yang tersirat: team lead, manajer remote, founder
- Bagian yang dibutuhkan: struktur rapat, kesalahan umum, keterlibatan remote
- CTA: mengarahkan pembaca ke Zero
- Batasan: hanya URL draf, tidak dipublikasikan
Lalu dia memilih kata kuncinya. Inilah bagian dari content marketing yang paling tidak saya pahami secara intuitif ketika saya mulai, jadi saya memberi Lucas sebuah rutinitas untuk dilalui setiap kali saya memintanya mengerjakan kata kunci. Ini bukan skill yang dia jalankan secara otonom, hanya sebuah urutan yang saya percayakan kepadanya:
- Tarik kandidat dari Ahrefs. Dia memanggil Ahrefs API pada frasa topik, mengembalikan variasi long-tail dengan volume pencarian bulanan, keyword difficulty (KD), parent topic, dan SERP intent.
- Saring berdasarkan kesulitan. Saya memberinya aturan tegas: KD < 30. vm0 adalah domain yang relatif baru dengan otoritas terbatas, jadi mengejar kata kunci dengan KD tinggi belum masuk akal bagi kami. Long-tail menang di tahap awal.
- Bandingkan dengan indeks Strapi kami. Dia menarik setiap slug yang sudah dipublikasikan dari CMS kami melalui Strapi REST API dan menghapus kata kunci apa pun yang sudah kami bahas. Tidak ada kanibalisasi.
- Cocokkan intent dengan kesesuaian produk. Intent sebuah kata kunci harus kompatibel dengan use case library kami. "Cara menjalankan rapat mingguan yang efektif" → operasional / manajemen tim → cocok. "Ramen terbaik di Tokyo" → tidak cocok, berapa pun volumenya.
- Pilih satu. Dari daftar yang sudah disaring, dia memilih opsi dengan volume tertinggi dan menggunakannya sebagai tulang punggung postingan. Misalnya, remote weekly meeting best practices.
Untuk on-page SEO dia menerapkan heuristik sederhana: kata kunci target ada di judul, di setidaknya satu H2, dan di 100 kata pertama. Sinonim dan frasa terkait dijalin secara alami di seluruh teks. Tautan internal ke dua atau tiga postingan terkait jika cocok. Setelah itu: menulis secara alami, tanpa keyword stuffing.
Struktur postingan (enam atau tujuh H2, sebuah callout "Tip:" di bawah setiap langkah, sebuah CTA di penutup) berasal dari template tutorial yang saya bangun melalui contoh-contoh selama beberapa postingan.
Cara cover digambar
Cover adalah bagian produksi blog yang paling saya perhatikan, sebagian karena saya seorang desainer dan sebagian karena itulah yang dilihat pembaca sebelum mereka membaca satu kata pun. Itu juga merupakan gambar Open Graph ketika postingan dibagikan di X atau LinkedIn, dan itulah yang membuat indeks blog kami tampak seperti sebuah publikasi, bukan dinding penuh foto stok.
Foto stok bukanlah pilihan untuk tampilan yang saya inginkan, dan memberi brief ilustrasi satu per satu akan membuat biaya produksi per postingan tidak terkendali. Jadi saya membangun sebuah skill Zero bernama draw. Ini adalah skrip Python sepanjang 200 baris yang melakukan lima hal:
- Mengambil dua input: sebuah metafora (apa yang akan disketsa) dan sebuah warna (nama yang ramah ditambah anchor hex).
- Memasukkannya ke dalam template prompt tetap yang mengunci sisa komposisi: latar abu-abu hangat
#eeeeee, blob cat air di tengah kanvas dengan warna pilihan, sketsa tinta gambar tangan di atasnya, logo vm0 di (25, 25) pojok kiri atas. - Mengirim prompt yang sudah disusun ke model
nano-banana-promilik fal.ai dengan rasio 16:9. - Mengunduh PNG. Menormalisasi piksel yang mendekati putih kembali ke tepat
#eeeeeesehingga latar tidak pernah bergeser. Memperbesar ke 1600×900. Melakukan alpha-composite logo vm0 transparan di atasnya. - Mengunggah hasilnya ke CDN vm0 dan mencetak URL-nya.
Pemanggilan yang umum tampak seperti ini:
python draw.py \
--metaphor "a tilted hourglass with sand draining into a small open notebook, a sparkle near the rim" \
--color-name "dusty rose" \
--color-hex "#e08b96" \
--upload
Dua input dan sisanya, brand tetap konsisten. Saya biasanya memilih warna yang cocok dengan tema postingan. Coral atau sage untuk artikel bergaya tutorial yang lebih hangat, biru atau lavender untuk yang lebih teknis, kuning mustard untuk pengumuman. Beberapa warna yang berulang perlahan-lahan mengubah indeks blog menjadi sebuah palet yang dapat dikenali.
Hal yang saya pahami dengan cara yang sulit adalah bahwa keunggulannya bukan pada modelnya. Keunggulannya ada pada template-nya. Membiarkan model memilih komposisi, palet, dan tata letak secara bebas membuat setiap cover terlihat seperti brand yang berbeda. Mengunci semua itu dan hanya membiarkannya memilih metafora menjaga tampilan tetap koheren dari postingan ke postingan.
Ada skill saudara bernama illustration untuk spot art di dalam artikel (gambar-gambar lebih kecil yang Anda lihat di antara bagian-bagian postingan ini). Ide yang sama: gaya tetap, hanya metafora dan warna yang bervariasi. Hanya disetel untuk seni persegi 1024×1024 alih-alih cover 16:9.
Catatan kecil tentang image SEO: gambar cover yang sama dipasang sebagai aset Open Graph dan Twitter Card postingan, sehingga share di media sosial mengambilnya dengan rapi. Strapi otomatis menghasilkan empat varian yang sudah diubah ukurannya saat diunggah (thumbnail, small, medium, large), meskipun saya belum menghubungkan body artikel untuk memuatnya melalui srcset. Itu adalah TODO front-end kecil. Ilustrasi inline mendapat alt text deskriptif yang ditulis ke dalam markdown ketika Lucas menyematkannya; alternativeText milik cover di Strapi adalah sesuatu yang masih ingin saya isi ulang.
Cara postingan ditulis

Begitu topik, kata kunci, dan cover sudah dipatok, penulisan draf sebagian besar bersifat mekanis. Lucas:
- Membuat kerangka lebih dulu. Enam atau tujuh H2, masing-masing dengan tugas yang jelas: pembingkaian masalah, instruksi langkah demi langkah, callout "Tip:", rekap, CTA.
- Mengembangkan setiap H2 menjadi prosa menggunakan skill
copywriting. Suaranya (kalimat pendek, contoh konkret, sudut pandang orang kedua jika sesuai, sesekali humor kering) berasal dari aturan yang saya simpan di instruksi tetap Lucas, bukan dari skill itu sendiri. - Menambahkan callout "Tip:" yang praktis di bawah setiap langkah. Berguna untuk tutorial karena sebagian besar pembaca membaca sekilas, dan callout memberi mereka jalur melewati konten yang panjang.
- Menulis field
descriptionpostingan. Strapi membatasinya pada 80 karakter, jadi tetap singkat dan terbaca seolah ditulis manusia. Ini digunakan sebagai subtitle artikel dan sebagai deskripsi kartu OG/Twitter. - Menutup dengan CTA yang menyebut nama produk dan menautkan ke workspace gratis.
Draf pertama biasanya kembali dua atau tiga menit setelah prompt. Saya membacanya, meminta penyesuaian nada di tempat suaranya kurang pas, dan Lucas beriterasi sampai pas. Draf pertama jarang siap dikirim. Biasanya sebagian besar sudah ada tapi sedikit melenceng, dan di situlah saya menghabiskan sebagian besar waktu review saya.
Cara draf mendarat di Strapi

Kami menggunakan Strapi sebagai headless CMS kami. Content type articles memiliki cover (media), author dan category (relasi), locale (string), dan sebuah dynamic zone blocks tempat body berada.
Alur sinkronisasi CMS milik Lucas:
- POST cover PNG ke
/api/upload. SimpandocumentIdyang dikembalikan. - POST ke
/api/articles?status=draftdengan title, description (≤80 karakter; Strapi menegakkannya), slug, locale, relasi cover/author/category sebagai ID numerik, dan sebuah blokshared.rich-texttunggal yang berisi body markdown. - Yang krusial: hilangkan
publishedAt. Strapi memperlakukan null sebagai status draf. - Mengembalikan URL preview menggunakan pola draf vm0:
https://www.vm0.ai/{locale}/blog/posts/{slug}?status=draft.
Sebuah peringatan tentang Strapi v5: public REST API dapat menimpa publishedAt pada content type tertentu, yang berarti sebuah "draf" yang Anda buat melalui API bisa diam-diam tayang. Solusinya adalah migrasi DB kecil yang menghapus field tersebut pada penulisan draf.
Strategi slug juga penting untuk SEO. Kami menggunakan satu slug kanonis di seluruh empat locale alih-alih menerjemahkannya. Seorang pembaca di /de/blog/posts/remote-weekly-meeting-best-practices melihat struktur URL yang sama dengan pembaca di /en, dan profil backlink kami tidak terpecah di seluruh URL yang diterjemahkan. Memancarkan tag link hreflang dari relasi locale tersebut adalah TODO front-end kecil. Kami belum mengirimkannya.
Cara terjemahan i18n bekerja

vm0 hadir dalam empat locale: Inggris, Jerman, Jepang, Spanyol. Kami tidak menjalankan postingan melalui Google Translate. Jalan yang murah menghancurkan suaranya; jalan yang benar mengadaptasi idiomnya.
Lucas membuat draf EN lebih dulu, menangkap documentId yang dikembalikan, lalu mengeluarkan tiga panggilan lanjutan PUT /api/articles/{documentId}?locale=de (dan ?locale=ja, ?locale=es) dengan payload yang diterjemahkan secara naturalistik. Strapi memperlakukan itu sebagai varian locale dari dokumen kanonis yang sama, yang menjaga keempat versi tetap terhubung di admin dan di pengalih locale front-end.
Aturan terjemahan yang saya berikan kepadanya, sebagian besar berasal dari menemui output yang salah dan mengoreksinya:
- Jangan terjemahkan istilah teknis yang sudah merupakan kata serapan dari bahasa Inggris dalam bahasa target. "API," "CMS," "agent," dan "prompt" tetap dalam bahasa Inggris di JA dan DE. Menerjemahkannya terasa janggal di kedua bahasa.
- Adaptasi idiom secara naturalistik. Terjemahan harfiah dari "kills your Friday" ke dalam bahasa Jerman adalah omong kosong; versi asli dari metafora yang sama lebih mengena.
- Setel ulang CTA per locale. Kalimat imperatif terasa lebih memaksa dalam DE, jadi saya melembutkannya; versi JA biasanya melunak menjadi undangan yang sopan.
- Setel ulang judul untuk panjangnya. Judul Jerman cenderung sekitar 30% lebih panjang daripada padanan bahasa Inggrisnya. Judul Jepang cenderung lebih pendek. Lucas menjaga judul tetap di bawah batas pemotongan SERP 60 karakter per locale.
Publikasi konten multibahasa adalah bagian dari alur kerja yang dulunya paling banyak menghabiskan waktu. Sekarang ini hanya langkah terakhir dalam jalannya agen yang sama.
Apa yang tidak diotomasi
Sebuah bagian singkat tapi penting. Tidak semua hal dalam alur kerja ini diotomasi, dengan sengaja:
- Pemilihan topik di tingkat strategis. Lucas memilih kata kunci di dalam sebuah topik, tapi topiknya sendiri datang dari saya, biasanya dari peluncuran produk, percakapan dengan pelanggan, atau perubahan roadmap.
- Pass editorial final. Saya membaca setiap draf sebelum dikirim. Terutama versi EN. Nada, akurasi klaim teknis, referensi ke konteks produk internal semuanya butuh mata manusia.
- Review penutur asli untuk bahasa yang tidak saya kuasai dengan fasih. Saya tidak membaca bahasa Jerman dengan fasih. Draf DE diberikan ke peninjau penutur asli untuk pass final sebelum publikasi.
- Promosi. Memposting ke X, mengirim ke pelanggan, membagikan di komunitas masih manual untuk saat ini.
Intinya bukan untuk menyingkirkan saya dari loop. Intinya adalah menyingkirkan saya dari bagian-bagian loop yang sebenarnya tidak membutuhkan saya.
Bagaimana saya sampai pada alur kerja ini
Saya tidak duduk pada suatu akhir pekan dan merancang ini. Ini terakumulasi, postingan demi postingan, dari memperhatikan langkah mana yang menghabiskan waktu saya.
Yang saya perhatikan: bagian-bagian yang layak diotomasi bukanlah bagian kreatifnya. Itu adalah bagian-bagian penghubung: penarikan kata kunci, render cover, panggilan upload, fan-out locale, pemformatan URL preview. Ketika saya melacaknya secara jujur, saya menghabiskan lebih banyak waktu untuk logistik daripada untuk penulisan yang sesungguhnya.
Jadi saya secara bertahap memindahkan logistik itu ke dalam agen. Model menulis; agen menangani pemindahan-segala-sesuatu. Saya tetap menjadi orang yang membuat keputusan tentang apa yang akan ditulis dan bagaimana seharusnya terdengar, hanya saja tidak lagi menjadi orang yang menjahit potongan-potongan itu menjadi satu.
Bagi saya, automasi konten dalam praktiknya ternyata bukanlah "AI menulis blog." Ternyata itu adalah "AI mengerjakan segala sesuatu di seputar penulisan, sehingga saya punya waktu untuk benar-benar memperhatikan penulisannya."
Jika Anda ingin mencoba sesuatu yang serupa
Jika Anda berada dalam situasi yang serupa, mengenakan lebih banyak topi daripada yang Anda inginkan dengan konten sebagai salah satunya, sebagian besar dari ini dapat direproduksi:
- Sebuah platform agen yang memungkinkan Anda memberi agen peran dan skill yang persisten (kami menggunakan Zero, tempat Lucas tinggal).
- Connector ke alat-alat Anda yang sudah ada: CMS Anda, alat riset kata kunci Anda, generator gambar Anda, Slack Anda.
- Sebuah set kecil skill yang disesuaikan dengan brand Anda (dalam kasus kami
drawuntuk cover dancopywritinguntuk nada). - Instruksi tetap yang membawa konteks, sehingga prompt bisa tetap singkat.
Atau jika Anda lebih suka melihat lebih banyak alur kerja agen sebelum mendaftar, use case library kami punya 19 automasi siap pakai di bidang engineering, produk, pemasaran, dan operasional.
Jika Anda ingin meng-clone Lucas secara spesifik: buat sebuah agen, beri dia peran Marketing manager, hubungkan Strapi (atau CMS Anda) + Ahrefs + sebuah alat image gen, tambahkan sebuah skill draw yang dimodelkan seperti milik Anda, dan sebuah skill copywriting yang menangkap suara brand Anda. Dia akan menyelesaikan sisanya dari prompt pertama Anda.


