From d24433ce77d3db407a74f97578e475b87611cd4b Mon Sep 17 00:00:00 2001 From: igor vepretski <149789877+vepretski@users.noreply.github.com> Date: Fri, 5 Jun 2026 01:54:08 +0300 Subject: [PATCH] Improve 7ya platform sync content reach --- .../personal-brand-booster-yb-2026/README.md | 2 +- .../personal-brand-booster-yb-2026/brief.json | 4 +- .../campaign-plan.json | 82 ++++++- .../daily-posting-plan.md | 14 +- .../en-blog-draft.md | 3 + .../en-facebook-post.md | 23 ++ .../en-instagram-caption.md | 3 + .../en-linkedin-post.md | 3 + .../en-newsletter-summary.md | 3 + .../en-telegram-broadcast.md | 23 ++ .../en-threads-post.md | 23 ++ .../en-tiktok-shorts-script.md | 7 +- .../en-viber-message.md | 23 ++ .../en-whatsapp-broadcast.md | 23 ++ .../en-x-post.md | 3 + .../en-youtube-shorts-script.md | 23 ++ .../he-blog-draft.md | 3 + .../he-facebook-post.md | 23 ++ .../he-instagram-caption.md | 3 + .../he-linkedin-post.md | 3 + .../he-newsletter-summary.md | 3 + .../he-telegram-broadcast.md | 23 ++ .../he-threads-post.md | 23 ++ .../he-tiktok-shorts-script.md | 7 +- .../he-viber-message.md | 23 ++ .../he-whatsapp-broadcast.md | 23 ++ .../he-x-post.md | 3 + .../he-youtube-shorts-script.md | 23 ++ .../platform-sync-playbook.md | 73 ++++++ .../repurposing-map.md | 10 +- .../validation.json | 228 ++++++++++++++++++ script/personal-brand-booster.ts | 159 ++++++++++-- 32 files changed, 854 insertions(+), 38 deletions(-) create mode 100644 outputs/personal-brand-booster-yb-2026/en-facebook-post.md create mode 100644 outputs/personal-brand-booster-yb-2026/en-telegram-broadcast.md create mode 100644 outputs/personal-brand-booster-yb-2026/en-threads-post.md create mode 100644 outputs/personal-brand-booster-yb-2026/en-viber-message.md create mode 100644 outputs/personal-brand-booster-yb-2026/en-whatsapp-broadcast.md create mode 100644 outputs/personal-brand-booster-yb-2026/en-youtube-shorts-script.md create mode 100644 outputs/personal-brand-booster-yb-2026/he-facebook-post.md create mode 100644 outputs/personal-brand-booster-yb-2026/he-telegram-broadcast.md create mode 100644 outputs/personal-brand-booster-yb-2026/he-threads-post.md create mode 100644 outputs/personal-brand-booster-yb-2026/he-viber-message.md create mode 100644 outputs/personal-brand-booster-yb-2026/he-whatsapp-broadcast.md create mode 100644 outputs/personal-brand-booster-yb-2026/he-youtube-shorts-script.md create mode 100644 outputs/personal-brand-booster-yb-2026/platform-sync-playbook.md diff --git a/outputs/personal-brand-booster-yb-2026/README.md b/outputs/personal-brand-booster-yb-2026/README.md index f3d93cd4e7ca..2fa858a7a918 100644 --- a/outputs/personal-brand-booster-yb-2026/README.md +++ b/outputs/personal-brand-booster-yb-2026/README.md @@ -4,4 +4,4 @@ Generated with: `bun run personal-brand:boost --source ./input/igor-vepretski-yisrael-beiteinu-campaign.md --lang both --out ./outputs/personal-brand-booster-yb-2026` -Contains brief, campaign plan, bilingual channel markdown assets, posting plan, hook bank, CTA bank, repurposing map, and validation report. +Contains brief, campaign plan, bilingual channel markdown assets, posting plan, platform sync playbook, hook bank, CTA bank, repurposing map, and validation report. diff --git a/outputs/personal-brand-booster-yb-2026/brief.json b/outputs/personal-brand-booster-yb-2026/brief.json index 892c0b677fe7..468618bc4529 100644 --- a/outputs/personal-brand-booster-yb-2026/brief.json +++ b/outputs/personal-brand-booster-yb-2026/brief.json @@ -8,8 +8,8 @@ "Security posture: compartmentalized access, anti-disinformation workflows, OPSEC playbooks.", "Conversion spine: canonical campaign pages on https://7ya.io with UTM discipline." ], - "personal_brand_angle": "Igor Vepretski uses one core idea to produce bilingual, high-frequency authority content without spam.", - "audience": "Founders, operators, creators, and growth teams that want practical personal-brand systems.", + "personal_brand_angle": "Igor Vepretski uses one Israeli civic leadership idea to produce bilingual, high-frequency authority content without spam.", + "audience": "Israeli voters, young civic leaders, Russian-speaking community members, local operators, journalists, volunteers, and supporters who need practical updates they can share.", "proof_points": [], "reusable_hooks": [ "1. Source Brief: Strategic Architecture and Digital Marketing Deployment for Igor Vepretski: Yisrael Beiteinu Campaign Synthesis (contrarian hook)", diff --git a/outputs/personal-brand-booster-yb-2026/campaign-plan.json b/outputs/personal-brand-booster-yb-2026/campaign-plan.json index 27ae14ed8fd5..3c350bd4258b 100644 --- a/outputs/personal-brand-booster-yb-2026/campaign-plan.json +++ b/outputs/personal-brand-booster-yb-2026/campaign-plan.json @@ -1,5 +1,5 @@ { - "objective": "Turn one source item into an aggressive but non-spammy 7-day bilingual promotion package.", + "objective": "Turn one source item into a synchronized, non-spammy 7-day Israeli influencer promotion package that reaches every active 7ya.io platform.", "languages": [ "en", "he" @@ -8,14 +8,86 @@ "X / Twitter", "LinkedIn", "Instagram", - "TikTok / Shorts", + "TikTok", + "YouTube Shorts", + "Facebook", + "Threads", + "Telegram", + "WhatsApp Broadcast", + "Viber", "Newsletter", "Blog draft" ], + "sync_strategy": [ + { + "channel": "X / Twitter", + "role": "Fast public narrative, quote-card threads, and rapid response", + "reach_action": "Post the sharpest claim first, reply to 5 Israeli civic/media accounts, then pin the 7ya.io CTA for 24 hours." + }, + { + "channel": "LinkedIn", + "role": "Credibility layer for operators, civic leaders, donors, and professional allies", + "reach_action": "Publish a calmer proof-led version and tag partners only when they are directly relevant." + }, + { + "channel": "Instagram", + "role": "Visual trust, Reels captions, carousel proof, and Stories reminders", + "reach_action": "Turn the thesis into a 5-slide carousel, add Hebrew-first Stories, and use the CTA sticker to route to 7ya.io." + }, + { + "channel": "TikTok", + "role": "Youth reach, direct-to-camera field clips, and emotional hooks", + "reach_action": "Open with a 2-second Israeli street-level problem, keep one idea per video, and ask viewers to save/share." + }, + { + "channel": "YouTube Shorts", + "role": "Searchable short video archive and cross-post home for vertical clips", + "reach_action": "Reuse the TikTok cut with a clearer title, burned-in Hebrew captions, and a pinned 7ya.io comment." + }, + { + "channel": "Facebook", + "role": "Local community groups, older audiences, and Russian/Hebrew civic discussion", + "reach_action": "Post the practical community angle, ask one question, and avoid over-posting into groups without context." + }, + { + "channel": "Threads", + "role": "Lightweight conversation bridge between Instagram audience and public text updates", + "reach_action": "Publish a concise 3-part thought chain and manually answer early comments in the first hour." + }, + { + "channel": "Telegram", + "role": "Primary broadcast layer for supporters, volunteers, and high-signal updates", + "reach_action": "Send the cleanest summary, one action, one link, and forward the follow-up only after meaningful engagement." + }, + { + "channel": "WhatsApp Broadcast", + "role": "Low-noise direct distribution to trusted lists and local coordinators", + "reach_action": "Send one compact message with a clear forward instruction and no more than one CTA link." + }, + { + "channel": "Viber", + "role": "Legacy community reach for Russian-speaking and older supporter clusters", + "reach_action": "Mirror the WhatsApp version, emphasize local usefulness, and keep the tone personal rather than campaign-like." + }, + { + "channel": "Newsletter", + "role": "Owned audience memory, weekly synthesis, and conversion recap", + "reach_action": "Bundle the best public reactions, proof points, and one primary 7ya.io action." + }, + { + "channel": "Blog draft", + "role": "Canonical SEO and long-form source of truth on 7ya.io", + "reach_action": "Publish the complete argument with UTM-ready links to every social derivative." + } + ], "cadence": [ - "Day 1: publish anchor insight", - "Day 2-6: distribute platform derivatives", - "Day 7: recap + strongest CTA replay" + "Day 1: publish the 7ya.io blog anchor, EN/HE X, LinkedIn, Instagram carousel, and Telegram summary", + "Day 2: release TikTok + YouTube Shorts from the same vertical cut and repost as Instagram Reel", + "Day 3: send WhatsApp/Viber compact forward message and answer high-signal comments", + "Day 4: publish Facebook + Threads conversation prompts with proof-first framing", + "Day 5: remix strongest comment into short video and X/Threads follow-up", + "Day 6: newsletter recap with best public reactions and one concrete 7ya.io action", + "Day 7: bilingual recap, strongest hook replay, CTA push, and metrics review" ], "cta_policy": { "phrase": "Manage 7ya.io", diff --git a/outputs/personal-brand-booster-yb-2026/daily-posting-plan.md b/outputs/personal-brand-booster-yb-2026/daily-posting-plan.md index 62d6d346ab0d..7f493654954c 100644 --- a/outputs/personal-brand-booster-yb-2026/daily-posting-plan.md +++ b/outputs/personal-brand-booster-yb-2026/daily-posting-plan.md @@ -1,12 +1,12 @@ # 7-Day Posting Plan -- Day 1: EN X + EN LinkedIn + EN Instagram -- Day 2: EN TikTok/Shorts + EN Newsletter -- Day 3: EN Blog draft + EN X remix -- Day 4: HE X + HE LinkedIn + HE Instagram -- Day 5: HE TikTok/Shorts + HE Newsletter -- Day 6: HE Blog draft + HE X remix -- Day 7: Bilingual recap, strongest hook replay, CTA push +- Day 1: Publish the 7ya.io blog anchor, EN/HE X, LinkedIn, Instagram carousel, and Telegram summary. +- Day 2: Release TikTok + YouTube Shorts from the same vertical cut and repost as Instagram Reel. +- Day 3: Send WhatsApp/Viber compact forward message and answer high-signal comments. +- Day 4: Publish Facebook + Threads conversation prompts with proof-first framing. +- Day 5: Remix strongest comment into short video and X/Threads follow-up. +- Day 6: Newsletter recap with best public reactions and one concrete 7ya.io action. +- Day 7: Bilingual recap, strongest hook replay, CTA push, and metrics review. CTA: Manage 7ya.io https://7ya.io diff --git a/outputs/personal-brand-booster-yb-2026/en-blog-draft.md b/outputs/personal-brand-booster-yb-2026/en-blog-draft.md index cfc82cddcaef..537c854d78c7 100644 --- a/outputs/personal-brand-booster-yb-2026/en-blog-draft.md +++ b/outputs/personal-brand-booster-yb-2026/en-blog-draft.md @@ -15,6 +15,9 @@ Key claims: Proof points: - No proof points available +sync_role: Canonical SEO and long-form source of truth on 7ya.io +reach_action: Publish the complete argument with UTM-ready links to every social derivative. + CTA: Manage 7ya.io CTA_link: https://7ya.io source_reference: ./input/igor-vepretski-yisrael-beiteinu-campaign.md diff --git a/outputs/personal-brand-booster-yb-2026/en-facebook-post.md b/outputs/personal-brand-booster-yb-2026/en-facebook-post.md new file mode 100644 index 000000000000..008871691fa1 --- /dev/null +++ b/outputs/personal-brand-booster-yb-2026/en-facebook-post.md @@ -0,0 +1,23 @@ +channel: Facebook +language: en +title/hook: Source Brief | Facebook cut + +body: +Thesis: Strategic Architecture and Digital Marketing Deployment for Igor Vepretski: Yisrael Beiteinu Campaign Synthesis + +Key claims: +- EMS core: Elector with strict zero-trust operational controls. +- Channel stack: Telegram (primary), Viber (legacy base), WhatsApp broadcast-only. +- Content engine: TikTok + owned podcast network + short/long-form repurposing. +- Security posture: compartmentalized access, anti-disinformation workflows, OPSEC playbooks. +- Conversion spine: canonical campaign pages on https://7ya.io with UTM discipline. + +Proof points: +- No proof points available + +sync_role: Local community groups, older audiences, and Russian/Hebrew civic discussion +reach_action: Post the practical community angle, ask one question, and avoid over-posting into groups without context. + +CTA: Manage 7ya.io +CTA_link: https://7ya.io +source_reference: ./input/igor-vepretski-yisrael-beiteinu-campaign.md diff --git a/outputs/personal-brand-booster-yb-2026/en-instagram-caption.md b/outputs/personal-brand-booster-yb-2026/en-instagram-caption.md index ee037fc29e08..f43eb99714ca 100644 --- a/outputs/personal-brand-booster-yb-2026/en-instagram-caption.md +++ b/outputs/personal-brand-booster-yb-2026/en-instagram-caption.md @@ -15,6 +15,9 @@ Key claims: Proof points: - No proof points available +sync_role: Visual trust, Reels captions, carousel proof, and Stories reminders +reach_action: Turn the thesis into a 5-slide carousel, add Hebrew-first Stories, and use the CTA sticker to route to 7ya.io. + CTA: Manage 7ya.io CTA_link: https://7ya.io source_reference: ./input/igor-vepretski-yisrael-beiteinu-campaign.md diff --git a/outputs/personal-brand-booster-yb-2026/en-linkedin-post.md b/outputs/personal-brand-booster-yb-2026/en-linkedin-post.md index c62657186d77..0cd3060bff73 100644 --- a/outputs/personal-brand-booster-yb-2026/en-linkedin-post.md +++ b/outputs/personal-brand-booster-yb-2026/en-linkedin-post.md @@ -15,6 +15,9 @@ Key claims: Proof points: - No proof points available +sync_role: Credibility layer for operators, civic leaders, donors, and professional allies +reach_action: Publish a calmer proof-led version and tag partners only when they are directly relevant. + CTA: Manage 7ya.io CTA_link: https://7ya.io source_reference: ./input/igor-vepretski-yisrael-beiteinu-campaign.md diff --git a/outputs/personal-brand-booster-yb-2026/en-newsletter-summary.md b/outputs/personal-brand-booster-yb-2026/en-newsletter-summary.md index 6eb7ae69f4f8..27d794ecda66 100644 --- a/outputs/personal-brand-booster-yb-2026/en-newsletter-summary.md +++ b/outputs/personal-brand-booster-yb-2026/en-newsletter-summary.md @@ -15,6 +15,9 @@ Key claims: Proof points: - No proof points available +sync_role: Owned audience memory, weekly synthesis, and conversion recap +reach_action: Bundle the best public reactions, proof points, and one primary 7ya.io action. + CTA: Manage 7ya.io CTA_link: https://7ya.io source_reference: ./input/igor-vepretski-yisrael-beiteinu-campaign.md diff --git a/outputs/personal-brand-booster-yb-2026/en-telegram-broadcast.md b/outputs/personal-brand-booster-yb-2026/en-telegram-broadcast.md new file mode 100644 index 000000000000..1ff6bc06ebb8 --- /dev/null +++ b/outputs/personal-brand-booster-yb-2026/en-telegram-broadcast.md @@ -0,0 +1,23 @@ +channel: Telegram +language: en +title/hook: Source Brief | Telegram cut + +body: +Thesis: Strategic Architecture and Digital Marketing Deployment for Igor Vepretski: Yisrael Beiteinu Campaign Synthesis + +Key claims: +- EMS core: Elector with strict zero-trust operational controls. +- Channel stack: Telegram (primary), Viber (legacy base), WhatsApp broadcast-only. +- Content engine: TikTok + owned podcast network + short/long-form repurposing. +- Security posture: compartmentalized access, anti-disinformation workflows, OPSEC playbooks. +- Conversion spine: canonical campaign pages on https://7ya.io with UTM discipline. + +Proof points: +- No proof points available + +sync_role: Primary broadcast layer for supporters, volunteers, and high-signal updates +reach_action: Send the cleanest summary, one action, one link, and forward the follow-up only after meaningful engagement. + +CTA: Manage 7ya.io +CTA_link: https://7ya.io +source_reference: ./input/igor-vepretski-yisrael-beiteinu-campaign.md diff --git a/outputs/personal-brand-booster-yb-2026/en-threads-post.md b/outputs/personal-brand-booster-yb-2026/en-threads-post.md new file mode 100644 index 000000000000..336562c0286d --- /dev/null +++ b/outputs/personal-brand-booster-yb-2026/en-threads-post.md @@ -0,0 +1,23 @@ +channel: Threads +language: en +title/hook: Source Brief | Threads cut + +body: +Thesis: Strategic Architecture and Digital Marketing Deployment for Igor Vepretski: Yisrael Beiteinu Campaign Synthesis + +Key claims: +- EMS core: Elector with strict zero-trust operational controls. +- Channel stack: Telegram (primary), Viber (legacy base), WhatsApp broadcast-only. +- Content engine: TikTok + owned podcast network + short/long-form repurposing. +- Security posture: compartmentalized access, anti-disinformation workflows, OPSEC playbooks. +- Conversion spine: canonical campaign pages on https://7ya.io with UTM discipline. + +Proof points: +- No proof points available + +sync_role: Lightweight conversation bridge between Instagram audience and public text updates +reach_action: Publish a concise 3-part thought chain and manually answer early comments in the first hour. + +CTA: Manage 7ya.io +CTA_link: https://7ya.io +source_reference: ./input/igor-vepretski-yisrael-beiteinu-campaign.md diff --git a/outputs/personal-brand-booster-yb-2026/en-tiktok-shorts-script.md b/outputs/personal-brand-booster-yb-2026/en-tiktok-shorts-script.md index 6dfc67769a51..96fad51d78e2 100644 --- a/outputs/personal-brand-booster-yb-2026/en-tiktok-shorts-script.md +++ b/outputs/personal-brand-booster-yb-2026/en-tiktok-shorts-script.md @@ -1,6 +1,6 @@ -channel: TikTok / Shorts +channel: TikTok language: en -title/hook: Source Brief | TikTok / Shorts cut +title/hook: Source Brief | TikTok cut body: Thesis: Strategic Architecture and Digital Marketing Deployment for Igor Vepretski: Yisrael Beiteinu Campaign Synthesis @@ -15,6 +15,9 @@ Key claims: Proof points: - No proof points available +sync_role: Youth reach, direct-to-camera field clips, and emotional hooks +reach_action: Open with a 2-second Israeli street-level problem, keep one idea per video, and ask viewers to save/share. + CTA: Manage 7ya.io CTA_link: https://7ya.io source_reference: ./input/igor-vepretski-yisrael-beiteinu-campaign.md diff --git a/outputs/personal-brand-booster-yb-2026/en-viber-message.md b/outputs/personal-brand-booster-yb-2026/en-viber-message.md new file mode 100644 index 000000000000..870cc8ce10bf --- /dev/null +++ b/outputs/personal-brand-booster-yb-2026/en-viber-message.md @@ -0,0 +1,23 @@ +channel: Viber +language: en +title/hook: Source Brief | Viber cut + +body: +Thesis: Strategic Architecture and Digital Marketing Deployment for Igor Vepretski: Yisrael Beiteinu Campaign Synthesis + +Key claims: +- EMS core: Elector with strict zero-trust operational controls. +- Channel stack: Telegram (primary), Viber (legacy base), WhatsApp broadcast-only. +- Content engine: TikTok + owned podcast network + short/long-form repurposing. +- Security posture: compartmentalized access, anti-disinformation workflows, OPSEC playbooks. +- Conversion spine: canonical campaign pages on https://7ya.io with UTM discipline. + +Proof points: +- No proof points available + +sync_role: Legacy community reach for Russian-speaking and older supporter clusters +reach_action: Mirror the WhatsApp version, emphasize local usefulness, and keep the tone personal rather than campaign-like. + +CTA: Manage 7ya.io +CTA_link: https://7ya.io +source_reference: ./input/igor-vepretski-yisrael-beiteinu-campaign.md diff --git a/outputs/personal-brand-booster-yb-2026/en-whatsapp-broadcast.md b/outputs/personal-brand-booster-yb-2026/en-whatsapp-broadcast.md new file mode 100644 index 000000000000..0d03611f430b --- /dev/null +++ b/outputs/personal-brand-booster-yb-2026/en-whatsapp-broadcast.md @@ -0,0 +1,23 @@ +channel: WhatsApp Broadcast +language: en +title/hook: Source Brief | WhatsApp Broadcast cut + +body: +Thesis: Strategic Architecture and Digital Marketing Deployment for Igor Vepretski: Yisrael Beiteinu Campaign Synthesis + +Key claims: +- EMS core: Elector with strict zero-trust operational controls. +- Channel stack: Telegram (primary), Viber (legacy base), WhatsApp broadcast-only. +- Content engine: TikTok + owned podcast network + short/long-form repurposing. +- Security posture: compartmentalized access, anti-disinformation workflows, OPSEC playbooks. +- Conversion spine: canonical campaign pages on https://7ya.io with UTM discipline. + +Proof points: +- No proof points available + +sync_role: Low-noise direct distribution to trusted lists and local coordinators +reach_action: Send one compact message with a clear forward instruction and no more than one CTA link. + +CTA: Manage 7ya.io +CTA_link: https://7ya.io +source_reference: ./input/igor-vepretski-yisrael-beiteinu-campaign.md diff --git a/outputs/personal-brand-booster-yb-2026/en-x-post.md b/outputs/personal-brand-booster-yb-2026/en-x-post.md index 0d9b2c84878f..ef8cd1634735 100644 --- a/outputs/personal-brand-booster-yb-2026/en-x-post.md +++ b/outputs/personal-brand-booster-yb-2026/en-x-post.md @@ -15,6 +15,9 @@ Key claims: Proof points: - No proof points available +sync_role: Fast public narrative, quote-card threads, and rapid response +reach_action: Post the sharpest claim first, reply to 5 Israeli civic/media accounts, then pin the 7ya.io CTA for 24 hours. + CTA: Manage 7ya.io CTA_link: https://7ya.io source_reference: ./input/igor-vepretski-yisrael-beiteinu-campaign.md diff --git a/outputs/personal-brand-booster-yb-2026/en-youtube-shorts-script.md b/outputs/personal-brand-booster-yb-2026/en-youtube-shorts-script.md new file mode 100644 index 000000000000..8d1099d51788 --- /dev/null +++ b/outputs/personal-brand-booster-yb-2026/en-youtube-shorts-script.md @@ -0,0 +1,23 @@ +channel: YouTube Shorts +language: en +title/hook: Source Brief | YouTube Shorts cut + +body: +Thesis: Strategic Architecture and Digital Marketing Deployment for Igor Vepretski: Yisrael Beiteinu Campaign Synthesis + +Key claims: +- EMS core: Elector with strict zero-trust operational controls. +- Channel stack: Telegram (primary), Viber (legacy base), WhatsApp broadcast-only. +- Content engine: TikTok + owned podcast network + short/long-form repurposing. +- Security posture: compartmentalized access, anti-disinformation workflows, OPSEC playbooks. +- Conversion spine: canonical campaign pages on https://7ya.io with UTM discipline. + +Proof points: +- No proof points available + +sync_role: Searchable short video archive and cross-post home for vertical clips +reach_action: Reuse the TikTok cut with a clearer title, burned-in Hebrew captions, and a pinned 7ya.io comment. + +CTA: Manage 7ya.io +CTA_link: https://7ya.io +source_reference: ./input/igor-vepretski-yisrael-beiteinu-campaign.md diff --git a/outputs/personal-brand-booster-yb-2026/he-blog-draft.md b/outputs/personal-brand-booster-yb-2026/he-blog-draft.md index 9958bdecac8c..bf708aa3d5ec 100644 --- a/outputs/personal-brand-booster-yb-2026/he-blog-draft.md +++ b/outputs/personal-brand-booster-yb-2026/he-blog-draft.md @@ -15,6 +15,9 @@ body: הוכחות: - אין הוכחות זמינות +sync_role: Canonical SEO and long-form source of truth on 7ya.io +reach_action: Publish the complete argument with UTM-ready links to every social derivative. + CTA: Manage 7ya.io CTA_link: https://7ya.io source_reference: ./input/igor-vepretski-yisrael-beiteinu-campaign.md diff --git a/outputs/personal-brand-booster-yb-2026/he-facebook-post.md b/outputs/personal-brand-booster-yb-2026/he-facebook-post.md new file mode 100644 index 000000000000..42e258ad49e2 --- /dev/null +++ b/outputs/personal-brand-booster-yb-2026/he-facebook-post.md @@ -0,0 +1,23 @@ +channel: Facebook +language: he +title/hook: Source Brief | גרסת Facebook + +body: +תזה: Strategic Architecture and Digital Marketing Deployment for Igor Vepretski: Yisrael Beiteinu Campaign Synthesis + +טענות מפתח: +- EMS core: Elector with strict zero-trust operational controls. +- Channel stack: Telegram (primary), Viber (legacy base), WhatsApp broadcast-only. +- Content engine: TikTok + owned podcast network + short/long-form repurposing. +- Security posture: compartmentalized access, anti-disinformation workflows, OPSEC playbooks. +- Conversion spine: canonical campaign pages on https://7ya.io with UTM discipline. + +הוכחות: +- אין הוכחות זמינות + +sync_role: Local community groups, older audiences, and Russian/Hebrew civic discussion +reach_action: Post the practical community angle, ask one question, and avoid over-posting into groups without context. + +CTA: Manage 7ya.io +CTA_link: https://7ya.io +source_reference: ./input/igor-vepretski-yisrael-beiteinu-campaign.md diff --git a/outputs/personal-brand-booster-yb-2026/he-instagram-caption.md b/outputs/personal-brand-booster-yb-2026/he-instagram-caption.md index c7b477ebcf35..a1c939a20c11 100644 --- a/outputs/personal-brand-booster-yb-2026/he-instagram-caption.md +++ b/outputs/personal-brand-booster-yb-2026/he-instagram-caption.md @@ -15,6 +15,9 @@ body: הוכחות: - אין הוכחות זמינות +sync_role: Visual trust, Reels captions, carousel proof, and Stories reminders +reach_action: Turn the thesis into a 5-slide carousel, add Hebrew-first Stories, and use the CTA sticker to route to 7ya.io. + CTA: Manage 7ya.io CTA_link: https://7ya.io source_reference: ./input/igor-vepretski-yisrael-beiteinu-campaign.md diff --git a/outputs/personal-brand-booster-yb-2026/he-linkedin-post.md b/outputs/personal-brand-booster-yb-2026/he-linkedin-post.md index 40c6e39a2bce..60886c698d51 100644 --- a/outputs/personal-brand-booster-yb-2026/he-linkedin-post.md +++ b/outputs/personal-brand-booster-yb-2026/he-linkedin-post.md @@ -15,6 +15,9 @@ body: הוכחות: - אין הוכחות זמינות +sync_role: Credibility layer for operators, civic leaders, donors, and professional allies +reach_action: Publish a calmer proof-led version and tag partners only when they are directly relevant. + CTA: Manage 7ya.io CTA_link: https://7ya.io source_reference: ./input/igor-vepretski-yisrael-beiteinu-campaign.md diff --git a/outputs/personal-brand-booster-yb-2026/he-newsletter-summary.md b/outputs/personal-brand-booster-yb-2026/he-newsletter-summary.md index 6a2c617b9e4d..e6beef2270ef 100644 --- a/outputs/personal-brand-booster-yb-2026/he-newsletter-summary.md +++ b/outputs/personal-brand-booster-yb-2026/he-newsletter-summary.md @@ -15,6 +15,9 @@ body: הוכחות: - אין הוכחות זמינות +sync_role: Owned audience memory, weekly synthesis, and conversion recap +reach_action: Bundle the best public reactions, proof points, and one primary 7ya.io action. + CTA: Manage 7ya.io CTA_link: https://7ya.io source_reference: ./input/igor-vepretski-yisrael-beiteinu-campaign.md diff --git a/outputs/personal-brand-booster-yb-2026/he-telegram-broadcast.md b/outputs/personal-brand-booster-yb-2026/he-telegram-broadcast.md new file mode 100644 index 000000000000..a4ce54dc556a --- /dev/null +++ b/outputs/personal-brand-booster-yb-2026/he-telegram-broadcast.md @@ -0,0 +1,23 @@ +channel: Telegram +language: he +title/hook: Source Brief | גרסת Telegram + +body: +תזה: Strategic Architecture and Digital Marketing Deployment for Igor Vepretski: Yisrael Beiteinu Campaign Synthesis + +טענות מפתח: +- EMS core: Elector with strict zero-trust operational controls. +- Channel stack: Telegram (primary), Viber (legacy base), WhatsApp broadcast-only. +- Content engine: TikTok + owned podcast network + short/long-form repurposing. +- Security posture: compartmentalized access, anti-disinformation workflows, OPSEC playbooks. +- Conversion spine: canonical campaign pages on https://7ya.io with UTM discipline. + +הוכחות: +- אין הוכחות זמינות + +sync_role: Primary broadcast layer for supporters, volunteers, and high-signal updates +reach_action: Send the cleanest summary, one action, one link, and forward the follow-up only after meaningful engagement. + +CTA: Manage 7ya.io +CTA_link: https://7ya.io +source_reference: ./input/igor-vepretski-yisrael-beiteinu-campaign.md diff --git a/outputs/personal-brand-booster-yb-2026/he-threads-post.md b/outputs/personal-brand-booster-yb-2026/he-threads-post.md new file mode 100644 index 000000000000..d58585f7d39f --- /dev/null +++ b/outputs/personal-brand-booster-yb-2026/he-threads-post.md @@ -0,0 +1,23 @@ +channel: Threads +language: he +title/hook: Source Brief | גרסת Threads + +body: +תזה: Strategic Architecture and Digital Marketing Deployment for Igor Vepretski: Yisrael Beiteinu Campaign Synthesis + +טענות מפתח: +- EMS core: Elector with strict zero-trust operational controls. +- Channel stack: Telegram (primary), Viber (legacy base), WhatsApp broadcast-only. +- Content engine: TikTok + owned podcast network + short/long-form repurposing. +- Security posture: compartmentalized access, anti-disinformation workflows, OPSEC playbooks. +- Conversion spine: canonical campaign pages on https://7ya.io with UTM discipline. + +הוכחות: +- אין הוכחות זמינות + +sync_role: Lightweight conversation bridge between Instagram audience and public text updates +reach_action: Publish a concise 3-part thought chain and manually answer early comments in the first hour. + +CTA: Manage 7ya.io +CTA_link: https://7ya.io +source_reference: ./input/igor-vepretski-yisrael-beiteinu-campaign.md diff --git a/outputs/personal-brand-booster-yb-2026/he-tiktok-shorts-script.md b/outputs/personal-brand-booster-yb-2026/he-tiktok-shorts-script.md index e5b2e5d9967a..69d0c1b42a25 100644 --- a/outputs/personal-brand-booster-yb-2026/he-tiktok-shorts-script.md +++ b/outputs/personal-brand-booster-yb-2026/he-tiktok-shorts-script.md @@ -1,6 +1,6 @@ -channel: TikTok / Shorts +channel: TikTok language: he -title/hook: Source Brief | גרסת TikTok / Shorts +title/hook: Source Brief | גרסת TikTok body: תזה: Strategic Architecture and Digital Marketing Deployment for Igor Vepretski: Yisrael Beiteinu Campaign Synthesis @@ -15,6 +15,9 @@ body: הוכחות: - אין הוכחות זמינות +sync_role: Youth reach, direct-to-camera field clips, and emotional hooks +reach_action: Open with a 2-second Israeli street-level problem, keep one idea per video, and ask viewers to save/share. + CTA: Manage 7ya.io CTA_link: https://7ya.io source_reference: ./input/igor-vepretski-yisrael-beiteinu-campaign.md diff --git a/outputs/personal-brand-booster-yb-2026/he-viber-message.md b/outputs/personal-brand-booster-yb-2026/he-viber-message.md new file mode 100644 index 000000000000..76fe25cf5cf4 --- /dev/null +++ b/outputs/personal-brand-booster-yb-2026/he-viber-message.md @@ -0,0 +1,23 @@ +channel: Viber +language: he +title/hook: Source Brief | גרסת Viber + +body: +תזה: Strategic Architecture and Digital Marketing Deployment for Igor Vepretski: Yisrael Beiteinu Campaign Synthesis + +טענות מפתח: +- EMS core: Elector with strict zero-trust operational controls. +- Channel stack: Telegram (primary), Viber (legacy base), WhatsApp broadcast-only. +- Content engine: TikTok + owned podcast network + short/long-form repurposing. +- Security posture: compartmentalized access, anti-disinformation workflows, OPSEC playbooks. +- Conversion spine: canonical campaign pages on https://7ya.io with UTM discipline. + +הוכחות: +- אין הוכחות זמינות + +sync_role: Legacy community reach for Russian-speaking and older supporter clusters +reach_action: Mirror the WhatsApp version, emphasize local usefulness, and keep the tone personal rather than campaign-like. + +CTA: Manage 7ya.io +CTA_link: https://7ya.io +source_reference: ./input/igor-vepretski-yisrael-beiteinu-campaign.md diff --git a/outputs/personal-brand-booster-yb-2026/he-whatsapp-broadcast.md b/outputs/personal-brand-booster-yb-2026/he-whatsapp-broadcast.md new file mode 100644 index 000000000000..a7b909ff5c18 --- /dev/null +++ b/outputs/personal-brand-booster-yb-2026/he-whatsapp-broadcast.md @@ -0,0 +1,23 @@ +channel: WhatsApp Broadcast +language: he +title/hook: Source Brief | גרסת WhatsApp Broadcast + +body: +תזה: Strategic Architecture and Digital Marketing Deployment for Igor Vepretski: Yisrael Beiteinu Campaign Synthesis + +טענות מפתח: +- EMS core: Elector with strict zero-trust operational controls. +- Channel stack: Telegram (primary), Viber (legacy base), WhatsApp broadcast-only. +- Content engine: TikTok + owned podcast network + short/long-form repurposing. +- Security posture: compartmentalized access, anti-disinformation workflows, OPSEC playbooks. +- Conversion spine: canonical campaign pages on https://7ya.io with UTM discipline. + +הוכחות: +- אין הוכחות זמינות + +sync_role: Low-noise direct distribution to trusted lists and local coordinators +reach_action: Send one compact message with a clear forward instruction and no more than one CTA link. + +CTA: Manage 7ya.io +CTA_link: https://7ya.io +source_reference: ./input/igor-vepretski-yisrael-beiteinu-campaign.md diff --git a/outputs/personal-brand-booster-yb-2026/he-x-post.md b/outputs/personal-brand-booster-yb-2026/he-x-post.md index 8c9d5720d330..20dc79cf3e20 100644 --- a/outputs/personal-brand-booster-yb-2026/he-x-post.md +++ b/outputs/personal-brand-booster-yb-2026/he-x-post.md @@ -15,6 +15,9 @@ body: הוכחות: - אין הוכחות זמינות +sync_role: Fast public narrative, quote-card threads, and rapid response +reach_action: Post the sharpest claim first, reply to 5 Israeli civic/media accounts, then pin the 7ya.io CTA for 24 hours. + CTA: Manage 7ya.io CTA_link: https://7ya.io source_reference: ./input/igor-vepretski-yisrael-beiteinu-campaign.md diff --git a/outputs/personal-brand-booster-yb-2026/he-youtube-shorts-script.md b/outputs/personal-brand-booster-yb-2026/he-youtube-shorts-script.md new file mode 100644 index 000000000000..7c458d6674e7 --- /dev/null +++ b/outputs/personal-brand-booster-yb-2026/he-youtube-shorts-script.md @@ -0,0 +1,23 @@ +channel: YouTube Shorts +language: he +title/hook: Source Brief | גרסת YouTube Shorts + +body: +תזה: Strategic Architecture and Digital Marketing Deployment for Igor Vepretski: Yisrael Beiteinu Campaign Synthesis + +טענות מפתח: +- EMS core: Elector with strict zero-trust operational controls. +- Channel stack: Telegram (primary), Viber (legacy base), WhatsApp broadcast-only. +- Content engine: TikTok + owned podcast network + short/long-form repurposing. +- Security posture: compartmentalized access, anti-disinformation workflows, OPSEC playbooks. +- Conversion spine: canonical campaign pages on https://7ya.io with UTM discipline. + +הוכחות: +- אין הוכחות זמינות + +sync_role: Searchable short video archive and cross-post home for vertical clips +reach_action: Reuse the TikTok cut with a clearer title, burned-in Hebrew captions, and a pinned 7ya.io comment. + +CTA: Manage 7ya.io +CTA_link: https://7ya.io +source_reference: ./input/igor-vepretski-yisrael-beiteinu-campaign.md diff --git a/outputs/personal-brand-booster-yb-2026/platform-sync-playbook.md b/outputs/personal-brand-booster-yb-2026/platform-sync-playbook.md new file mode 100644 index 000000000000..55fb99a92c92 --- /dev/null +++ b/outputs/personal-brand-booster-yb-2026/platform-sync-playbook.md @@ -0,0 +1,73 @@ +# Platform Sync Playbook + +## X / Twitter + +- Role: Fast public narrative, quote-card threads, and rapid response +- Reach action: Post the sharpest claim first, reply to 5 Israeli civic/media accounts, then pin the 7ya.io CTA for 24 hours. + +## LinkedIn + +- Role: Credibility layer for operators, civic leaders, donors, and professional allies +- Reach action: Publish a calmer proof-led version and tag partners only when they are directly relevant. + +## Instagram + +- Role: Visual trust, Reels captions, carousel proof, and Stories reminders +- Reach action: Turn the thesis into a 5-slide carousel, add Hebrew-first Stories, and use the CTA sticker to route to 7ya.io. + +## TikTok + +- Role: Youth reach, direct-to-camera field clips, and emotional hooks +- Reach action: Open with a 2-second Israeli street-level problem, keep one idea per video, and ask viewers to save/share. + +## YouTube Shorts + +- Role: Searchable short video archive and cross-post home for vertical clips +- Reach action: Reuse the TikTok cut with a clearer title, burned-in Hebrew captions, and a pinned 7ya.io comment. + +## Facebook + +- Role: Local community groups, older audiences, and Russian/Hebrew civic discussion +- Reach action: Post the practical community angle, ask one question, and avoid over-posting into groups without context. + +## Threads + +- Role: Lightweight conversation bridge between Instagram audience and public text updates +- Reach action: Publish a concise 3-part thought chain and manually answer early comments in the first hour. + +## Telegram + +- Role: Primary broadcast layer for supporters, volunteers, and high-signal updates +- Reach action: Send the cleanest summary, one action, one link, and forward the follow-up only after meaningful engagement. + +## WhatsApp Broadcast + +- Role: Low-noise direct distribution to trusted lists and local coordinators +- Reach action: Send one compact message with a clear forward instruction and no more than one CTA link. + +## Viber + +- Role: Legacy community reach for Russian-speaking and older supporter clusters +- Reach action: Mirror the WhatsApp version, emphasize local usefulness, and keep the tone personal rather than campaign-like. + +## Newsletter + +- Role: Owned audience memory, weekly synthesis, and conversion recap +- Reach action: Bundle the best public reactions, proof points, and one primary 7ya.io action. + +## Blog draft + +- Role: Canonical SEO and long-form source of truth on 7ya.io +- Reach action: Publish the complete argument with UTM-ready links to every social derivative. + +## Operating Rules + +- Keep 7ya.io as the canonical link and UTM source of truth. +- Publish Hebrew-first when addressing Israeli civic action; mirror in English for allies, press, and diaspora reach. +- Reuse one core proof point per platform so every post feels native but stays synchronized. +- Reply during the first hour on text platforms and the first two hours on video platforms. +- Review saves, shares, replies, link clicks, and volunteer signups before choosing the next remix. + +CTA: Manage 7ya.io +https://7ya.io +source_reference: ./input/igor-vepretski-yisrael-beiteinu-campaign.md diff --git a/outputs/personal-brand-booster-yb-2026/repurposing-map.md b/outputs/personal-brand-booster-yb-2026/repurposing-map.md index 3471faa8836e..1c9ce215d17d 100644 --- a/outputs/personal-brand-booster-yb-2026/repurposing-map.md +++ b/outputs/personal-brand-booster-yb-2026/repurposing-map.md @@ -1,9 +1,15 @@ # Repurposing Map - Source item -> brief.json -> campaign-plan.json -- Source item -> EN platform set (6 files) -- Source item -> HE platform set (6 files) +- Source item -> EN platform set (12 files) +- Source item -> HE platform set (12 files) +- Blog draft -> canonical 7ya.io source of truth +- TikTok script -> YouTube Shorts + Instagram Reel variant +- Telegram broadcast -> WhatsApp Broadcast + Viber compact direct-message variants +- X / Twitter post -> Threads conversation bridge + Facebook community prompt +- LinkedIn post -> newsletter professional recap - Platform sets -> daily-posting-plan.md +- Platform sync roles -> platform-sync-playbook.md - Platform hooks -> hook-bank.md - CTA policy -> cta-bank.md diff --git a/outputs/personal-brand-booster-yb-2026/validation.json b/outputs/personal-brand-booster-yb-2026/validation.json index 6f984c22ff2d..6a2a356c45f2 100644 --- a/outputs/personal-brand-booster-yb-2026/validation.json +++ b/outputs/personal-brand-booster-yb-2026/validation.json @@ -14,6 +14,8 @@ "has_title_hook": true, "has_body": true, "has_source_reference": true, + "has_sync_role": true, + "has_reach_action": true, "supported_language": true } }, @@ -29,6 +31,8 @@ "has_title_hook": true, "has_body": true, "has_source_reference": true, + "has_sync_role": true, + "has_reach_action": true, "supported_language": true } }, @@ -44,6 +48,8 @@ "has_title_hook": true, "has_body": true, "has_source_reference": true, + "has_sync_role": true, + "has_reach_action": true, "supported_language": true } }, @@ -59,6 +65,8 @@ "has_title_hook": true, "has_body": true, "has_source_reference": true, + "has_sync_role": true, + "has_reach_action": true, "supported_language": true } }, @@ -74,6 +82,8 @@ "has_title_hook": true, "has_body": true, "has_source_reference": true, + "has_sync_role": true, + "has_reach_action": true, "supported_language": true } }, @@ -89,6 +99,8 @@ "has_title_hook": true, "has_body": true, "has_source_reference": true, + "has_sync_role": true, + "has_reach_action": true, "supported_language": true } }, @@ -104,6 +116,8 @@ "has_title_hook": true, "has_body": true, "has_source_reference": true, + "has_sync_role": true, + "has_reach_action": true, "supported_language": true } }, @@ -119,6 +133,212 @@ "has_title_hook": true, "has_body": true, "has_source_reference": true, + "has_sync_role": true, + "has_reach_action": true, + "supported_language": true + } + }, + { + "file": "en-youtube-shorts-script.md", + "status": "pass", + "checks": { + "not_empty": true, + "has_cta_phrase": true, + "has_cta_link": true, + "has_channel": true, + "has_language": true, + "has_title_hook": true, + "has_body": true, + "has_source_reference": true, + "has_sync_role": true, + "has_reach_action": true, + "supported_language": true + } + }, + { + "file": "he-youtube-shorts-script.md", + "status": "pass", + "checks": { + "not_empty": true, + "has_cta_phrase": true, + "has_cta_link": true, + "has_channel": true, + "has_language": true, + "has_title_hook": true, + "has_body": true, + "has_source_reference": true, + "has_sync_role": true, + "has_reach_action": true, + "supported_language": true + } + }, + { + "file": "en-facebook-post.md", + "status": "pass", + "checks": { + "not_empty": true, + "has_cta_phrase": true, + "has_cta_link": true, + "has_channel": true, + "has_language": true, + "has_title_hook": true, + "has_body": true, + "has_source_reference": true, + "has_sync_role": true, + "has_reach_action": true, + "supported_language": true + } + }, + { + "file": "he-facebook-post.md", + "status": "pass", + "checks": { + "not_empty": true, + "has_cta_phrase": true, + "has_cta_link": true, + "has_channel": true, + "has_language": true, + "has_title_hook": true, + "has_body": true, + "has_source_reference": true, + "has_sync_role": true, + "has_reach_action": true, + "supported_language": true + } + }, + { + "file": "en-threads-post.md", + "status": "pass", + "checks": { + "not_empty": true, + "has_cta_phrase": true, + "has_cta_link": true, + "has_channel": true, + "has_language": true, + "has_title_hook": true, + "has_body": true, + "has_source_reference": true, + "has_sync_role": true, + "has_reach_action": true, + "supported_language": true + } + }, + { + "file": "he-threads-post.md", + "status": "pass", + "checks": { + "not_empty": true, + "has_cta_phrase": true, + "has_cta_link": true, + "has_channel": true, + "has_language": true, + "has_title_hook": true, + "has_body": true, + "has_source_reference": true, + "has_sync_role": true, + "has_reach_action": true, + "supported_language": true + } + }, + { + "file": "en-telegram-broadcast.md", + "status": "pass", + "checks": { + "not_empty": true, + "has_cta_phrase": true, + "has_cta_link": true, + "has_channel": true, + "has_language": true, + "has_title_hook": true, + "has_body": true, + "has_source_reference": true, + "has_sync_role": true, + "has_reach_action": true, + "supported_language": true + } + }, + { + "file": "he-telegram-broadcast.md", + "status": "pass", + "checks": { + "not_empty": true, + "has_cta_phrase": true, + "has_cta_link": true, + "has_channel": true, + "has_language": true, + "has_title_hook": true, + "has_body": true, + "has_source_reference": true, + "has_sync_role": true, + "has_reach_action": true, + "supported_language": true + } + }, + { + "file": "en-whatsapp-broadcast.md", + "status": "pass", + "checks": { + "not_empty": true, + "has_cta_phrase": true, + "has_cta_link": true, + "has_channel": true, + "has_language": true, + "has_title_hook": true, + "has_body": true, + "has_source_reference": true, + "has_sync_role": true, + "has_reach_action": true, + "supported_language": true + } + }, + { + "file": "he-whatsapp-broadcast.md", + "status": "pass", + "checks": { + "not_empty": true, + "has_cta_phrase": true, + "has_cta_link": true, + "has_channel": true, + "has_language": true, + "has_title_hook": true, + "has_body": true, + "has_source_reference": true, + "has_sync_role": true, + "has_reach_action": true, + "supported_language": true + } + }, + { + "file": "en-viber-message.md", + "status": "pass", + "checks": { + "not_empty": true, + "has_cta_phrase": true, + "has_cta_link": true, + "has_channel": true, + "has_language": true, + "has_title_hook": true, + "has_body": true, + "has_source_reference": true, + "has_sync_role": true, + "has_reach_action": true, + "supported_language": true + } + }, + { + "file": "he-viber-message.md", + "status": "pass", + "checks": { + "not_empty": true, + "has_cta_phrase": true, + "has_cta_link": true, + "has_channel": true, + "has_language": true, + "has_title_hook": true, + "has_body": true, + "has_source_reference": true, + "has_sync_role": true, + "has_reach_action": true, "supported_language": true } }, @@ -134,6 +354,8 @@ "has_title_hook": true, "has_body": true, "has_source_reference": true, + "has_sync_role": true, + "has_reach_action": true, "supported_language": true } }, @@ -149,6 +371,8 @@ "has_title_hook": true, "has_body": true, "has_source_reference": true, + "has_sync_role": true, + "has_reach_action": true, "supported_language": true } }, @@ -164,6 +388,8 @@ "has_title_hook": true, "has_body": true, "has_source_reference": true, + "has_sync_role": true, + "has_reach_action": true, "supported_language": true } }, @@ -179,6 +405,8 @@ "has_title_hook": true, "has_body": true, "has_source_reference": true, + "has_sync_role": true, + "has_reach_action": true, "supported_language": true } } diff --git a/script/personal-brand-booster.ts b/script/personal-brand-booster.ts index 109a410f4890..d4f4da8b4fdf 100644 --- a/script/personal-brand-booster.ts +++ b/script/personal-brand-booster.ts @@ -24,12 +24,78 @@ const ctaPhrase = "Manage 7ya.io" const ctaLink = "https://7ya.io" const languages = lang === "both" ? ["en", "he"] : [lang] const channels = [ - { channel: "X / Twitter", file: "x-post" }, - { channel: "LinkedIn", file: "linkedin-post" }, - { channel: "Instagram", file: "instagram-caption" }, - { channel: "TikTok / Shorts", file: "tiktok-shorts-script" }, - { channel: "Newsletter", file: "newsletter-summary" }, - { channel: "Blog draft", file: "blog-draft" }, + { + channel: "X / Twitter", + file: "x-post", + syncRole: "Fast public narrative, quote-card threads, and rapid response", + reachAction: "Post the sharpest claim first, reply to 5 Israeli civic/media accounts, then pin the 7ya.io CTA for 24 hours.", + }, + { + channel: "LinkedIn", + file: "linkedin-post", + syncRole: "Credibility layer for operators, civic leaders, donors, and professional allies", + reachAction: "Publish a calmer proof-led version and tag partners only when they are directly relevant.", + }, + { + channel: "Instagram", + file: "instagram-caption", + syncRole: "Visual trust, Reels captions, carousel proof, and Stories reminders", + reachAction: "Turn the thesis into a 5-slide carousel, add Hebrew-first Stories, and use the CTA sticker to route to 7ya.io.", + }, + { + channel: "TikTok", + file: "tiktok-shorts-script", + syncRole: "Youth reach, direct-to-camera field clips, and emotional hooks", + reachAction: "Open with a 2-second Israeli street-level problem, keep one idea per video, and ask viewers to save/share.", + }, + { + channel: "YouTube Shorts", + file: "youtube-shorts-script", + syncRole: "Searchable short video archive and cross-post home for vertical clips", + reachAction: "Reuse the TikTok cut with a clearer title, burned-in Hebrew captions, and a pinned 7ya.io comment.", + }, + { + channel: "Facebook", + file: "facebook-post", + syncRole: "Local community groups, older audiences, and Russian/Hebrew civic discussion", + reachAction: "Post the practical community angle, ask one question, and avoid over-posting into groups without context.", + }, + { + channel: "Threads", + file: "threads-post", + syncRole: "Lightweight conversation bridge between Instagram audience and public text updates", + reachAction: "Publish a concise 3-part thought chain and manually answer early comments in the first hour.", + }, + { + channel: "Telegram", + file: "telegram-broadcast", + syncRole: "Primary broadcast layer for supporters, volunteers, and high-signal updates", + reachAction: "Send the cleanest summary, one action, one link, and forward the follow-up only after meaningful engagement.", + }, + { + channel: "WhatsApp Broadcast", + file: "whatsapp-broadcast", + syncRole: "Low-noise direct distribution to trusted lists and local coordinators", + reachAction: "Send one compact message with a clear forward instruction and no more than one CTA link.", + }, + { + channel: "Viber", + file: "viber-message", + syncRole: "Legacy community reach for Russian-speaking and older supporter clusters", + reachAction: "Mirror the WhatsApp version, emphasize local usefulness, and keep the tone personal rather than campaign-like.", + }, + { + channel: "Newsletter", + file: "newsletter-summary", + syncRole: "Owned audience memory, weekly synthesis, and conversion recap", + reachAction: "Bundle the best public reactions, proof points, and one primary 7ya.io action.", + }, + { + channel: "Blog draft", + file: "blog-draft", + syncRole: "Canonical SEO and long-form source of truth on 7ya.io", + reachAction: "Publish the complete argument with UTM-ready links to every social derivative.", + }, ] const sourceText = await Bun.file(sourcePath).text() @@ -52,21 +118,30 @@ await Bun.write(path.join(outDir, "brief.json"), JSON.stringify({ source_title: sourceTitle, one_line_thesis: oneLineThesis, key_claims: keyClaims, - personal_brand_angle: "Igor Vepretski uses one core idea to produce bilingual, high-frequency authority content without spam.", - audience: "Founders, operators, creators, and growth teams that want practical personal-brand systems.", + personal_brand_angle: "Igor Vepretski uses one Israeli civic leadership idea to produce bilingual, high-frequency authority content without spam.", + audience: "Israeli voters, young civic leaders, Russian-speaking community members, local operators, journalists, volunteers, and supporters who need practical updates they can share.", proof_points: proofPoints, reusable_hooks: reusableHooks, source_reference: sourcePath, }, null, 2)) await Bun.write(path.join(outDir, "campaign-plan.json"), JSON.stringify({ - objective: "Turn one source item into an aggressive but non-spammy 7-day bilingual promotion package.", + objective: "Turn one source item into a synchronized, non-spammy 7-day Israeli influencer promotion package that reaches every active 7ya.io platform.", languages, channels: channels.map((item) => item.channel), + sync_strategy: channels.map((item) => ({ + channel: item.channel, + role: item.syncRole, + reach_action: item.reachAction, + })), cadence: [ - "Day 1: publish anchor insight", - "Day 2-6: distribute platform derivatives", - "Day 7: recap + strongest CTA replay", + "Day 1: publish the 7ya.io blog anchor, EN/HE X, LinkedIn, Instagram carousel, and Telegram summary", + "Day 2: release TikTok + YouTube Shorts from the same vertical cut and repost as Instagram Reel", + "Day 3: send WhatsApp/Viber compact forward message and answer high-signal comments", + "Day 4: publish Facebook + Threads conversation prompts with proof-first framing", + "Day 5: remix strongest comment into short video and X/Threads follow-up", + "Day 6: newsletter recap with best public reactions and one concrete 7ya.io action", + "Day 7: bilingual recap, strongest hook replay, CTA push, and metrics review", ], cta_policy: { phrase: ctaPhrase, @@ -86,14 +161,62 @@ await Promise.all(generatedPlatformFiles.map((file) => { const body = language === "he" ? `תזה: ${oneLineThesis}\n\nטענות מפתח:\n${(keyClaims.length > 0 ? keyClaims : ["אין טענות מפתח זמינות"]).map((claim) => `- ${claim}`).join("\n")}\n\nהוכחות:\n${(proofPoints.length > 0 ? proofPoints : ["אין הוכחות זמינות"]).map((point) => `- ${point}`).join("\n")}` : `Thesis: ${oneLineThesis}\n\nKey claims:\n${(keyClaims.length > 0 ? keyClaims : ["No key claims available"]).map((claim) => `- ${claim}`).join("\n")}\n\nProof points:\n${(proofPoints.length > 0 ? proofPoints : ["No proof points available"]).map((point) => `- ${point}`).join("\n")}` - return Bun.write(path.join(outDir, file), `channel: ${channel?.channel || "Unknown"}\nlanguage: ${language}\ntitle/hook: ${title}\n\n${bodyTitle}:\n${body}\n\nCTA: ${ctaPhrase}\nCTA_link: ${ctaLink}\nsource_reference: ${sourcePath}\n`) + return Bun.write(path.join(outDir, file), `channel: ${channel?.channel || "Unknown"}\nlanguage: ${language}\ntitle/hook: ${title}\n\n${bodyTitle}:\n${body}\n\nsync_role: ${channel?.syncRole || "Unknown"}\nreach_action: ${channel?.reachAction || "Unknown"}\n\nCTA: ${ctaPhrase}\nCTA_link: ${ctaLink}\nsource_reference: ${sourcePath}\n`) })) -await Bun.write(path.join(outDir, "daily-posting-plan.md"), `# 7-Day Posting Plan\n\n- Day 1: EN X + EN LinkedIn + EN Instagram\n- Day 2: EN TikTok/Shorts + EN Newsletter\n- Day 3: EN Blog draft + EN X remix\n- Day 4: HE X + HE LinkedIn + HE Instagram\n- Day 5: HE TikTok/Shorts + HE Newsletter\n- Day 6: HE Blog draft + HE X remix\n- Day 7: Bilingual recap, strongest hook replay, CTA push\n\nCTA: ${ctaPhrase}\n${ctaLink}\nsource_reference: ${sourcePath}\n`) +await Bun.write(path.join(outDir, "daily-posting-plan.md"), `# 7-Day Posting Plan + +- Day 1: Publish the 7ya.io blog anchor, EN/HE X, LinkedIn, Instagram carousel, and Telegram summary. +- Day 2: Release TikTok + YouTube Shorts from the same vertical cut and repost as Instagram Reel. +- Day 3: Send WhatsApp/Viber compact forward message and answer high-signal comments. +- Day 4: Publish Facebook + Threads conversation prompts with proof-first framing. +- Day 5: Remix strongest comment into short video and X/Threads follow-up. +- Day 6: Newsletter recap with best public reactions and one concrete 7ya.io action. +- Day 7: Bilingual recap, strongest hook replay, CTA push, and metrics review. + +CTA: ${ctaPhrase} +${ctaLink} +source_reference: ${sourcePath} +`) await Bun.write(path.join(outDir, "hook-bank.md"), `# Hook Bank\n\n${reusableHooks.join("\n")}\n\nCTA: ${ctaPhrase}\n${ctaLink}\nsource_reference: ${sourcePath}\n`) await Bun.write(path.join(outDir, "cta-bank.md"), `# CTA Bank\n\n- Build authority from one idea at a time. ${ctaPhrase} ${ctaLink}\n- Stop posting randomly. ${ctaPhrase} ${ctaLink}\n- Bilingual momentum, one control plane. ${ctaPhrase} ${ctaLink}\n- Repurpose without losing voice. ${ctaPhrase} ${ctaLink}\n- Create signal, not noise. ${ctaPhrase} ${ctaLink}\n`) -await Bun.write(path.join(outDir, "repurposing-map.md"), `# Repurposing Map\n\n- Source item -> brief.json -> campaign-plan.json\n- Source item -> EN platform set (6 files)\n- Source item -> HE platform set (6 files)\n- Platform sets -> daily-posting-plan.md\n- Platform hooks -> hook-bank.md\n- CTA policy -> cta-bank.md\n\nCTA: ${ctaPhrase}\n${ctaLink}\nsource_reference: ${sourcePath}\n`) -await Bun.write(path.join(outDir, "README.md"), `# Personal Brand Booster Output\n\nGenerated with:\n\n\`bun run personal-brand:boost --source ${sourcePath} --lang ${lang} --out ${outDir}\`\n\nContains brief, campaign plan, bilingual channel markdown assets, posting plan, hook bank, CTA bank, repurposing map, and validation report.\n`) +await Bun.write(path.join(outDir, "repurposing-map.md"), `# Repurposing Map + +- Source item -> brief.json -> campaign-plan.json +- Source item -> EN platform set (${channels.length} files) +- Source item -> HE platform set (${channels.length} files) +- Blog draft -> canonical 7ya.io source of truth +- TikTok script -> YouTube Shorts + Instagram Reel variant +- Telegram broadcast -> WhatsApp Broadcast + Viber compact direct-message variants +- X / Twitter post -> Threads conversation bridge + Facebook community prompt +- LinkedIn post -> newsletter professional recap +- Platform sets -> daily-posting-plan.md +- Platform sync roles -> platform-sync-playbook.md +- Platform hooks -> hook-bank.md +- CTA policy -> cta-bank.md + +CTA: ${ctaPhrase} +${ctaLink} +source_reference: ${sourcePath} +`) +await Bun.write(path.join(outDir, "platform-sync-playbook.md"), `# Platform Sync Playbook + +${channels.map((item) => `## ${item.channel}\n\n- Role: ${item.syncRole}\n- Reach action: ${item.reachAction}`).join("\n\n")} + +## Operating Rules + +- Keep 7ya.io as the canonical link and UTM source of truth. +- Publish Hebrew-first when addressing Israeli civic action; mirror in English for allies, press, and diaspora reach. +- Reuse one core proof point per platform so every post feels native but stays synchronized. +- Reply during the first hour on text platforms and the first two hours on video platforms. +- Review saves, shares, replies, link clicks, and volunteer signups before choosing the next remix. + +CTA: ${ctaPhrase} +${ctaLink} +source_reference: ${sourcePath} +`) + +await Bun.write(path.join(outDir, "README.md"), `# Personal Brand Booster Output\n\nGenerated with:\n\n\`bun run personal-brand:boost --source ${sourcePath} --lang ${lang} --out ${outDir}\`\n\nContains brief, campaign plan, bilingual channel markdown assets, posting plan, platform sync playbook, hook bank, CTA bank, repurposing map, and validation report.\n`) const validations = await Promise.all(generatedPlatformFiles.map(async (file) => { const content = await Bun.file(path.join(outDir, file)).text() @@ -108,6 +231,8 @@ const validations = await Promise.all(generatedPlatformFiles.map(async (file) => has_title_hook: content.includes("title/hook:"), has_body: content.includes("body:"), has_source_reference: content.includes("source_reference:"), + has_sync_role: content.includes("sync_role:"), + has_reach_action: content.includes("reach_action:"), supported_language: declaredLanguage === "en" || declaredLanguage === "he", } return { @@ -123,4 +248,4 @@ await Bun.write(path.join(outDir, "validation.json"), JSON.stringify({ files: validations, }, null, 2)) -console.log(`Generated ${generatedPlatformFiles.length + 8} artifacts in ${outDir}`) +console.log(`Generated ${generatedPlatformFiles.length + 9} artifacts in ${outDir}`)