Signal Harbor

Method

Proof

Pricing

Contact

See Your AI Visibility

See Your AI Visibility

We test how AI currently recommends roofing companies in your market and show exactly where your company appears — or doesn’t.

We test how AI currently recommends roofing companies in your market and show exactly where your company appears — or doesn’t.

If AI Doesn’t Recommend Your Roofing Company, You Don’t Exist.

If AI Doesn’t Recommend Your Roofing Company, You Don’t Exist.

We make roofing companies the cited answer when homeowners ask AI who to hire.

We make roofing companies the cited answer when homeowners ask AI who to hire.

See My AI Visibility

See Proof

90-Day Guarantee

90-Day Guarantee

One Partner Only

One Partner Only

Weekly AI Tests

Weekly AI Tests

Proof-Driven

Proof-Driven

See an Ouch Audit in Action

Watch how we test AI recommendations and uncover where roofing companies are invisible. (Loom walkthrough video: embedded on the right side of this section.)

Step 1

Ouch Audit™

Ouch Audit™

Step 2

Authority Build Sprint

Authority Build Sprint

Step 3

AI Proof Tracking

AI Proof Tracking

How Signal Harbor Works

Ouch Audit™ — We test how AI currently recommends roofing companies in your market and show exactly where your company is missing.

Authority Build Sprint — We implement the signals AI systems trust: service page restructuring, schema implementation, and citation cleanup.

AI Proof Tracking — We continuously test AI platforms and document when your company becomes a cited recommendation.

Proof

AI audit reports

AI audit reports

Results

Citation evidence

Citation evidence

Trust

Real client wins

Real client wins

What is an Ouch Audit™?

A hands-on AI audit that analyses your market’s visibility and provides a clear roadmap for gaining citations.

What if someone else in my city signs up first?

We only work with one roofer per market. Once a city is claimed, it’s closed.

How long until I see results?

Generally, we see AI citations appear within 30–90 days.

Zero Risk AI Visibility Guarantee

90-Day AI Visibility GuaranteeIf Signal Harbor does not secure documented AI citations for your company within 90 days, we refund 100% of your fees.No contracts.No long retainers.If we fail, you don’t pay.(This card should use a dark navy background for standout.)

ENGAGEMENT OPTIONS

ENGAGEMENT OPTIONS

Choose your starting point

Choose your starting point

Ouch Audit™

$1,500

One-time diagnostic

Find out where you stand in AI search

Beat competitors first

See My AI Visibility

Authority Build Sprint

$3,000 per month

Service page rewrites

JSON-LD schema implementation

N.A.P. citation cleanup ● 90-Day Guarantee ● Most Popular ● Backed by our 90-Day AI Visibility Guarantee

Start Sprint

Strategic Signal Partner

$5,000–$8,000 per month

Ongoing AI authority maintenance

Territory protection

Partnership-based

Apply for Partnership

Signal Harbor

AI Authority Infrastructure for roofing companies

Navigation

Method

Proof

Pricing

Contact

Start an Audit

Email

