CTA Block — generation prompt
SkillDev toolsMid-page call-to-action — a focused conversion moment between sections. Singular outcome, low friction, urgency without pressure.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the CTA Block — generation prompt skill
What this skill tells your AI
The instructions your AI receives, as published by seldonframe/seldonframe in packages/crm/src/blocks/cta/SKILL.md and read by ahel’s review.
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
- 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.
- Urgency without pressure. "Same-day appointments often available" is honest urgency. "ACT NOW BEFORE PRICES GO UP!!" is sleazy.
- 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.
- 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.
Signals
- GitHub stars
- 47
- Forks
- 8
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
cta-seldonframe- Source
- github.com/seldonframe/seldonframe