PageSourceSearch

https://onrep.ai/repscan

html onrep.ai collected 2026-10-05 14:05:43 UTC 15,154 bytes, 285 lines download raw bytes

1<!DOCTYPE html>
2<html lang="de">
3
4<head>
5  <meta charset="UTF-8" />
6  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7  <meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1" />
8  <title>OnRep AI: Empfohlen von KI, auf Autopilot</title>
9  <meta name="description"
10    content="OnRep AI zeigt dir, wann ChatGPT, Claude und Co. dich empfehlen, und sorgt automatisch dafür, dass es öfter passiert." />
11  <meta name="author" content="OnRep AI" />
12
13  <!-- OG-Texte angeglichen an die Helmet-Copy der Landing (src/pages/LandingPage.tsx).
14       Das OG-Bild ist ein festes 1200x630-Asset; ein Austausch bleibt reiner Dateitausch. -->
15  <meta property="og:title" content="OnRep AI: Empfohlen von KI, auf Autopilot" />
16  <meta property="og:description"
17    content="OnRep AI zeigt dir, wann ChatGPT, Claude und Co. dich empfehlen, und sorgt automatisch dafür, dass es öfter passiert." />
18  <meta property="og:type" content="website" />
19  <meta property="og:url" content="https://onrep.ai/" />
20  <meta property="og:site_name" content="OnRep AI" />
21  <meta property="og:image" content="https://onrep.ai/og/onrep-og-1200x630.png" />
22  <meta property="og:image:width" content="1200" />
23  <meta property="og:image:height" content="630" />
24  <meta property="og:image:type" content="image/png" />
25  <meta property="og:image:alt" content="Empfohlen von KI, auf Autopilot." />
26
27  <meta name="twitter:card" content="summary_large_image" />
28  <meta name="twitter:title" content="OnRep AI: Empfohlen von KI, auf Autopilot" />
29  <meta name="twitter:description"
30    content="OnRep AI zeigt dir, wann ChatGPT, Claude und Co. dich empfehlen, und sorgt automatisch dafür, dass es öfter passiert." />
31  <meta name="twitter:image" content="https://onrep.ai/og/onrep-og-1200x630.png" />
32  <meta name="twitter:image:alt" content="Empfohlen von KI, auf Autopilot." />
33
34  <!-- Prevent white first-paint on slow mobile; real UI is rendered by React. -->
35  <style>
36    html,
37    body {
38      /* Ein Dunkelton fuer Boot, Loader und App-Shell (Lade-Audit 21.08.). */
39      background: #0d0d13;
40    }
41  </style>
42
43  <link rel="icon" href="/favicon-32.png" type="image/png" sizes="32x32">
44  <link rel="icon" href="/favicon.png" type="image/png" sizes="512x512">
45  <link rel="apple-touch-icon" href="/apple-touch-icon.png" sizes="180x180">
46
47  <!-- Fraunces, Archivo und JetBrains Mono liegen seit 23.09.2026 selbst in
48       /fonts (vorher Google Fonts): kein Umweg über Google-CSS vor dem ersten
49       Text und keine Besucher-IP an Google ohne Einwilligung. Die Regeln
50       stehen im <style> unten, damit document.fonts.load() sie beim Parse
51       kennt. Auf Landing, Funnel und Onboarding lädt das Skript die Schriften der ersten
52       Ansicht sofort mit, statt erst beim Rendern. -->
53  <!-- Mitwachsen auf großen Bildschirmen: setzt die Wurzel-Schriftgröße (1rem) über einer
54       Innenfläche von 1728 x 1000 Punkten, höchstens 1,5-fach, ohne Browser-Zoom aufzuheben.
55       Begründung, Zoom-Erkennung und bekannte Fehllesungen: src/lib/rootScale.ts. -->
56  
56<script>
57    (function () {
58      var root = document.documentElement;
59      var densities = [1, 1.25, 1.5, 1.75, 2, 2.25, 2.5, 3, 3.5, 4];
60      var ua = navigator.userAgent;
61      var safari = /^((?!chrome|chromium|android|crios|fxios|edg).)*safari/i.test(ua);
62      // Nur die Stufen der eigenen Engine, damit keine fremde Stufe knapp ins Fenster passt.
63      var levels = safari
64        ? [0.5, 0.63, 0.75, 0.85, 1.15, 1.25, 1.5, 1.75, 2, 2.5, 3]
65        : /firefox/i.test(ua)
66          ? [0.3, 0.5, 0.67, 0.8, 0.9, 1.1, 1.2, 1.33, 1.5, 1.7, 2, 2.4, 3, 4, 5]
67          : [0.25, 1 / 3, 0.5, 2 / 3, 0.75, 0.8, 0.9, 1.1, 1.25, 1.5, 1.75, 2, 2.5, 3, 4, 5];
68      // 0,5 %: Chrome meldet devicePixelRatio fast exakt; 1 % ließ 2,2 / 1,25 = 1,76 als
69      // Dichte 1,75 durch (110 % als 125 % gelesen, Review 26.09.).
70      var near = function (list, value) {
71        for (var i = 0; i < list.length; i++) {
72          if (Math.abs(value / list[i] - 1) < 0.005) return list[i];
73        }
74        return 0;
75      };
76      var browserZoom = function () {
77        var ow = window.outerWidth;
78        var oh = window.outerHeight;
79        var iw = window.innerWidth;
80        var ih = window.innerHeight;
81        var dpr = window.devicePixelRatio || 1;
82        // Füllt die Seite das Fenster genau (keine Seitenleiste), ist kein Zoom aktiv; das gilt
83        // auch bei einer Bildschirmdichte, die nicht in der Liste steht (ChromeOS, eigene
84        // Skalierung). Mit Seitenleiste wächst die Seite dort nicht mit; Rauszoomen erkennt das
85        // Skript dort nicht (siehe src/lib/rootScale.ts).
86        if (Math.abs(iw - ow) <= 2 && (!oh || ih <= oh + 2)) return 1;
87        var zoom = 0;
88        var candidates = levels.concat([1]);
89        for (var i = 0; i < candidates.length; i++) {
90          var z = candidates[i];
91          if (!safari && !near(densities, dpr / z)) continue;
92          // 2 Punkte Spielraum für abgerundete innerWidth/innerHeight.
93          if (iw * z > ow + 2 || (oh && ih * z > oh + 2)) continue;
94          if (z > zoom) zoom = z;
95        }
96        return zoom || 1;
97      };
98      var apply = function () {
99        var iw = window.innerWidth;
100        var bz = browserZoom();
101        var w = iw * bz;
102        var h = window.innerHeight * bz;
103        var scale = w < 1024 ? 1 : Math.min(1.5, Math.max(1, Math.min(w / 1728, h / 1000)));
104        var breakpoint = iw >= 1536 ? 1536 : iw >= 1280 ? 1280 : 1024;
105        scale = Math.max(1, Math.min(scale, iw / breakpoint));
106        scale = Math.floor(scale * 100) / 100;
107        root.style.fontSize = scale === 1 ? '' : Math.round(scale * 100) + '%';
108      };
109      apply();
110      window.addEventListener('resize', apply);
111      document.addEventListener('visibilitychange', apply);
112    })();
113  </script>
113
114
115  
115<script>
116    (function () {
117      var path = location.pathname;
118      if (!/^\/(repscan|ki-scan|ki-analyse|wettbewerber|kundenfragen|onboarding)?\/?$/.test(path)) return;
119      ['fraunces-latin', 'fraunces-italic-latin', 'archivo-latin', 'jetbrains-mono-latin'].forEach(function (name) {
120        var link = document.createElement('link');
121        link.rel = 'preload'; link.as = 'font'; link.type = 'font/woff2'; link.crossOrigin = 'anonymous';
122        link.href = '/fonts/' + name + '.woff2';
123        document.head.appendChild(link);
124      });
125    })();
126  </script>
126
127
128  <!-- Fonts - Local only for maximum performance -->
129  <link rel="preload" href="/fonts/inter-400.woff2" as="font" type="font/woff2" crossorigin>
130  <link rel="preload" href="/fonts/inter-600.woff2" as="font" type="font/woff2" crossorigin>
131  
131<script>
132    // Die Funnel-Seiten nutzen Space Grotesk nicht; dort kostete das Vorladen
133    // nur Bandbreite vor dem ersten Bild (05.10.2026). Inter bleibt fuer den
134    // Cookie-Banner, der auch dort in der ersten Ansicht steht.
135    if (!/^\/(repscan|ki-scan|ki-analyse)\/?$/.test(location.pathname)) {
136      (function () {
137        var link = document.createElement('link');
138        link.rel = 'preload'; link.as = 'font'; link.type = 'font/woff2'; link.crossOrigin = 'anonymous';
139        link.href = '/fonts/space-grotesk-600.woff2';
140        document.head.appendChild(link);
141      })();
142    }
143  </script>
143
144  <style>
145    @font-face {
146      font-family: 'Inter';
147      font-style: normal;
148      font-weight: 400;
149      font-display: swap;
150      src: url('/fonts/inter-400.woff2') format('woff2');
151    }
152
153    @font-face {
154      font-family: 'Inter';
155      font-style: normal;
156      font-weight: 500;
157      font-display: swap;
158      src: url('/fonts/inter-500.woff2') format('woff2');
159    }
160
161    @font-face {
162      font-family: 'Inter';
163      font-style: normal;
164      font-weight: 600;
165      font-display: swap;
166      src: url('/fonts/inter-600.woff2') format('woff2');
167    }
168
169    @font-face {
170      font-family: 'Poppins';
171      font-style: normal;
172      font-weight: 600;
173      font-display: swap;
174      src: url('/fonts/poppins-600.woff2') format('woff2');
175    }
176
177    @font-face {
178      font-family: 'Poppins';
179      font-style: normal;
180      font-weight: 700;
181      font-display: swap;
182      src: url('/fonts/poppins-700.woff2') format('woff2');
183    }
184
185    @font-face {
186      font-family: 'Space Grotesk';
187      font-style: normal;
188      font-weight: 600;
189      font-display: swap;
190      src: url('/fonts/space-grotesk-600.woff2') format('woff2');
191    }
192
193    @font-face {
194      font-family: 'Space Grotesk';
195      font-style: normal;
196      font-weight: 700;
197      font-display: swap;
198      src: url('/fonts/space-grotesk-700.woff2') format('woff2');
199    }
200
201    @font-face {
202      font-family: 'IBM Plex Sans';
203      font-style: normal;
204      font-weight: 400;
205      font-display: swap;
206      src: url('/fonts/ibm-plex-sans-400.woff2') format('woff2');
207    }
208
209    @font-face {
210      font-family: 'IBM Plex Sans';
211      font-style: normal;
212      font-weight: 500;
213      font-display: swap;
214      src: url('/fonts/ibm-plex-sans-500.woff2') format('woff2');
215    }
216
217    @font-face {
218      font-family: 'IBM Plex Sans';
219      font-style: normal;
220      font-weight: 600;
221      font-display: swap;
222      src: url('/fonts/ibm-plex-sans-600.woff2') format('woff2');
223    }
224
225    @font-face { font-family: 'Fraunces'; font-style: italic; font-weight: 300 700; font-display: swap; src: url('/fonts/fraunces-italic-latin-ext.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
226    @font-face { font-family: 'Fraunces'; font-style: italic; font-weight: 300 700; font-display: swap; src: url('/fonts/fraunces-italic-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
227    @font-face { font-family: 'Fraunces'; font-style: normal; font-weight: 300 700; font-display: swap; src: url('/fonts/fraunces-latin-ext.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
228    @font-face { font-family: 'Fraunces'; font-style: normal; font-weight: 300 700; font-display: swap; src: url('/fonts/fraunces-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
229    @font-face { font-family: 'Archivo'; font-style: normal; font-weight: 400 700; font-display: swap; src: url('/fonts/archivo-latin-ext.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
230    @font-face { font-family: 'Archivo'; font-style: normal; font-weight: 400 700; font-display: swap; src: url('/fonts/archivo-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
231    @font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 400 700; font-display: swap; src: url('/fonts/jetbrains-mono-latin-ext.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1D
231BF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
232    @font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 400 700; font-display: swap; src: url('/fonts/jetbrains-mono-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
233  </style>
234
235  <link rel="manifest" href="/manifest.json">
236
237  <!-- Theme Color für Mobile Browser -->
238  <meta name="theme-color" content="#8B5CF6">
239  <meta name="msapplication-TileColor" content="#8B5CF6">
240  <meta name="msapplication-config" content="/browserconfig.xml">
241  
241<script type="module" crossorigin src="/assets/main-DhU5eqLE.js"></script>
241
242  <link rel="modulepreload" crossorigin href="/assets/vendor-react-aN6Dlr_y.js">
243  <link rel="modulepreload" crossorigin href="/assets/vendor-utils-BkLtITBR.js">
244  <link rel="modulepreload" crossorigin href="/assets/vendor-supabase-BRnnG8cy.js">
245  <link rel="modulepreload" crossorigin href="/assets/vendor-icons-DRcc6iTl.js">
246  
246<script>(function(){if(!/^\/(repscan|ki-scan|ki-analyse)\/?$/.test(location.pathname))return;[["modulepreload","assets/RepScan-CCG2ODTO.js"],["modulepreload","assets/GlobalProgress-DArR471M.js"],["modulepreload","assets/PlatIcon-CYqOuFZD.js"],["modulepreload","assets/funnelTerminal-BeAuBEOO.js"],["modulepreload","assets/LoadErrorState-a4Iiw8GN.js"],["modulepreload","assets/PricingSection-C_31X_tS.js"],["modulepreload","assets/planData-Ch7aysZN.js"],["modulepreload","assets/useFunnelRun-VNAJNjLO.js"],["modulepreload","assets/functionError-BcEvMsBr.js"],["preload","assets/RepScan-DyZwgsuj.css"],["preload","assets/PlatIcon-m3oYcQKQ.css"],["preload","assets/PricingSection-FfgTr1i6.css"]].forEach(function(l){var e=document.createElement('link');e.rel=l[0];if(l[0]==='preload')e.as='style';e.crossOrigin='';e.href='/'+l[1];document.head.appendChild(e);});})();</script>
246
247    <link rel="stylesheet" crossorigin href="/assets/main-DnxeSytT.css">
248</head>
249
250<body>
251  <!-- SEO: Strukturierter Inhalt für Crawler im initialen HTML -->
252  <noscript>
253    <h1>Empfohlen von KI, auf Autopilot.</h1>
254    <p>OnRep AI zeigt dir, wann ChatGPT, Claude und Co. dich empfehlen, und sorgt automatisch dafür, dass es öfter passiert.</p>
255  </noscript>
256  <!-- Structured Data für SEO -->
257  
257<script type="application/ld+json">
258    {
259      "@context": "https://schema.org",
260      "@type": "WebSite",
261      "name": "OnRep AI",
262      "url": "https://onrep.ai",
263      "description": "OnRep AI zeigt dir, wann ChatGPT, Claude und Co. dich empfehlen, und sorgt automatisch dafür, dass es öfter passiert.",
264      "potentialAction": {
265        "@type": "SearchAction",
266        "target": "https://onrep.ai/?q={search_term_string}",
267        "query-input": "required name=search_term_string"
268      }
269    }
270    </script>
270
271  
271<script type="application/ld+json">
272    {
273      "@context": "https://schema.org",
274      "@type": "Organization",
275      "name": "OnRep AI",
276      "url": "https://onrep.ai",
277      "logo": "https://onrep.ai/lovable-uploads/onrep-logo-192.png",
278      "description": "OnRep AI zeigt dir, wann ChatGPT, Claude und Co. dich empfehlen, und sorgt automatisch dafür, dass es öfter passiert.",
279      "sameAs": []
280    }
281    </script>
281
282  <div id="root"></div>
283</body>
284
285</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.