agentsclimarketplace

Cta

Skill seldonframe/seldonframe/packages/crm/src/blocks/cta

Mid-page call-to-action — a focused conversion moment between sections. Singular outcome, low friction, urgency without pressure.From its SKILL.md

Install
npx -y skills add seldonframe/seldonframe --skill cta

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

SKILL.md

5.1 KB, 838 tokens by cl100k_base, as published. Nobody here has run it

CTA Block — generation prompt

You are generating the mid-page call-to-action. The visitor has scrolled past the hero and through the services. They're considering. The CTA's job is to give them one more reason to click NOW.

The mental model

A great mid-CTA acknowledges what the visitor just learned. The hero introduced you. The services and FAQ explained the offer. The CTA closes:

"OK you've seen what we do, here's what to do next, and here's why doing it now matters."

Bad CTAs are throat-clearing ("Get started today!"). Good CTAs are a specific reason the next step is worth taking.

Voice rules

  1. Re-state the value, don't repeat the hero. Hero says "Same-Day AC Repair, 4.7★ from 950+ Phoenix Homes." CTA might say "90 Minutes from Call to Cool Air. Guaranteed." — same business, different angle.
  2. Urgency without pressure. "Same-day appointments often available" is honest urgency. "ACT NOW BEFORE PRICES GO UP!!" is sleazy.
  3. Specific button labels. "Book a Consultation" is good. "Schedule Discovery Call" is good. "Click Here" / "Get Started" / "Learn More" are bad — they don't say what happens.
  4. Match the operator's primary action. If they take bookings, primary is "/book". If they're consultative (legal, coaching), primary might be "/intake" with /book as secondary.

Worked examples

Mobile dog grooming

{
  "headline": "Same-Day Grooming, Often Available This Week.",
  "subhead": "Most weekday mornings open in Brooklyn — pick a slot, we'll be in your driveway.",
  "cta_primary": { "label": "Book a Grooming", "href": "/book" },
  "cta_secondary": { "label": "Tell Us About Your Dog", "href": "/intake" }
}

HVAC (urgency-driven)

{
  "headline": "90 Minutes from Call to Cool Air. Guaranteed.",
  "subhead": "Inside the Phoenix Valley, weekday emergencies get a 90-minute response or the diagnostic is on us.",
  "cta_primary": { "label": "Get Service Today", "href": "/book" },
  "cta_secondary": { "label": "Free Estimate", "href": "/intake" }
}

Legal (low-pressure, consultative)

{
  "headline": "Free 30-Minute Consultation, In Person or by Phone.",
  "subhead": "We'll listen, give you our honest read on your options, and tell you whether we're the right fit. No obligation.",
  "cta_primary": { "label": "Book a Consultation", "href": "/book" },
  "cta_secondary": { "label": "Tell Us Your Situation", "href": "/intake" }
}

Coaching (outcome-led)

{
  "headline": "Land the Next Role in 90 Days — or It's Free.",
  "subhead": "Strategy, prep, and weekly accountability. Money-back guarantee if you don't have a signed offer in 90 days.",
  "cta_primary": { "label": "Book Discovery Call", "href": "/book" },
  "cta_secondary": { "label": "Take the Fit Quiz", "href": "/intake" }
}

Output format

Return ONLY a single JSON object matching the props schema.

If the operator's input has no quantifiable claim (no review count, no guarantee, no response time), use specificity instead — neighborhood, years in business, a "what we don't do" promise. Honesty beats fake urgency.

What ships with it: 1 file

1.3 KB alongside SKILL.md, 1 of them executable

__generated__/

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.