AI Visibility Analysis

Analyzing your website

This usually takes about 60 seconds

  • Looking up company data
  • Checking ChatGPT index
  • Scanning for schema markup
  • Checking Gemini visibility
  • Running AI visibility analysis
  • Generating your report
Building your report0%
(function(){ var params = new URLSearchParams(window.location.search); var token = params.get(‘report_token’) || params.get(‘token’); var url = params.get(‘url’) || params.get(‘website_url’); if(url){ var d = document.getElementById(‘ut’); if(d) d.textContent = url.replace(/^https?://(www.)?/,”).replace(//$/,”); } var steps = [‘s0′,’s1′,’s2′,’s3′,’s4′,’s5’]; // Step timing in ms — spread across ~54 seconds var stepTimes = [0, 7000, 15000, 24000, 35000, 47000]; var tips = [ ‘🔎 Looking up your company in our enrichment database.’, ‘🤖 Checking how ChatGPT currently indexes your domain.’, ‘📄 Scanning your HTML for schema markup and structured data.’, ‘✨ Checking your presence and citation signals in Gemini.’, ‘📈 Running your full AI visibility analysis across all four signals.’, ‘🏆 Almost done. Building your personalized report now.’ ]; function setStep(i){ steps.forEach(function(id, idx){ var el = document.getElementById(id); if(!el) return; el.className = idx < i ? 'done' : (idx === i ? 'active' : ''); }); var tb = document.getElementById('tip-box'); if(tb && tips[i]) tb.innerHTML = '‘ + tips[i] + ‘‘; } function setProgress(pct){ var pf = document.getElementById(‘pf’); var pp = document.getElementById(‘pp’); if(pf) pf.style.width = pct + ‘%’; if(pp) pp.textContent = Math.round(pct) + ‘%’; } // Activate steps on schedule stepTimes.forEach(function(t, i){ setTimeout(function(){ setStep(i); }, t); }); // Smooth progress bar over 57 seconds (0 -> 95%) var startTime = Date.now(); var duration = 57000; var progressInterval = setInterval(function(){ var elapsed = Date.now() – startTime; var pct = Math.min(95, (elapsed / duration) * 95); setProgress(pct); if(elapsed >= duration) clearInterval(progressInterval); }, 300); // Poll for report var pollStart = 20000; var pollInterval = 5000; var maxWait = 120000; var pollCount = 0; function checkReport(){ if(!token) return; var reportUrl = ‘https://rivetline.ai/ai-visibility-score/’ + token + ‘/’; fetch(reportUrl, {method:’HEAD’}) .then(function(r){ if(r.ok && r.status === 200){ clearInterval(progressInterval); setStep(5); setProgress(100); setTimeout(function(){ window.location.href = reportUrl; }, 800); } else { scheduleNextPoll(); } }) .catch(function(){ scheduleNextPoll(); }); } function scheduleNextPoll(){ pollCount++; var elapsed = pollStart + (pollCount * pollInterval); if(elapsed < maxWait){ setTimeout(checkReport, pollInterval); } } setTimeout(checkReport, pollStart); })();