Build a wall of love from real mentions
Pull a year of positive mentions, score them against your ICP and homepage positioning, and output a fresh quotes.json for your landing page.
Prefer a walkthrough? Read the full tutorial with video
Set it up
1. Connect the Octolens MCP — add the server URL in your client and sign in. OAuth, no API key. Per-client instructions · docs
https://app.octolens.com/api/mcp/v22. Hand your agent the playbook — hit Copy below (it grabs the instruction plus the full playbook), fill in the placeholders, and paste it into your agent. Pasting the playbook instead of describing the idea makes the agent run this exact workflow rather than improvise its own.
Run the playbook below once. Brand: "{BRAND_NAME}". ICP: {ICP_DESCRIPTION}. Homepage: {HOMEPAGE_URL}. Output: {OUTPUT_FILE_PATH}.What it does
- ✓Pulls every positive, high-relevance mention of your brand from the last 12 months
- ✓Reads your homepage and uses your ICP as the rubric for what makes a quote fit
- ✓Filters out posts from your own company and employees
- ✓Picks the top 9 quotes with variety across themes
- ✓Writes a clean quotes.json you can drop into any landing page, CMS, or static site
- ✓Explains its picks in chat so you can sanity-check before you ship
Delivers: A quotes.json of your 9 best customer quotes — matched to your positioning, verifiably external, each with author, platform, permalink, and date.
Inputs
| Placeholder | Required | Description | Example |
|---|---|---|---|
| {BRAND_NAME} | Required | Your brand as tracked (or to be tracked) in Octolens | Acme |
| {ICP_DESCRIPTION} | Required | One line describing who your ideal customers are and what they care about | B2B SaaS founders at dev-tools companies who care about authentic engagement |
| {HOMEPAGE_URL} | Required | Your homepage — the agent reads it to learn your positioning and language | https://acme.com |
| {OUTPUT_FILE_PATH} | Required | Where the agent should write the quotes file | ./src/data/quotes.json |
How your agent runs it
- 1
Learn the rubric — The agent fetches your homepage and combines it with your ICP line — quotes get judged against how you actually talk about yourself.
web_fetch - 2
Confirm the keyword — Checks your brand is tracked in Octolens; adds it and pauses if not — mentions need time to accumulate.
list_keywordsadd_keyword - 3
Pull positive mentions — Fetches up to 200 positive, high-relevance mentions from the last 12 months across every platform.
list_mentions - 4
Remove self-praise — Uses your workspace profile to drop anything posted by your company or employees. When in doubt, it skips.
get_workspace - 5
Pick the top 9 — Scores each remaining quote against the rubric and picks nine with theme variety — no nine quotes about the same thing.
- 6
Write quotes.json — Writes the file to your folder and explains each pick in chat. Nothing gets committed — you review and ship.
write_file
Tools used
list_keywordsOctolens MCPCheck whether the brand is already a monitored keywordadd_keywordOctolens MCPStart monitoring the brand if it isn't tracked yetlist_mentionsOctolens MCPFetch positive, high-relevance mentions from the last 12 monthsget_workspaceOctolens MCPGet the company profile used to filter out own-company postsweb_fetchYour MCP clientRead your homepage to learn positioning (built into most MCP clients)write_fileYour MCP clientWrite quotes.json to your project folder
All 23 Octolens MCP tools are documented on the MCP page and in the docs.
The full playbook
Replace the placeholders, then paste this into your agent.
Do the following once:
1. Use these inputs as the rubric for what makes a quote a good fit:
- Our brand: {BRAND_NAME}
- Our ICP: {ICP_DESCRIPTION}
(e.g. "B2B SaaS founders and marketing leads at developer-tools
companies — they care about authentic engagement, automation, and
staying close to their community.")
- Our positioning: fetch {HOMEPAGE_URL} and read it. Study how we
describe what we do, who we're for, and the language we use.
2. Make sure the brand is tracked in Octolens:
- Use list_keywords to check whether "{BRAND_NAME}" is already a keyword.
- If it isn't, call add_keyword with the brand name, then stop here and
tell the user — mentions need time to accumulate, so they should run
this prompt again once data has built up.
- If it is, continue.
3. Use Octolens to fetch up to 200 mentions with these filters:
- keyword: "{BRAND_NAME}"
- sentiment: positive
- relevance: High
- date range: last 12 months
4. Filter out anything from your own company or its employees:
- Call get_workspace to get the company name, domain, and description.
- For each mention, skip it if the author appears to be the company
itself (e.g. an official brand handle, an account using the brand
domain) or an employee.
- When in doubt, skip. Wall-of-love quotes should clearly be from
external customers.
5. Pick the top 9 quotes. Aim for variety across themes — don't pick
nine quotes about the same thing.
6. Write a file at {OUTPUT_FILE_PATH} containing a JSON array. Each entry:
{
"quote": "...", // trimmed to 1–2 sentences, max ~280 chars
"author": "...", // display name
"handle": "...", // platform handle if available, else ""
"platform": "...", // x | reddit | linkedin | hackernews | youtube | etc.
"url": "...", // permalink to the original mention
"date": "YYYY-MM-DD"
}
7. Post a short summary in chat:
- The 9 quotes picked, each with one line on why it landed
- How many mentions were excluded as own-company or employee posts
- Anything else notable you skipped and why
8. Leave the file in the folder for human review. Do not commit or push —
the user will read the summary, sanity-check quotes.json, and ship it
themselves.
If fewer than 9 strong matches exist, write what you found, note the count,
and stop. Don't pad with weak quotes.More skills
Write copy in real customer language
Mine six months of mentions for the exact words customers use to describe you, then rewrite your page copy from that vocabulary — with receipts.
Turn mentions into Linear issues
Catch bug reports and feature requests posted in public — on Reddit, X, LinkedIn, Hacker News, GitHub — and file them as Linear issues automatically.
Surface early churn signals
Flag negative mentions with switching language or blocked workflows the day they're posted — with a drafted reply ready for human review.
Give your agents context on what happens online
API, webhooks, and MCP on every plan. If you're paying us anything, you own your data.
No credit card required · API access on all plans · Cancel anytime