Scrapp Zero | Home
const PRISM_API_KEY = 'prism_jrfvXGHXOMscbgOD7NrcMgO5K2oQ4OqZ'; const PRISM_ENDPOINT = 'https://prism.trakkr.ai'; const PRISM_TIMEOUT = 1000; // ms // Crawler patterns to optimize for (customizable) const AI_CRAWLERS = [ 'gptbot', 'chatgpt-user', 'oai-searchbot', 'claudebot', 'claude-user', 'claude-searchbot', 'perplexitybot', 'meta-externalagent', 'google-extended', 'cohere-ai', 'applebot-extended', 'amazonbot', 'baiduspider', 'bytespider' ]; addEventListener('fetch', event => { event.respondWith(handleRequest(event.request)); }); async function handleRequest(request) { const url = new URL(request.url); // Quick bypass for non-HTML requests if (url.pathname.match(/\.(js|css|png|jpg|jpeg|gif|svg|ico|woff|woff2|ttf|eot)$/i)) { return fetch(request); } // Check if AI crawler const ua = (request.headers.get('user-agent') || '').toLowerCase(); const isAICrawler = AI_CRAWLERS.some(bot => ua.includes(bot)); if (!isAICrawler) { return fetch(request); } // Detect crawler type const crawlerType = AI_CRAWLERS.find(bot => ua.includes(bot)) || 'unknown'; try { // Call Prism API with tight timeout const controller = new AbortController(); const timeoutId = setTimeout(() => controller.abort(), PRISM_TIMEOUT); const prismResponse = await fetch(PRISM_ENDPOINT, { method: 'POST', headers: { 'X-API-Key': PRISM_API_KEY, 'X-Crawler-UA': ua.substring(0, 200), 'X-Target-URL': url.toString(), 'Content-Type': 'application/json' }, body: JSON.stringify({ url: url.toString(), pathname: url.pathname, crawler: crawlerType }), signal: controller.signal }); clearTimeout(timeoutId); // Handle rate limiting if (prismResponse.status === 429) { console.log('Prism limit reached'); return fetch(request); } // Handle successful optimization if (prismResponse.ok) { const data = await prismResponse.json(); if (data.optimizedHTML) { return new Response(data.optimizedHTML, { status: 200, headers: { 'Content-Type': 'text/html;charset=UTF-8', 'X-Prism-Optimized': 'true', 'X-Prism-Cache': data.cache || 'MISS' } }); } } } catch (error) { // Timeout or error - serve original immediately console.error('Prism error:', error.message); } // Default: serve original content return fetch(request); }
Pricing

Scrapp for Communities

Empower your residents with the tools to minimize waste - at scale.

Learn how we saved a community over $30k per year →

Free Plan
A woman scanning a product with her mobile phone and a screenshot of Scrapp's result page overlayed on top of it.

Free
per household per month

For communities looking for a low lift solution

ℹ️ Answer resident questions faster
  • check
    Mobile app for your residents to learn proper recycling habits
  • check
    All your program content in one spot
  • check
    Anytime access for your residents
☺️ Better resident experience
♻️ Keep guidance current
  • check
    Update recycling rules any time, any where
  • check
    Customize content for your community's needs
  • check
    Qualified support to guide changes
Send us your waste program
Standard Plan 
A mobile phone with Scrapp's search feature loaded onto it.

from $0.03
per household per year

For communities looking for more data

Everything in Free, plus...
📊 Track your program's success
  • check
    See how many residents are using the app
  • check
    Monitor which waste topics need more education
  • check
    Export reports to share with stakeholders
🏟️ Manage your team
  • check
    Give your whole team access to update content
  • check
    Set different permission levels for staff
  • check
    Collaborate on rewards and incentive campaigns
Understand your community waste
Premium Plan 
Best Value
A phone with a notification from Scrapp overlayed on the top of it.

from $0.07
per household per year

For communities looking to maximize engagement

Everything in Standard, plus...
📣 Communicate simply, and at scale
  • check
    Send meaningful, real-time notifications
  • check
    Never miss a bin day again with reminders
  • check
    Get through to the ones who need it most
🤝 Get qualified, 1-to-1 support
  • check
    Priority support for your team
  • check
    Dedicated customer success manager
  • check
    Shareable digital assets for your comms teams
Increase engagement with your program