一键导入
content-machine
Create social media posts, newsletters, and marketing content calibrated to your voice and platform.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Create social media posts, newsletters, and marketing content calibrated to your voice and platform.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Design static ad creatives for social media and display advertising campaigns.
Source and evaluate candidates with job analysis, search strategies, specific candidate profiles, outreach templates, CV screening, and Gmail-based candidate communication.
Find relevant companies and leads for B2B sales with ICP definition and qualification frameworks.
Draft emails, manage calendar scheduling, prepare meeting agendas, track tasks, manage contacts, coordinate travel, and organize productivity
Create brand identity kits with color palettes, typography, logo concepts, brand naming, and brand guidelines.
Perform competitive market analysis with feature comparisons, positioning, and strategic recommendations.
| name | content-machine |
| description | Create social media posts, newsletters, and marketing content calibrated to your voice and platform. |
Create social posts, newsletters, and marketing copy that respects platform mechanics — truncation points, algorithm signals, and hook physics — not just "good writing."
Ask for 3-5 existing posts. Extract: avg sentence length, contraction usage, emoji density, POV (I/we/you), signature phrases. If none exist, ask for 2 creators they want to sound like and use webFetch to pull recent posts as voice reference.
Stories are a fundamentally different medium from feed posts. Treat them as such.
Key differences from feed:
Safe zones — mandatory:
| Zone | Range | Why |
|---|---|---|
| Top dead zone | Top 14% (~270px) | Profile name, mute, close button UI |
| Bottom dead zone | Bottom 20% (~380px) | "Send message" bar + swipe-up area |
| Safe core | 14% – 80% from top | All content must live here |
Never place any text, logo, CTA, or key visual outside the safe core.
Story formats by content type:
| Content angle | Best story format | Why |
|---|---|---|
| Pain point | Single frame, stripped to one-liner | Needs immediate gut impact — no room for buildup |
| Educational | Poll (two-option) | Polls get 3× more taps than passive stories; drives return for "reveal" |
| Feature/product | 3-frame sequence: Problem → Solution → Result | Complex message needs beats; tap-through is an algorithm signal |
| Relationship/split concept | Vertical split visual | 9:16 is naturally tall — a top/bottom split reads instantly |
| Tips list | One tip per frame (e.g., "Tip 1 de 3") | Breaks up information; each frame drives tap-through to next |
Story copy rules:
Poll stories:
Multi-frame sequences:
story3a.html, story3b.html, story3c.html for the 3 frames of Story 3.Same angle, different execution — never just resize a feed post:
| Feed post | Story adaptation |
|---|---|
| Pain point with supporting copy | Strip to the one-liner only — huge on screen, nothing else |
| Educational post with data | Turn into a poll question — let the audience engage, reveal answer next day |
| Feature walkthrough | 3-frame sequence: Frame 1 = problem, Frame 2 = solution stat, Frame 3 = result UI |
| Relationship/split concept | Vertical split (top half / bottom half) unified at the seam |
| Tips list (3 items) | 3 separate frames, one per tip, "Tip 1 de 3" format |
The skill CAN produce TikTok-format video (1080×1920, 9:16) using FFmpeg + AI-generated clips. This is not just captions — it is full video production.
API capability disclosure — mandatory before starting: When producing TikTok video, always inform the user upfront that two quality tiers exist:
Always present both options and ask which they prefer before generating any clips. Never silently call a paid external API. Never assume the user knows these options exist — they usually don't.
Production workflow:
.cjs).client/public/videos/ — served at /videos/ on the Replit domain.FFmpeg in Replit NixOS:
ls /nix/store/*ffmpeg-full*/bin/ffmpeg 2>/dev/null | head -1execFileSync('ffmpeg', args) — do NOT use shell string commands (escaping nightmare).Font handling — Inter (or any Google Font):
https://github.com/rsms/inter/releases/download/v4.0/Inter-4.0.zipzlib.inflateRawSync() — do not assume unzip or Python are available./tmp/tiktok/fonts/Inter-Black.ttf, Inter-Bold.ttf, Inter-Regular.ttf.FFmpeg filter techniques:
# Dark overlay for text readability on top of any clip
drawbox=x=0:y=0:w=iw:h=ih:color=0x000000@0.50:t=fill
# Text overlay — use execFileSync (array args), never shell strings, so UTF-8 works directly
drawtext=fontfile='/path/Inter-Black.ttf':fontsize=110:fontcolor=0xffffff:x=(w-text_w)/2:y=700:text='Tu texto aqui'
# Logo overlay — scale first, split for N scenes, then overlay each
[logoInput]scale=185:-1,split=4[logo0][logo1][logo2][logo3]
[clip_pre][logo0]overlay=x=65:y=72:format=auto[clip_out]
# Xfade transition between clips (0.4s fade)
[c0][c1]xfade=transition=fade:duration=0.4:offset=5.6[v01]
# Audio: music bed, trim to total duration, fade in/out
[musicInput]atrim=0:24.8,afade=t=in:st=0:d=1.0,afade=t=out:st=23.0:d=1.8[aout]
Scene structure that works (4-scene formula):
| Scene | Clip prompt | Text role | Duration |
|---|---|---|---|
| Hook | Person reacting to a pain point (wide shot) | Big provocative question, brand color accent | 6s |
| Pain | Close-up showing the problem (phone, account, etc.) | Short punchy lines, high contrast | 6s |
| Solution | App/product in use or aspirational moment | Feature bullets, subdued overlay (show the product) | 6s |
| CTA | Positive resolution, couple/family | Download prompt, URL badge, attribution | 8s |
Overlay composition rules:
scale=185:-1,split=N.Output settings (always use these exactly):
-c:v libx264 -preset fast -crf 18 -pix_fmt yuv420p -movflags +faststart -c:a aac -b:a 192k
Music licensing:
Canvas embedding:
echo $REPLIT_DOMAINS before setting a canvas video shape URL. Never hardcode a domain — Replit domains change between sessions.https://<domain>/videos/filename.mp4Don't say "write a hook" — pick a pattern:
| Pattern | Template | Why it works |
|---|---|---|
| Contrarian | "Everyone says X. Here's why that's wrong." | Cognitive dissonance forces resolution |
| Curiosity gap | "I tried X for 30 days. Day 17 broke me." | Open loop — brain needs closure |
| Specificity signal | "$47,212 in 90 days. Here's the exact stack." | Odd numbers read as true, round numbers read as marketing |
| Negative hook | "3 mistakes that cost me [outcome]" | Loss aversion > gain seeking |
| Callout | "If you're a [role] still doing X, read this." | Self-selection = higher-intent readers |
| Slippery slope | "It started with one Slack message." | Narrative momentum |
| Permission | "Unpopular opinion: [take]" | Pre-frames disagreement as expected |
Banned openers: "I'm excited to share," "Hey everyone," "As a [title]," "In today's fast-paced world."
One long-form piece → 8+ assets:
Key rule for Stories in the waterfall: same angle as the feed post, completely different execution. Never just crop or resize a feed post into a Story — re-author it according to the story format table above.
Build repurposing scripts in Python when batch-processing: parse markdown H2s → split into platform templates → enforce char limits programmatically.
Before delivering, verify: