🧠 HeyCMO
Features

Free Interactive Tools

25 free, no-signup marketing tools at /tools/<slug> — top-of-funnel SEO + GEO bait that doubles as in-product utilities.

Free Interactive Tools

HeyCMO ships 25 free, no-signup interactive marketing tools at /tools/<slug>. They're a top-of-funnel SEO + GEO play: each tool targets a specific, high-intent keyword (instagram caption generator, cac calculator, meta description generator, robots txt generator, json ld validator) and ranks on its own, indexed page with full schema markup.

The tools are also the lowest-friction way to show what HeyCMO does. The free generator handles one post at a time; the paid product runs the whole engine.

Configuration

PropertyValue
Phase1.3 (first 10) + 4 (next 10) + 4.1 (GEO batch of 5)
Registryapps/web/src/data/tools.ts
Index pageapps/web/src/pages/ToolsIndex.tsx (/tools)
Detail pageapps/web/src/pages/ToolPage.tsx (/tools/<slug>)
AuthNone — public, no signup, no rate limit beyond reasonable use
SitemapAll 25 included automatically

Why these exist

Three jobs in one:

  1. SEO + GEO bait — Every tool targets a keyword from the research-doc keyword list, with ~500–2,500/mo search volume and KD ≤20. The tool page is a self-contained SEO landing page (H1, intro, use cases, FAQ schema, related tools).
  2. Product proof — Visitors who use the free tool see the same engine the paid product wraps. The CTA at the bottom of every tool page is the same: "Tired of doing this every day? HeyCMO does all of it for $99/mo."
  3. In-product utility — The same tools are linked from inside the dashboard so paid customers don't need a tab-switch when they want a one-off generator.

URL structure

/tools                                  ← index, grouped by category
/tools/instagram-caption-generator      ← detail + interactive form
/tools/cac-calculator
/tools/meta-description-generator
/tools/ai-citation-score
/tools/json-ld-validator
... (25 total)

Slug is stable — used in URLs, JSON-LD @id, and the related-tools cross-link graph.

The 25 tools

SlugH1Subhead
instagram-caption-generatorInstagram Caption GeneratorFive on-brand caption variants in under 10 seconds. Free. No signup.
linkedin-post-idea-generatorLinkedIn Post Idea GeneratorSeven post ideas tuned to your role and audience. Five seconds. No signup.
email-subject-line-testerEmail Subject Line TesterScore your subject line on length, urgency, spam triggers, and predicted open rate.
roi-calculator-marketingMarketing ROI CalculatorGet true ROI, ROAS, and break-even spend from three numbers.
hashtag-generator-instagramInstagram Hashtag GeneratorGet 30 niche-relevant hashtags split across high, medium, and low competition.
cac-calculatorCAC CalculatorCompute Customer Acquisition Cost, LTV:CAC ratio, and payback period in seconds.
tweet-thread-generatorTweet Thread GeneratorOne idea in. One 7-tweet thread out. Hook, build, payoff, CTA. Free.
meta-description-generatorMeta Description Generator5 SEO meta descriptions per page. Length-perfect, keyword-front-loaded, CTR-tuned.
cold-email-subject-testerCold Email Subject Line TesterB2B-tuned subject line scorer. Length, spam triggers, personalization, predicted open rate.
content-calendar-templateContent Calendar Template30 days × 4 channels of pre-filled content slots. Customize, download, ship.
blog-post-outline-generatorBlog Post Outline GeneratorSeven sections with H2/H3 hierarchy and CTA placements. Five seconds.
youtube-title-generatorYouTube Title GeneratorSeven CTR-optimized titles per video. 60-character cap. Free.
pricing-page-headline-testerPricing Page Headline TesterScore your pricing headline on clarity, framing, and conversion patterns.
press-release-generatorPress Release GeneratorAP-style press release. Headline, dateline, lead, body, quotes, boilerplate. 30 seconds.
churn-rate-calculatorChurn Rate CalculatorMonthly + annual churn from start/end customer counts. Plus projected revenue impact.
website-copy-rewriterWebsite Copy RewriterPaste your homepage / product copy. Get a tighter rewrite optimized for conversion.
persona-generator-icpICP Persona GeneratorSales-ready Ideal Customer Profile. Pain points, channels, buying triggers, objections. Free.
newsletter-subject-line-testerNewsletter Subject Line TesterScore your newsletter subject line. Tuned for warm-list opens, not cold.
social-media-bio-generatorSocial Media Bio GeneratorBio variants for X, LinkedIn, Instagram, TikTok — sized to each platform.
lead-magnet-idea-generatorLead Magnet Idea GeneratorSeven lead magnet ideas tuned to your audience. Picked, not generic.
ai-citation-scoreAI Citation Score EstimatorHow likely are ChatGPT, Perplexity, and Google AI to cite your page? Free GEO score in 5 seconds.
robots-txt-generatorRobots.txt GeneratorBuild a robots.txt with explicit AI-bot rules in 30 seconds. Allow / block GPTBot, ClaudeBot, PerplexityBot, GoogleExtended.
json-ld-validatorJSON-LD Schema ValidatorPaste your JSON-LD. Get Schema.org validation + AI-engine compatibility in 2 seconds.
faq-schema-generatorFAQ Schema GeneratorPaste your Q&A pairs. Get Schema.org-valid FAQPage JSON-LD ready to paste into your <head>.
hreflang-generatorHreflang Tag GeneratorMulti-language URLs in. Valid hreflang link tags out — self-reference + x-default included. 30 seconds.

