social-media-setup – Marketing & SEO skill for AI agents
Social media register: platforms and handles, post captions and hashtags, publishing cadence, approval status and profile checklist. Use for social account setup.
Install the social-media-setup skill with one command
Pick the tool you use, copy the command and paste it in your terminal. The skill lands in that tool's skills folder and is ready in your next session.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/social-media-setup-a61cf.tgz | tar xz -C ~/.claude/skills
Call it in Claude Code: /social-media-setup – then describe the task you want done.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/social-media-setup-a61cf.tgz | tar xz -C ~/.codex/skills
Call it in Codex: $social-media-setup – then describe the task you want done.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/social-media-setup-a61cf.tgz | tar xz -C ~/.hermes/skills
Call it in Hermes Agent: /social-media-setup – then describe the task you want done.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/social-media-setup-a61cf.tgz | tar xz -C ~/.deepcode/skills
Call it in DeepSeek: /social-media-setup – then describe the task you want done.
SKILL.md content
Social Media Setup
What it is: the business on the channels it can actually sustain - Facebook Page,
LinkedIn company page, TikTok - with each profile completed, each channel's format and
limits recorded, and a content cadence small enough to keep.
Overview
Works out the smallest useful channel set for the business in front of it, then builds it
only when asked. The default output is a short recommendation, not a content calendar. The
channel and content register - CSV, SQL DDL, JSON Schema, Notion mapping - is produced on
request, from one field list so the four cannot drift apart.
Layer: Layer 6: Engage. Fits: Starter stage. Table code: n/a.
The rule this table exists to enforce: a channel and a post are different rows, and a
Row Type discriminator keeps them apart. A channel is a permanent configuration; a post
is a dated event that is published once. Merging them means the channel settings change
every time something is posted, and the profile checklist can never be marked complete
against a post.
The second rule: the cadence has to be one the business can keep with the people it
has. A daily plan on one founder is a plan that stops in week three, and an abandoned
account is worse than no account. Two posts a week beats five a week for one month.
When to Use This Skill
- Facebook, Facebook Page, LinkedIn, LinkedIn company page, TikTok
- social media setup, profiles, bios, avatars, cover images
- "we are not on social media", "we should be on Instagram"
- content calendar, posting schedule, what to post
- "nobody engages with our posts"
- brand voice on social, tone of voice
- social profiles for recruitment, or for a local customer base
Do not use it for: the link page every bio points to (linktree-link-hub), the
presentation (presentation-deck), a paid advertising campaign, or a content marketing or
guest-posting plan (seo-directory-backlinks for the citation side).
How It Works
Follow the shared execution contract. The module-specific rules below define only domain fields, decisions, calculations, and safety constraints.
Step 1 - Identify intent
Read the request and pick the intent before asking anything.
- "set up" / "start" / "we are not on" -> artifacts wanted; go to Step 2.
- "we have them, nothing happens" / "fix" -> something exists; capture the current state,
then Step 2.
- "which platform should we be on" / "review" -> a decision question, not a build.
- "audit" / "check" -> a check, not a build.
Ask only if this is the highest-value missing fact; otherwise proceed without an opener:
> Q: What is the business called, and what does one line of it actually do?
Step 2 - Ask only what is missing
Treat ambiguous replies as unanswered and ask which explicit option the user means. Record unknown values as Unknown; Unknown is not zero. A record must not be Done when a required check fails.
Skip anything already answered. Ask the rest one at a time, and stop as soon as the
remaining answers would not change the channel set.
- Audience - Who are the customers - local walk-ins, online, business buyers, job
candidates, or a mix? / Where are they already - which platform do they use?
- Current - Are any accounts open, even dormant? / Who has the logins, and are they
personal accounts or business pages? / Any customer or staff photos already used?
- Capacity - Who will post, and how many hours a week are genuinely available? / Is
there anyone who can respond to a comment within an hour?
- Content - Is there anything to post - finished work, stock, the team, an opening,
a tip, an offer? / Can photos be taken on a phone at the premises? / Is anyone willing
to be on camera?
- Purpose - What is the channel for - enquiries, recruitment, credibility, community,
or advertising? / Is there a website to send people to yet?
Never invent an answer. Handles, follower counts, engagement rates, post volumes, platform
names, account URLs and metrics the user has not supplied are Unknown. A follower count
is a measurement, never an estimate.
Step 3 - Hold the internal context
module: social-media-setup
intent: null # set up | fix | review | report | import
scale: null # Starter | Growth | Scale, only if the answer changes it
areas:
"Audience": null
"Current": null
"Capacity": null
"Content": null
"Purpose": null
requested_outputs: []
confirmed_facts: []
open_questions: []Step 4 - Recommend the smallest workflow
Build an already requested artifact without asking again. For advice-only requests, give a short recommendation and offer the relevant artifact.
Illustrative approach, to adapt to confirmed audience/capacity: A small channel set. A Facebook Page for a local customer base
and a LinkedIn company page for credibility and recruitment - both low-effort, both
tolerate text and photos, both work with a phone camera. Add TikTok only if there is
someone who will genuinely make video, because an empty TikTok is worse than none. Three
posts a week: one finished job, one behind the scenes, one useful tip. Every bio points at
the same one page.
Why this one: The channel that decides the outcome is the one with people who will
reply. Facebook Page and LinkedIn company page need a phone and an hour a week; TikTok
needs a person who will be filmed. Starting with the two that can be sustained, and adding
the third when there is someone to run it, is the difference between a channel and a
dormant profile.
Workflow: Audience and platform confirmed → One canonical bio written → Profiles
completed - name, category, address, hours, contact → Avatars and covers cut from the
master mark → Website and link page connected → Three-post weekly pattern agreed →
Approval and response ownership set → First fortnight scheduled → Comments answered within
the hour → Reviewed at 30 days against the stated purpose
Step 5 - Build only on request
Once the user asks for it, derive the fields from the confirmed context and emit the
requested artifacts. For machine-readable text, keep prose outside the data; for files,
provide a usable link. Report material validation failures or limitations separately.
**A selected Notion output is rendered by notion-manual-import, so route the
Notion step there.** When the user selects Notion, hand that step to
@notion-manual-import: it holds the CSV, the property
mapping, the import steps and the verification checklist, and it renders the Field
Reference below instead of defining a table of its own. Do not restate the mapping
here and do not improvise the import steps. Manual CSV and mapping outputs need no
connection. For requested workspace changes, follow the shared contract: verify actual
tool access and the target before writing. A user saying "connected" is not tool evidence.
Never ask for a Notion password or token.
Row ID,Row Type,Platform,Account Handle,Account Type,Audience,Posting Cadence,Post Format,Post Caption,Hashtag Set,Media Asset,Link Destination,Publish Date,Publish Time,Call To Action,Approval Status,Owner,Brand Voice,Profile Checklist Complete,Review Date,Status,Notes
,Post,Facebook Page,Unknown,Business page,Local customers within the service area,Three posts a week,"Photo or short video with a caption","Behind-the-scenes, a finished job, or one useful tip - one idea per post",Not used,"One photo per post, shot on a phone",https://example.com/,2026-09-27,,Reply within one hour,Not required,Unknown,Plain and direct,false,2026-10-27,Planned,Example row - replace every value before use.-- Engine assumption: PostgreSQL. For another engine use the engine's auto-increment
-- equivalent and keep the rest portable.
CREATE TABLE social_record (
row_id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
row_type VARCHAR(50) NOT NULL,
platform VARCHAR(100) NOT NULL,
account_handle VARCHAR(255),
account_type VARCHAR(100) NOT NULL,
audience VARCHAR(100) NOT NULL,
posting_cadence VARCHAR(100),
post_format VARCHAR(100),
post_caption TEXT,
hashtag_set VARCHAR(255),
media_asset VARCHAR(255),
link_destination TEXT,
publish_date DATE,
publish_time VARCHAR(100),
call_to_action VARCHAR(100),
approval_status VARCHAR(100) NOT NULL,
owner VARCHAR(255),
brand_voice VARCHAR(100),
profile_checklist_complete BOOLEAN,
review_date DATE,
status VARCHAR(50) NOT NULL,
notes TEXT,
created_at TIMESTAMP DEFAULT NOW(),
updated_at TIMESTAMP DEFAULT NOW(),
CONSTRAINT social_row_type CHECK (row_type IN ('Channel','Post','Comment','Bio','Media')),
CONSTRAINT social_approval_status CHECK (approval_status IN ('Not required','Draft','In review','Approved','Rejected','Published')),
CONSTRAINT social_checklist_applies CHECK (row_type <> 'Channel' OR profile_checklist_complete IS NOT NULL)
);
CREATE INDEX idx_social_record_row_type ON social_record (row_type);
CREATE INDEX idx_social_record_platform ON soc… (full content is in the download package)
Related skills
- social-metadata-hardening – Fix social sharing previews so URLs render as rich cards on Facebook, LinkedIn…
- social-orchestrator – Orquestrador unificado de canais sociais — coordena Instagram, Telegram e WhatsApp em um…
- social-proof-architect – Select and place genuine testimonials, case studies, and other proof when an audience…
- speed – Launch RSVP speed reader for text
- subject-line-psychologist – Draft email subject lines and notification copy matched to audience and sequence…
- tax-register – Tax register: sales and purchase tax, withholding deducted and received, net payable…
- telegram-channel-ads – Vet and price ad posts in Telegram channels: reach benchmarks by size, topic and…
- tools-page-seo-optimizer – Framework-agnostic SEO workflow for any site with multiple tool, product, or feature…