import * as React from "react" export default function PricingStyles() { React.useEffect(function () { if (document.getElementById("pricing-css")) return var s = document.createElement("style") s.id = "pricing-css" s.textContent = ".pc{border:1px solid #E2E8F0;border-radius:20px;padding:24px;min-height:420px;display:flex;flex-direction:column;background:#fff;color:#0B1220;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial}" + ".pc-rec{background:#0B1B3A;color:#fff;border:1px solid rgba(255,255,255,.12);border-radius:22px;padding:26px;min-height:440px;box-shadow:0 22px 60px rgba(11,27,58,.25)}" + ".pc-badge{display:inline-flex;align-self:flex-start;margin-bottom:10px;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:800;letter-spacing:.02em;background:rgba(0,194,255,.18);border:1px solid rgba(0,194,255,.35);color:#EAFBFF}" + ".pc-title{margin:2px 0 10px;font:800 18px/1.2 Sora,Inter,system-ui}" + ".pc-priceRow{display:flex;gap:10px;flex-wrap:wrap;align-items:baseline;margin-bottom:10px}" + ".pc-price{font-size:34px;line-height:1;font-weight:900;letter-spacing:-.02em}" + ".pc-sub{font-size:13px;opacity:.85;font-weight:600}" + ".pc-desc{margin:8px 0 16px;font-size:14px;line-height:1.5;opacity:.92}" + ".pc-ul{list-style:none;padding:0;margin:6px 0 18px;display:flex;flex-direction:column;gap:10px;flex-grow:1}" + ".pc-li{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.35;opacity:.95}" + ".pc-ck{width:18px;height:18px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;margin-top:1px;flex:0 0 18px;font-size:12px;font-weight:900;background:rgba(11,27,58,.06);color:#0B1B3A;border:1px solid rgba(11,27,58,.1)}" + ".pc-rec .pc-ck{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.18)}" + ".pc-btn{width:100%;padding:12px 14px;border-radius:14px;font-size:14px;font-weight:800;cursor:pointer;border:1px solid #E2E8F0;background:transparent;color:#0B1220;transition:transform .15s ease}" + ".pc-rec .pc-btn{font-weight:900;border:1px solid rgba(255,255,255,.22);background:#fff;color:#0B1B3A}" + ".pricing-wrap{background:#fff;width:100%;padding:96px 24px;box-sizing:border-box;color:#0B1220;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial}" + ".pricing-inner{max-width:1120px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:16px}" + ".pricing-eye{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#00C2FF;font-weight:700}" + ".pricing-h2{margin:0;font-size:40px;line-height:1.1;text-align:center;font-family:Sora,Inter,system-ui;font-weight:800;letter-spacing:-.02em}" + ".pricing-grid{width:100%;margin-top:28px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch}" + ".pricing-elev{transform:translateY(-10px)}" + ".pricing-foot{margin-top:18px;font-size:13px;text-align:center;color:#475569;font-weight:600}" + "@media (max-width:980px){.pricing-grid{grid-template-columns:1fr}.pricing-elev{transform:translateY(0)}}" document.head.appendChild(s) }, []) return null } import * as React from "react" export default function PricingStyles() { React.useEffect(function () { if (document.getElementById("shp-css")) return var s = document.createElement("style") s.id = "shp-css" s.textContent = "#pricing{background:#fff;padding:96px 24px;box-sizing:border-box;color:#0B1220;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial}" + "#pricing .in{max-width:1120px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:16px}" + "#pricing .ey{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#00C2FF;font-weight:700}" + "#pricing .hd{margin:0;font-size:40px;line-height:1.1;text-align:center;font-family:Sora,Inter,system-ui;font-weight:800;letter-spacing:-.02em}" + "#pricing .g{width:100%;margin-top:28px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch}" + "#pricing .c{border:1px solid #E2E8F0;border-radius:20px;padding:24px;min-height:420px;display:flex;flex-direction:column;background:#fff}" + "#pricing .r{background:#0B1B3A;color:#fff;border:1px solid rgba(255,255,255,.12);border-radius:22px;padding:26px;min-height:440px;box-shadow:0 22px 60px rgba(11,27,58,.25);transform:translateY(-10px)}" + "#pricing .b{display:inline-flex;align-self:flex-start;margin-bottom:10px;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:800;letter-spacing:.02em;background:rgba(0,194,255,.18);border:1px solid rgba(0,194,255,.35);color:#EAFBFF}" + "#pricing .t{margin:2px 0 10px;font:800 18px/1.2 Sora,Inter,system-ui}" + "#pricing .pr{display:flex;gap:10px;flex-wrap:wrap;align-items:baseline;margin-bottom:10px}" + "#pricing .p{font-size:34px;line-height:1;font-weight:900;letter-spacing:-.02em}" + "#pricing .ps{font-size:13px;opacity:.85;font-weight:600}" + "#pricing .d{margin:8px 0 16px;font-size:14px;line-height:1.5;opacity:.92}" + "#pricing ul{list-style:none;padding:0;margin:6px 0 18px;display:flex;flex-direction:column;gap:10px;flex-grow:1}" + "#pricing li{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.35;opacity:.95}" + "#pricing .k{width:18px;height:18px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;margin-top:1px;flex:0 0 18px;font-size:12px;font-weight:900;background:rgba(11,27,58,.06);color:#0B1B3A;border:1px solid rgba(11,27,58,.1)}" + "#pricing .r .k{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.18)}" + "#pricing a{width:100%;text-decoration:none}" + "#pricing .btn{width:100%;padding:12px 14px;border-radius:14px;font-size:14px;font-weight:800;cursor:pointer;border:1px solid #E2E8F0;background:transparent;color:#0B1220}" + "#pricing .r .btn{font-weight:900;border:1px solid rgba(255,255,255,.22);background:#fff;color:#0B1B3A}" + "#pricing .ft{margin-top:18px;font-size:13px;text-align:center;color:#475569;font-weight:600}" + "@media (max-width:980px){#pricing .g{grid-template-columns:1fr}#pricing .r{transform:translateY(0)}}" document.head.appendChild(s) }, []) return null } import * as React from "react" export default function PricingSection() { const cards = [ { title:"Ouch Audit™", price:"$1,500", sub:"One-time", desc:"Find out exactly where you stand in AI search — before your competitors do.", cta:"Start My Audit →", cls:"c", bul:[ "Live AI prompt testing across 5 platforms", "Competitor citation map", "Full written audit report", "Loom walkthrough video", "30-day action plan" ] }, { title:"Authority Build Sprint", price:"$3,000", sub:"per month | 3–6 months", desc:"Full implementation of AI authority signals for your roofing company.", cta:"Start Sprint →", cls:"c r", badge:"Most Popular", bul:[ "Everything in the Audit", "Service page rewrites (AI-optimized structure)", "JSON-LD schema injection + verification", "N.A.P. consistency audit + fixes", "Review velocity system setup", "Monthly AI re-testing + reporting", "90-Day AI Visibility Guarantee" ] }, { title:"Strategic Signal Partner", price:"$5,000–$8,000+", sub:"per month", desc:"Ongoing AI authority maintenance and territory protection.", cta:"Apply for Partnership →", cls:"c", bul:[ "Everything in Authority Build Sprint", "Weekly AI citation monitoring", "Review velocity management", "Territory exclusivity lock", "Quarterly authority audits", "Dedicated point of contact" ] } ] return (
ENGAGEMENT OPTIONS

Choose your starting point

{cards.map((c,i)=>(
{c.badge &&
{c.badge}
}
{c.title}
{c.price} {c.sub}

{c.desc}

    {c.bul.map((x,j)=>(
  • ✓ {x}
  • ))}
))}
One partner per territory. Once a market is taken, it's closed.
) }