PageSourceSearch

https://www.ninjajump.ai/login

html ninjajump.ai collected 2026-10-09 22:56:02 UTC 17,733 bytes, 324 lines download raw bytes

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        &copy; 2026 Ninja. All rights reserved. &nbsp;|&nbsp;
316        <a href="/privacy">Privacy Policy</a> &nbsp;|&nbsp;
317        <a href="/terms">Terms of Service</a> &nbsp;|&nbsp;
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.