1<!doctype html> 2<html lang="en"> 3 <head> 4 <meta charset="UTF-8" /> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 6 <link rel="preconnect" href="https://fonts.googleapis.com"> 7 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 8 <link rel="preconnect" href="https://cdn.rebilly.com" crossorigin> 9 <link rel="dns-prefetch" href="https://cdn.rebilly.com"> 10 <!-- Rebilly Instruments only on checkout/billing. Sync version with REBILLY_INSTRUMENTS_VERSION. --> 11
11<script> 12 (function () { 13 var path = location.pathname || ""; 14 var checkout = 15 path.indexOf("/start/pricing") === 0 || 16 path.indexOf("/start/add-ons") === 0 || 17 path.indexOf("/dashboard/billing") === 0 || 18 path.indexOf("/reactivate") === 0; 19 if (!checkout) return; 20 var load = function () { 21 var preload = document.createElement("link"); 22 preload.rel = "preload"; 23 preload.href = "/rebilly-cdn/instruments/@16.133.0/core.js"; 24 preload.as = "script"; 25 preload.crossOrigin = "anonymous"; 26 document.head.appendChild(preload); 27 var s = document.createElement("script"); 28 s.src = "/rebilly-cdn/instruments/@16.133.0/core.js"; 29 s.async = true; 30 s.crossOrigin = "anonymous"; 31 s.setAttribute("data-rebilly-instruments-early", "true"); 32 document.head.appendChild(s); 33 }; 34 if (typeof requestIdleCallback === "function") { 35 requestIdleCallback(load, { timeout: 2000 }); 36 } else { 37 setTimeout(load, 2000); 38 } 39 })(); 40 </script>
40 41 <!-- Google Maps Places (used in post-onboarding "Confirm Your Business" step) --> 42 <link rel="preconnect" href="https://maps.googleapis.com" crossorigin> 43 <link rel="preconnect" href="https://maps.gstatic.com" crossorigin> 44 <link rel="dns-prefetch" href="https://maps.googleapis.com"> 45 <link rel="dns-prefetch" href="https://maps.gstatic.com"> 46 <!-- Outfit is self-hosted (public/fonts/outfit-v3.woff2) and preloaded so 47 /login and /start are not stuck on a system font. Inter stays on 48 display=swap for dashboard body copy. --> 49 <link rel="preload" href="/fonts/outfit-v3.woff2" as="font" type="font/woff2" crossorigin /> 50
50<script> 51 (function () { 52 var link = document.createElement("link"); 53 link.rel = "stylesheet"; 54 link.href = "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap"; 55 link.media = "print"; 56 link.onload = function () { 57 link.media = "all"; 58 }; 59 document.head.appendChild(link); 60 })(); 61 </script>
61 62 <noscript><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap" rel="stylesheet"></noscript> 63 <link rel="icon" type="image/png" href="/favicon.png" /> 64 <title>Get started with NinjaJump</title> 65 <link id="spa-canonical" rel="canonical" href="https://www.ninjajump.ai/start" /> 66
66<script> 67 (function () { 68 var path = location.pathname || '/start'; 69 if (path === '/' || path === '') path = '/start'; 70 var link = document.getElementById('spa-canonical'); 71 if (link) link.setAttribute('href', 'https://www.ninjajump.ai' + path); 72 })(); 73 </script>
73 74 <meta name="description" content="Ninja (ninjajump.ai) is done-for-you Google Business Profile software for local businesses in the United States. Connect Google. Ninja helps with categories, descriptions, services, photos, and keywords. Not a shipping courier, not a lead-gen agency, not NinjaOne."> 75 <meta name="author" content="Ninja" /> 76 <meta name="facebook-domain-verification" content="46x4sxv2yamn5at1tp6ivfoxskrbgv" /> 77 78 <meta property="og:type" content="website" /> 79 <meta property="og:site_name" content="NinjaJump" /> 80 <meta property="og:url" content="https://www.ninjajump.ai/start" /> 81 <meta property="og:title" content="Get started with NinjaJump"> 82 <meta property="og:description" content="Ninja (ninjajump.ai) is done-for-you Google Business Profile software for local businesses in the United States. Connect Google. Ninja helps with categories, descriptions, services, photos, and keywords. Not a shipping courier, not a lead-gen agency, not NinjaOne."> 83 <meta property="og:image" content="https://www.ninjajump.ai/api/og?title=Get%20started%20with%20NinjaJump&desc=Done-for-you%20Google%20Business%20Profile%20software%20for%20local%20US%20businesses."> 84 85 <meta name="twitter:card" content="summary_large_image" /> 86 <meta name="twitter:site" content="@ninjajumpai" /> 87 <meta name="twitter:title" content="Get started with NinjaJump"> 88 <meta name="twitter:description" content="Ninja (ninjajump.ai) is done-for-you Google Business Profile software for local businesses in the United States. Connect Google. Ninja helps with categories, descriptions, services, photos, and keywords. Not a shipping courier, not a lead-gen agency, not NinjaOne."> 89 <meta name="twitter:image" content="https://www.ninjajump.ai/api/og?title=Get%20started%20with%20NinjaJump&desc=Done-for-you%20Google%20Business%20Profile%20software%20for%20local%20US%20businesses."> 90
90<script> 91 (function () { 92 var host = location.hostname; 93 if (host === 'ninjajump.ai' || host === 'easyninja.co' || host === 'www.easyninja.co' || host === 'tryninja.ai' || host === 'www.tryninja.ai' || host === 'tryninja.co' || host === 'www.tryninja.co') { 94 location.replace('https://www.ninjajump.ai' + location.pathname + location.search + location.hash); 95 } 96 })(); 97 </script>
97 98
98<script> 99 window.__NINJA_SKIP_AD_PIXELS = /^\/(dashboard|admin|login)(\/|$)/.test(location.pathname); 100 window.__ninjaRunWhenIdle = function (fn) { 101 if (window.__NINJA_SKIP_AD_PIXELS) return; 102 var run = function () { try { fn(); } catch (e) {} }; 103 var checkout = /^\/start(\/|$)/.test(location.pathname); 104 if (typeof requestIdleCallback === "function") { 105 requestIdleCallback(run, { timeout: checkout ? 8000 : 2500 }); 106 } else { 107 setTimeout(run, checkout ? 8000 : 1); 108 } 109 }; 110 </script>
110 111 <!-- Meta Pixel â idle-deferred so /start and /start/pricing paint first. 112 IMPORTANT: Do NOT add a Meta Pixel "Base Code" tag in GTM container GTM-P6ZXD83L. --> 113
113<script> 114 window.__ninjaRunWhenIdle(function () {
vendor: 435 bytes, lines 114-123
114 115 !function(f,b,e,v,n,t,s) 116 {if(f.fbq)return;n=f.fbq=function(){n.callMethod? 117 n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 118 if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 119 n.queue=[];t=b.createElement(e);t.async=!0; 120 t.src=v;s=b.getElementsByTagName(e)[0]; 121 s.parentNode.insertBefore(t,s)}(window, document,'script', 122 'https://connect.facebook.net/en_US/fbevents.js'); 123 fbq('init', '
123972279167245727
vendor: 38 bytes, lines 123-125
123'); 124 fbq('track', 'PageView'); 125
125try { 126 var _orig = window.fbq; 127 if (typeof _orig !== 'function') return; 128 var _wrap = function() { 129 var m = arguments[0], e = arguments[1], o = arguments[3]; 130 var eid = o && o.eventID; 131 if (m === 'track' && e === 'Purchase' && !(eid && String(eid).indexOf('purchase_combined_') === 0)) { 132 console.warn('[Ninja] fbq Purchase blocked â eventID must be purchase_combined_*'); 133 return; 134 } 135 return _orig.apply(this, arguments); 136 }; 137 ['callMethod', 'queue', 'loaded', 'version', 'disablePushState', 'allowDuplicatePageViews', 'agent'].forEach(function(p) { 138 try { 139 Object.defineProperty(_wrap, p, { 140 configurable: true, 141 enumerable: true, 142 get: function() { return _orig[p]; }, 143 set: function(v) { _orig[p] = v; } 144 }); 145 } catch (e) {} 146 }); 147 _wrap.push = _wrap; 148 window.fbq = window._fbq = _wrap; 149 } catch(e) {} 150 }); 151 </script>
151 152 <!-- End Meta Pixel (noscript fallback is in <body>) --> 153 154 <!-- Google Tag Manager --> 155
155<script>window.__ninjaRunWhenIdle(function(){
vendor: 335 bytes, lines 155-159
155(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 156 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 157 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 158 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 159 })(window,document,'script','dataLayer','
159GTM-P6ZXD83L
vendor: 3 bytes, line 159
159');
159});</script>
159 160 <!-- End Google Tag Manager --> 161 162 <!-- Google Analytics 4 â native gtag. Default G-LP2M2SCT9W 163 (Ninja â tryninja.ai). VITE_GA_MEASUREMENT_ID overrides at build time. --> 164
164<script> 165 window.__ninjaRunWhenIdle(function () { 166 var GA_ID = '%VITE_GA_MEASUREMENT_ID%'; 167 if (!GA_ID || GA_ID.charAt(0) === '%' || GA_ID.indexOf('G-') !== 0) { 168 GA_ID = 'G-LP2M2SCT9W'; 169 } 170 window.__NINJA_GA_ID = GA_ID; 171 window.dataLayer = window.dataLayer || []; 172 function gtag(){dataLayer.push(arguments);} 173 window.gtag = gtag; 174 gtag('js', new Date()); 175 gtag('config', GA_ID, { send_page_view: true, allow_google_signals: true }); 176 var s = document.createElement('script'); 177 s.async = true; 178 s.src = 'https://www.googletagmanager.com/gtag/js?id=' + GA_ID; 179 document.head.appendChild(s); 180 }); 181 </script>
181 182 <!-- End Google tag (gtag.js) --> 183 184 <!-- Microsoft Clarity --> 185
185<script type="text/javascript">window.__ninjaRunWhenIdle(function(){(function(c,l,a,r,i,t,y){c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};t=l.createElement(r);t.async=1;t.src='https://www.clarity.ms/tag/'+i;y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y)})(window,document,'clarity','script','vz2ew9y1d4');});</script>
185 186 <!-- End Microsoft Clarity --> 187 188 <!-- TikTok Pixel â D3FG8CJC77UAH4NB68RG --> 189
189<script> 190 window.__ninjaRunWhenIdle(function () { 191 !function (w, d, t) { 192 w.TiktokAnalyticsObject=t;var ttq=w[t]=w[t]||[];ttq.methods=['page','track','identify','instances','debug','on','off','once','ready','alias','group','enableCookie','disableCookie'],ttq.setAndDefer=function(t,e){t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}};for(var i=0;i<ttq.methods.length;i++)ttq.setAndDefer(ttq,ttq.methods[i]);ttq.instance=function(t){for(var e=ttq._i[t]||[],n=0;n<ttq.methods.length;n++)ttq.setAndDefer(e,ttq.methods[n]);return e},ttq.load=function(e,n){var i='https://analytics.tiktok.com/i18n/pixel/events.js';ttq._i=ttq._i||{},ttq._i[e]=[],ttq._i[e]._u=i,ttq._t=ttq._t||{},ttq._t[e]=+new Date,ttq._o=ttq._o||{},ttq._o[e]=n||{};var o=document.createElement('script');o.type='text/javascript',o.async=!0;o.src=i+'?sdkid='+e+'&lib='+t;var a=document.getElementsByTagName('script')[0];a.parentNode.insertBefore(o,a)}; 193 var _ttOpts = {}; 194 try { 195 var _ttTest = new URLSearchParams(w.location.search).get('tt_test_event_code') || 196 sessionStorage.getItem('ninja_tt_test_event_code'); 197 if (_ttTest) _ttOpts.test_event_code = _ttTest; 198 } catch(e) {} 199 ttq.load('D3FG8CJC77UAH4NB68RG', _ttOpts); 200 ttq.page(); 201 }(window, document, 'ttq'); 202 }); 203 </script>
203 204 <!-- End TikTok Pixel --> 205 206 <!-- Reddit Pixel â a2_hcgs2y637maw 207 IMPORTANT: Do NOT add a Reddit Pixel base/conversion tag in GTM container GTM-P6ZXD83L. --> 208
208<script> 209 window.__ninjaRunWhenIdle(function () { 210 !function(w,d){if(!w.rdt){var p=w.rdt=function(){p.sendEvent?p.sendEvent.apply(p,arguments):p.callQueue.push(arguments)};p.callQueue=[];var t=d.createElement("script");t.src="https://www.redditstatic.com/ads/pixel.js?pixel_id=a2_hcgs2y637maw",t.async=!0;var s=d.getElementsByTagName("script")[0];s.parentNode.insertBefore(t,s)}}(window,document);rdt('init','a2_hcgs2y637maw');rdt('track','PageVisit'); 211 try { 212 var _orig = window.rdt; 213 if (typeof _orig !== 'function') return; 214 var _wrap = function() { 215 var m = arguments[0], e = arguments[1], o = arguments[2]; 216 var cid = o && o.conversionId; 217 if (m === 'track' && e === 'Purchase' && !(cid && String(cid).indexOf('purchase_combined_') === 0)) { 218 console.warn('[Ninja] rdt Purchase blocked â conversionId must be purchase_combined_*'); 219 return; 220 } 221 return _orig.apply(this, arguments); 222 }; 223 ['sendEvent', 'callQueue', 'callMethod'].forEach(function(p) { 224 try { 225 Object.defineProperty(_wrap, p, { 226 configurable: true, 227 enumerable: true, 228 get: function() { return _orig[p]; }, 229 set: function(v) { _orig[p] = v; } 230 }); 231 } catch (e) {} 232 }); 233 window.rdt = _wrap; 234 } catch(e) {} 235 }); 236 </script>
236 237 <!-- End Reddit Pixel --> 238
238<script type="application/ld+json"> 239 { 240 "@context": "https://schema.org", 241 "@type": "SoftwareApplication", 242 "name": "Ninja", 243 "url": "https://www.ninjajump.ai", 244 "description": "Ninja (ninjajump.ai) is done-for-you Google Business Profile software for local businesses in the United States. It is not a shipping courier, not a lead-generation agency, not NinjaOne, not NinjaTrader, and not a kitchen appliance.", 245 "applicationCategory": "BusinessApplication", 246 "operatingSystem": "Web", 247 "offers": { 248 "@type": "Offer", 249 "availability": "https://schema.org/InStock" 250 }, 251 "publisher": { 252 "@type": "Organization", 253 "name": "Ninja", 254 "url": "https://www.ninjajump.ai", 255 "contactPoint": { 256 "@type": "ContactPoint", 257 "contactType": "customer support", 258 "email": "[email protected]" 259 } 260 } 261 } 262 </script>
262 263
263<script type="module" crossorigin src="/assets/index-CBtU6ePt.js"></script>
263 264 <link rel="modulepreload" crossorigin href="/assets/vendor-react-BgszmIDp.js"> 265 <link rel="modulepreload" crossorigin href="/assets/vendor-utils-CDvGZzR_.js"> 266 <link rel="modulepreload" crossorigin href="/assets/vendor-lucide-Du5KxAMo.js"> 267 <link rel="modulepreload" crossorigin href="/assets/vendor-supabase-BnL7C3HY.js"> 268 <link rel="stylesheet" crossorigin href="/assets/index-BcqGT4AZ.css"> 269 </head> 270 271 <body> 272 <!-- Google Tag Manager (noscript) -->
vendor: 72 bytes, lines 272-273
272 273 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
273GTM-P6ZXD83L
vendor: 91 bytes, lines 273-275
273" 274 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 275
275<!-- End Google Tag Manager (noscript) --> 276 <!-- Meta Pixel noscript fallback --> 277 <noscript><img height="1" width="1" style="display:none" 278 src="https://www.facebook.com/tr?id=972279167245727&ev=PageView&noscript=1"/></noscript> 279 <!-- End Meta Pixel noscript --> 280 <!-- Bot-visible content: pre-rendered for crawlers that don't execute JavaScript --> 281 <noscript> 282 <style> 283 .ninja-static { font-family: system-ui, sans-serif; max-width: 900px; margin: 0 auto; padding: 40px 24px; } 284 .ninja-static h1 { font-size: 2.5rem; font-weight: 700; color: #0A0A0A; margin-bottom: 16px; } 285 .ninja-static p { font-size: 1.1rem; color: #444; line-height: 1.7; margin-bottom: 16px; } 286 .ninja-static ul { margin: 0 0 24px 24px; } 287 .ninja-static li { margin-bottom: 8px; color: #444; font-size: 1rem; } 288 .ninja-static a.cta { display: inline-block; background: #0C65FE; color: #fff; padding: 14px 32px; border-radius: 8px; text-decoration: none; font-weight: 600; margin-top: 8px; } 289 .ninja-nav { background: #0A0A0A; padding: 16px 32px; } 290 .ninja-nav span { color: #0C65FE; font-size: 24px; font-weight: 700; } 291 .ninja-footer { background: #0A0A0A; color: #888; text-align: center; padding: 24px; font-size: 0.875rem; margin-top: 60px; } 292 .ninja-footer a { color: #0C65FE; } 293 </style> 294 <div class="ninja-nav"><span>Ninja</span></div> 295 <div class="ninja-static"> 296 <h1>Get started with NinjaJump</h1> 297 <p>Ninja (ninjajump.ai) is done-for-you Google Business Profile software for local businesses in the United States. You connect Google Business Profile. Ninja helps with categories, descriptions, services, photos, and keywords.</p> 298 <p>Listing sync, Google posts, and review replies are add-ons you approve. Ninja is not a shipping courier, not a lead-gen agency, not NinjaOne, not NinjaTrader, and n
298ot a kitchen appliance.</p> 299 300 <h2 style="font-size:1.5rem;font-weight:700;margin:32px 0 12px;color:#0A0A0A">What Ninja Does</h2> 301 <ul> 302 <li><strong>Google Business Profile</strong> â Categories, descriptions, services, photos, and keywords.</li> 303 <li><strong>Listing sync add-on</strong> â Keep business details right on the directories you approve.</li> 304 <li><strong>Google posts add-on</strong> â Ninja drafts posts; you approve before they publish.</li> 305 <li><strong>Review replies add-on</strong> â Drafts you approve and send. 1â2 star replies stay human.</li> 306 </ul> 307 308 <h2 style="font-size:1.5rem;font-weight:700;margin:32px 0 12px;color:#0A0A0A">Who We Serve</h2> 309 <p>Ninja is built for local service businesses in the United States â plumbers, HVAC, dentists, contractors, and similar â that want more calls from Google Maps and Google Search without running an agency.</p> 310 311 <a href="https://www.ninjajump.ai/start" class="cta">Get Started</a> 312 <p style="margin-top:24px;font-size:0.9rem;color:#666">JavaScript is required to use the full Ninja platform. Please enable JavaScript in your browser.</p> 313 </div> 314 <div class="ninja-footer"> 315 © 2026 Ninja. All rights reserved. | 316 <a href="/privacy">Privacy Policy</a> | 317 <a href="/terms">Terms of Service</a> | 318 <a href="mailto:[email protected]">[email protected]</a> 319 </div> 320 </noscript> 321 <!-- End bot-visible content --> 322 <div id="root"></div> 323 </body> 324</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.