Tool categories

Each tool has a category field used for grouping on the index:

  • text-generator — generates copy (captions, post ideas, outlines, bios)
  • analyzer — scores existing copy (subject testers, headline testers)
  • calculator — numerical outputs (CAC, ROI, churn)
  • formatter — structured templates (content calendar)

Tool definition shape

From apps/web/src/data/tools.ts:

interface ToolDefinition {
  // ─── Identity / SEO ───
  slug: string                     // stable, used in URLs
  keyword: string                  // primary target keyword
  category: ToolCategory
  estVolume: number                // monthly search volume estimate
  estKD: number                    // keyword difficulty (0-100)
  relevance: number                // 1-5, how core to HeyCMO's value prop

  metaTitle: string                // <title>
  metaDescription: string          // <meta name="description">
  h1: string
  subhead: string
  intro: string                    // multi-paragraph intro copy

  // ─── Form ───
  inputs: Array<
    | { kind: 'text'; ... }
    | { kind: 'textarea'; ... }
    | { kind: 'select'; options: [...] }
    | { kind: 'number'; min/max/step }
  >
  outputSchema: string             // human-readable description of output

  // ─── Below-the-fold SEO content ───
  useCases: Array<{ title; description }>      // ≥3
  faq: Array<{ question; answer }>             // ≥6, rendered as FAQPage JSON-LD
  relatedSlugs: string[]                       // 3 cross-links
  ctaText: string                              // bottom-of-page paid-product CTA
}

How the page renders

ToolPage.tsx reads the definition by slug and renders:

  1. Hero — H1 + subhead + the interactive form.
  2. Output panel — appears alongside the form once submitted; results stream in.
  3. Intro copy — multi-paragraph context. Real prose, not boilerplate.
  4. Use cases — three audience-specific scenarios.
  5. FAQ — 6+ Q&As, rendered server-side and emitted as FAQPage JSON-LD.
  6. Related tools — three cross-links from relatedSlugs.
  7. CTA — paid-product pitch tuned to the tool's job.

Each page emits:

  • <title> from metaTitle
  • <meta name="description"> from metaDescription
  • og:title, og:description, og:image (auto-generated branded OG image)
  • <script type="application/ld+json"> with WebPage, SoftwareApplication, and FAQPage schemas

Sitemap inclusion

The sitemap generator iterates TOOLS from the registry, so adding a tool to the registry adds it to the sitemap and the search index without any other plumbing. Same for the /tools index — categories rebuild from whatever's currently in TOOLS.

Adding a new tool

  1. Add a new entry to TOOLS[] in apps/web/src/data/tools.ts. Use an existing entry as a template — the keyword research is the hard part, the file shape is mechanical.
  2. Pick a category, write the intro / use-cases / FAQ. Aim for ≥1,500 words of unique copy on the page (the FAQ usually carries half).
  3. Wire the actual generator logic. Most tools call an internal endpoint that runs a small LLM prompt; calculators are pure client-side math.
  4. Add the slug to 2–3 existing tools' relatedSlugs so the cross-link graph stays connected.
  5. Ship. The sitemap and index page pick it up automatically.

Helper API

// Look up by slug (used by ToolPage's route loader)
export function getToolBySlug(slug: string): ToolDefinition | undefined

// Pull N related tools (used by the bottom-of-page recirculation)
export function relatedTools(slug: string, n: number = 3): ToolDefinition[]

Source files

  • apps/web/src/data/tools.ts — the registry (single source of truth for all 25 tools)
  • apps/web/src/pages/ToolsIndex.tsx/tools (categorized listing)
  • apps/web/src/pages/ToolPage.tsx/tools/<slug> (renderer + form runtime)
  • Sitemap generator — iterates TOOLS to emit /tools/<slug> URLs automatically

On this page