Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 61 additions & 0 deletions .github/workflows/capture-fs-social-proof.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: Capture Financial Stream social proof

on:
push:
branches:
- agent/prepare-fs-social-proof-post
paths:
- '.github/workflows/capture-fs-social-proof.yml'
- 'scripts/capture-fs-social-proof.mjs'
pull_request:
branches:
- main
paths:
- '.github/workflows/capture-fs-social-proof.yml'
- 'scripts/capture-fs-social-proof.mjs'
- 'docs/social-media/financial-stream-2026-08-07/**'
workflow_dispatch:

permissions:
contents: write

jobs:
capture:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: agent/prepare-fs-social-proof-post
fetch-depth: 0

- uses: actions/setup-node@v4
with:
node-version: '22'

- name: Install Playwright
run: |
npm init -y >/dev/null 2>&1
npm install playwright@1.54.2
npx playwright install --with-deps chromium

- name: Capture production screenshots
run: node scripts/capture-fs-social-proof.mjs

- name: Commit screenshots
if: github.event_name != 'pull_request'
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add docs/social-media/financial-stream-2026-08-07/screenshots
if git diff --cached --quiet; then
echo "No screenshot changes"
else
git commit -m "Capture Financial Stream social proof screenshots"
git push origin HEAD:agent/prepare-fs-social-proof-post
fi

