
Instagram Audience Voice
Harvest comment language, objections, and purchase-intent signals from a short Instagram post list to sharpen captions, ads, and scripts.
Overview
Instagram Audience Voice is an agent skill most often used in Grow (also Idea audience, Validate scope) that mines Instagram comments on a shortlisted post set to extract pain points, objections, FAQs, and purchase-inten
Install
npx skills add https://github.com/postplusai/postplus-skills --skill instagram-audience-voiceWhat is this skill?
- Mines shortlisted posts or Reels comments for pain points, objections, FAQs, and purchase intent
- Primary hosted collection key: instagram-comments with normalization and theme clustering
- Requires a bounded entry: benchmark shortlist, manual URLs, or small competitor top-post set—no huge blind scrape
- Five-step workflow: collect → normalize → cluster by theme/intent → filter signal vs noise → actionable voice summary
- Follows postplus-shared public rules plus actor-selection, normalized-schema, and tool-contract references
- Recommended workflow has 5 numbered steps from collect through actionable summary
- Entry requirement: no huge blind post set—shortlist or manual URLs first
Adoption & trust: 1 installs on skills.sh; 8 GitHub stars; 2/3 security scanners passed (skills.sh audits); trending (+100% hot-view momentum).
What problem does it solve?
You have Instagram posts that perform but do not know which comment phrases reveal objections, FAQs, or buying intent for your next creative.
Who is it for?
Indie marketers with 5–20 target posts or Reels who already use PostPlus Instagram research skills and need comment themes fast.
Skip if: Accounts with no shortlisted URLs, teams wanting full-profile scrapes without benchmark prep, or workflows unrelated to Instagram comment text.
When should I use this skill?
User wants to understand Instagram comments, extract pain points, objections, FAQs, purchase intent, or compare reactions across a shortlisted post or Reel set.
What do I get? / Deliverables
You get a normalized, clustered audience-voice summary with actionable wording for captions, ads, and scripts—without scraping an unbounded post list.
- Normalized comment dataset for the shortlisted posts
- Theme and intent clusters separating high-signal vs low-signal reactions
- Actionable audience-voice summary for ads, captions, or scripts
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Grow is where audience language turns into repeatable messaging; mining comments is primary shelf work for content and lifecycle iteration. Content subphase covers voice-of-customer extraction that feeds posts, reels hooks, and creative briefs—not broad competitor SEO alone.
Where it fits
You study competitor top posts and mine comments to learn how buyers describe the problem in their own words.
You test positioning variants by comparing objection clusters across two shortlisted Reels before locking landing copy.
You turn high-signal FAQ phrases from comments into the next carousel caption and short-form script hooks.
How it compares
Use this comment-mining skill after a benchmark shortlist—not as a replacement for instagram-content-benchmark or generic social listening dashboards.
Common Questions / FAQ
Who is instagram-audience-voice for?
It is for solo builders and growth-focused creators using PostPlus who want comment-derived voice-of-audience data from specific Instagram posts or Reels.
When should I use instagram-audience-voice?
Use it in Grow content planning to refresh hooks, in Idea audience research when studying competitor comment threads, or in Validate scope when testing message fit—after you have a benchmark shortlist, manual URLs, or a small top-post set, not a massive blind grid.
Is instagram-audience-voice safe to install?
It implies hosted collection and network-backed research; review the Security Audits panel on this Prism page and respect Instagram terms, rate limits, and data handling in postplus-shared rules before running collections.
Workflow Chain
Requires first: instagram content benchmark
SKILL.md
READMESKILL.md - Instagram Audience Voice
# Instagram Audience Voice Follow shared public skill rules in: - `postplus-shared` public skill rules Use this skill when the user wants to: - understand what people say in Instagram comments - extract pain points, objections, and FAQs - find real language for ads, captions, or scripts - compare audience reaction across shortlisted content Read these references before implementation: - `skills/20-research/instagram-references/actor-selection.md` - `skills/20-research/instagram-references/normalized-schema.md` - `skills/20-research/instagram-references/tool-contracts.md` ## Primary Hosted Collection Key - `instagram-comments` ## Entry Requirement Do not start from a huge blind set of posts. Prefer one of these first: - benchmark shortlist from `instagram-content-benchmark` - manually provided post URLs - a small set of competitor top posts ## Recommended Workflow 1. collect comments from a shortlisted set of posts or reels 2. normalize comments 3. cluster comments by theme and intent 4. separate high-signal language from low-signal reactions 5. summarize actionable audience voice ## Public Skill Execution Contract - keep shortlisted post inputs, raw comment datasets, normalized outputs, and clustering caches under `<work-folder>/.postplus/instagram-audience-voice/` - keep only final user-facing summaries or reusable copy notes outside `.postplus/` - start from a bounded first pass: - a small shortlist of posts - one or two themes - comments only after the shortlist exists - if PostPlus Cloud service is unavailable, unauthorized, or returns a stable network error, stop immediately instead of switching to ad hoc shell glue ## Good Output Return: - top comment themes - repeated questions - objections or skepticism - purchase or trial intent signals - exact phrases worth reusing in copy - comments that suggest unmet needs ## Suggested Buckets - praise - objection - question - purchase-intent - request-for-details - low-signal / meme ## Handoff Escalate to campaign or content strategy workflows when: - the user wants to turn audience language into hooks, offers, or creative briefs import { mkdirSync, readFileSync, realpathSync, writeFileSync, } from "node:fs"; import { dirname } from "node:path"; import { fileURLToPath, pathToFileURL } from "node:url"; export function parseArgs(argv) { const args = {}; for (let index = 0; index < argv.length; index += 1) { const current = argv[index]; if (!current.startsWith("--")) { continue; } const key = current.slice(2); const next = argv[index + 1]; if (!next || next.startsWith("--")) { args[key] = true; continue; } args[key] = next; index += 1; } return args; } export function readJson(filePath) { return JSON.parse(readFileSync(filePath, "utf8")); } export function writeJson(filePath, value) { mkdirSync(dirname(filePath), { recursive: true }); writeFileSync(filePath, `${JSON.stringify(value, null, 2)}\n`); } export function printOrWriteJson(outputPath, value) { if (outputPath) { writeJson(outputPath, value); console.log(`Saved result to ${outputPath}`); return; } console.log(JSON.stringify(value, null, 2)); } export function isMainModule(importMetaUrl) { if (!process.argv[1]) { return false; } try { return ( realpathSync(process.argv[1]) === realpathSync(fileURLToPath(importMetaUrl)) ); } catch { return importMetaUrl === pathToFileURL(process.argv[1]).href; } } #!/usr/bin/env node import fs from 'node:fs'; import path from 'node:path'; import { requestBytes } from './network_runtime.mjs'; import { runHostedCapabilityEnvelopeRequest, runHost