- name: Upload screenshot artifact
uses: actions/upload-artifact@v4
with:
name: financial-stream-social-proof-screenshots
path: docs/social-media/financial-stream-2026-08-07/screenshots/*.jpg
207 changes: 207 additions & 0 deletions docs/social-media/financial-stream-2026-08-07/SOCIAL_POST_PACKAGE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,207 @@
# Financial Stream — Social Proof Post Package

**Prepared by:** Social Media Project
**Date:** 2026-08-07
**Status:** Approval-ready after screenshot QA
**Purpose:** One consolidated proof post showing a fresh Financial Stream update without turning the feed into repeated Financial Stream-only promotion.

## 1. Strategic decision

Use **one consolidated Financial Stream update**, not two consecutive posts.

The post combines two complementary improvements:

1. **About / trust architecture** — founder visibility, positioning, process, proof and clear next steps.
2. **Expert article / authority system** — long-form subject expertise, structured navigation, named author, source review, practical control model and bilingual localization.

This post should be followed by a non-Financial Stream topic. Recommended sequence:

1. Financial Stream fresh-work proof post — this package.
2. Neutral AI / automation / lead-response post.
3. Alina Horb portfolio proof post.
4. Founder/business observation.
5. Practical AI workflow.
6. Home-services / Local Repair Pro concept, explicitly labelled as concept/demo.

This protects portfolio breadth and prevents the public profile from looking dependent on one client project.

## 2. Source URLs

### Russian / Facebook

- About: https://financialstreamllc.com/ru/about/
- Flagship article: https://financialstreamllc.com/ru/blog/buhgalteriya-ssha-malogo-biznesa.html
- Materials hub: https://financialstreamllc.com/ru/blog/
- ProAI Expert: https://proai-expert.com/ru/

### English / LinkedIn

- About: https://financialstreamllc.com/about/
- Flagship article: https://financialstreamllc.com/blog/us-bookkeeping-small-business.html
- Materials hub: https://financialstreamllc.com/blog/
- ProAI Expert: https://proai-expert.com/

## 3. Evidence boundaries

Safe claims:

- Financial Stream is a live bilingual EN/RU business website.
- The About page now presents the CEO, operating approach, services, client path and verified business proof.
- The flagship bookkeeping article is a long-form expert guide with named authorship, structured contents, source review and a practical control framework.
- The site has an expanding bilingual materials system.
- ProAI Expert continues to support the site after launch through content, authority, UX and search-oriented site development.

Do **not** claim that the new article itself already caused rankings, leads, revenue or conversion growth.

Separate dated ProAI portfolio evidence currently records a six-month Google Search Console snapshot captured 2026-08-04 with 57 organic clicks, 7.24K impressions, 0.8% CTR and 35.2 average position, plus a separate 2026-07-23 indexing snapshot with 50 indexed pages. Those metrics may be used only with their dates and limitations; do not attribute them to this single new article.

## 4. Screenshot set

The GitHub capture workflow generates current production screenshots at desktop width from the live Financial Stream site.

### Russian set — Facebook

1. `screenshots/01-about-hero-ru.jpg` — CEO + positioning + geography/language + CTA.
2. `screenshots/02-about-how-we-work-ru.jpg` — process architecture.
3. `screenshots/03-about-proof-ru.jpg` — verified proof strip.
4. `screenshots/04-article-hero-ru.jpg` — expert-guide hero and reading-depth signal.
5. `screenshots/05-article-author-toc-ru.jpg` — named author + structured contents.
6. `screenshots/06-article-control-model-ru.jpg` — proprietary/practical control framework area.

### English set — LinkedIn

1. `screenshots/01-about-hero-en.jpg`
2. `screenshots/02-about-how-we-work-en.jpg`
3. `screenshots/03-about-proof-en.jpg`
4. `screenshots/04-article-hero-en.jpg`
5. `screenshots/05-article-author-toc-en.jpg`
6. `screenshots/06-article-control-model-en.jpg`

### Recommended carousel order

Use **5 images**, not all six, unless the sixth materially improves the preview.

Default order:

1. About hero.
2. About process.
3. Article hero.
4. Author + contents.
5. Control model.

Keep the proof-strip image as the optional sixth image or swap it into position 3 when the proof block is visually stronger than the article hero in the final captures.

## 5. Facebook post — Russian

### Recommended angle

Do not frame this as “ещё один пост про Financial Stream.” Frame it as a fresh example of what happens **after a website is launched**.

### Draft

Недавно снова усилили Financial Stream — и это хороший пример того, почему для бизнеса запуск сайта не должен быть финальной точкой.

В этот раз работали сразу в двух направлениях.

Первое — доверие. Полностью усилили страницу «О компании»: реальный руководитель, понятное позиционирование, подход к работе, процесс взаимодействия, направления услуг и подтверждённые показатели. Для бухгалтерской компании это особенно важно — человек должен понять, кому он доверяет документы и финансовые вопросы ещё до первого разговора.

Второе — экспертный контент. Развиваем полноценную базу материалов, а не короткие SEO-тексты ради ключевых слов. Новый большой материал по бухгалтерии малого бизнеса в США построен как практический экспертный разбор: автор, структура, источники, контрольная модель и отдельные версии для русско- и англоязычной аудитории.

Именно так я вижу нормальную работу с бизнес-сайтом:

**стратегия → сайт → доверие → экспертный контент → развитие и поисковая видимость.**

Не просто «сделать сайт и забыть», а постепенно превращать его в сильный цифровой актив компании.

Ссылки на свежие разделы:

Financial Stream — About: https://financialstreamllc.com/ru/about/

Экспертный материал: https://financialstreamllc.com/ru/blog/buhgalteriya-ssha-malogo-biznesa.html

ProAI Expert: https://proai-expert.com/ru/

Если у бизнеса уже есть сайт, но он выглядит слабее самой компании или после запуска практически не развивается — это как раз тот случай, который стоит разобрать отдельно.

## 6. LinkedIn post — English

### Recommended angle

Use a compact professional case-update structure: website launch is the beginning; show trust architecture + authority content as two connected layers.

### Draft

A business website should not stop evolving the day it launches.

We recently completed another focused update for Financial Stream LLC, strengthening two layers that matter heavily for a professional-services business: **trust and authority**.

First, the About experience was rebuilt around the questions a prospective client actually needs answered before reaching out: Who is behind the company? How do they work? What happens after the first request? What services are connected? What proof is available?

The page now brings the CEO, positioning, operating process, service structure, bilingual support and verified business proof into one coherent client journey.

Second, we are continuing to build Financial Stream as an expert resource rather than treating launch as the end of the project. The new long-form small-business bookkeeping guide includes named authorship, structured navigation, source review, a practical control framework and separately developed English and Russian versions.

The larger system is intentional:

**strategy → website → trust → expert content → ongoing search and authority development.**

Good web work is not only about how a site looks on launch day. It is about whether the digital presence can keep becoming more useful, more credible and easier to discover over time.

About Financial Stream:
https://financialstreamllc.com/about/

Expert guide:
https://financialstreamllc.com/blog/us-bookkeeping-small-business.html

ProAI Expert:
https://proai-expert.com/

If your business is stronger than its current website makes it look, that is usually a useful place to start the conversation.

## 7. Platform treatment

### Facebook

- Russian-language copy.
- Founder voice: direct, practical and slightly more personal.
- Use RU screenshots.
- Keep the commercial CTA soft; the proof itself should do most of the selling.
- After posting, respond to comments manually and move only real commercial signals into CRM.

### LinkedIn

- English-language copy.
- Professional case-update tone.
- Use EN screenshots.
- Do not copy the Facebook text line-for-line.
- Emphasize business reasoning, trust architecture and authority development.

### Telegram

Do not publish the full duplicate post immediately. If reused later, condense it into a short RU founder note with one or two screenshots and link to the deeper material.

### X / Instagram / TikTok

No dedicated adaptation is required for this package. Reuse only if it requires minimal effort and does not displace higher-value acquisition work.

## 8. Approval checklist

Before publishing:

- [ ] screenshots were captured from current production pages;
- [ ] no loading placeholders, animation states, cookie overlays or broken images are visible;
- [ ] RU carousel uses only RU page screenshots;
- [ ] EN carousel uses only EN page screenshots;
- [ ] first image is visually strong in feed preview;
- [ ] no unsupported ranking, lead, revenue or conversion claim was introduced during editing;
- [ ] links open correctly;
- [ ] Financial Stream spelling and Tetiana/Татьяна naming are correct;
- [ ] no private client data is visible;
- [ ] Facebook and LinkedIn drafts remain channel-specific, not literal translations;
- [ ] next planned post is not Financial Stream.

## 9. Final recommendation

Publish this as **one consolidated Financial Stream fresh-work proof post**. Do not split About and the flagship article into consecutive posts.

The strategic objective is to show that ProAI Expert can continue developing a real client website after launch while preserving enough feed space to introduce Alina Horb, AI/automation work, founder content and home-services work next.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
75 changes: 75 additions & 0 deletions scripts/capture-fs-social-proof.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
import { chromium } from 'playwright';
import fs from 'node:fs/promises';
import path from 'node:path';

const out = 'docs/social-media/financial-stream-2026-08-07/screenshots';
await fs.mkdir(out, { recursive: true });

const browser = await chromium.launch({ headless: true });
const page = await browser.newPage({ viewport: { width: 1440, height: 1100 }, deviceScaleFactor: 1 });

async function settle(url) {
await page.goto(url, { waitUntil: 'networkidle', timeout: 90000 });
await page.evaluate(async () => {
for (let y = 0; y < document.body.scrollHeight; y += 700) {
window.scrollTo(0, y);
await new Promise(r => setTimeout(r, 80));
}
window.scrollTo(0, 0);
});
await page.waitForTimeout(800);
}

async function captureElement(file, selector) {
const el = page.locator(selector).first();
await el.scrollIntoViewIfNeeded();
await page.waitForTimeout(250);
await el.screenshot({ path: path.join(out, file), type: 'jpeg', quality: 88 });
}

async function captureAround(file, selector, topPad = 100, height = 1000) {
const el = page.locator(selector).first();
await el.scrollIntoViewIfNeeded();
await page.waitForTimeout(250);
const box = await el.boundingBox();
if (!box) throw new Error(`No box for ${selector}`);
const fullHeight = await page.evaluate(() => document.documentElement.scrollHeight);
const y = Math.max(0, box.y - topPad);
const h = Math.min(height, fullHeight - y);
await page.screenshot({
path: path.join(out, file),
type: 'jpeg',
quality: 88,
clip: { x: 0, y, width: 1440, height: h }
});
}

const targets = [
{
locale: 'ru',
about: 'https://financialstreamllc.com/ru/about/',
article: 'https://financialstreamllc.com/ru/blog/buhgalteriya-ssha-malogo-biznesa.html',
articleModel: 'h2[id*="контур-надежного-учета"]'
},
{
locale: 'en',
about: 'https://financialstreamllc.com/about/',
article: 'https://financialstreamllc.com/blog/us-bookkeeping-small-business.html',
articleModel: '#the-reliable-books-chain-six-control-points'
}
];

for (const t of targets) {
await settle(t.about);
await captureElement(`01-about-hero-${t.locale}.jpg`, '.about-hero');
await captureElement(`02-about-how-we-work-${t.locale}.jpg`, '#how-we-work');
await captureElement(`03-about-proof-${t.locale}.jpg`, '[data-proof-strip]');

await settle(t.article);
await captureElement(`04-article-hero-${t.locale}.jpg`, '.flagship-hero');
await captureAround(`05-article-author-toc-${t.locale}.jpg`, '.flagship-author', 80, 1150);
await captureAround(`06-article-control-model-${t.locale}.jpg`, t.articleModel, 120, 1050);
}

await browser.close();
console.log('Captured Financial Stream social proof screenshots.');