Save 20% Off Any Other Pest Control Company's Written Estimate for Termites!
Arden Termite and Pest Control    Call (916) 338-4700 for a free estimate.
Serving Sacramento, Placer, El Dorado and Yolo Counties. Guaranteed results.







<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="description" content="Zap Termite & Pest Control: Pest control services in Northern California. 24/7 service in Livermore, Pleasanton, Napa, and more."> <meta name="keywords" content="pest control Rio Linda, termite control, rodent removal, bed bug extermination"> <title>Zap Termite & Pest Control</title> <link rel="icon" type="image/png" href="/images/logo.png"> <script src="https://cdn.tailwindcss.com"></script> <script src="https://cdn.jsdelivr.net/npm/@nlpjs/core@latest/dist/nlp-core-browser.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/@nlpjs/nlp-util@latest/dist/nlp-util-browser.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/@nlpjs/basic@latest/dist/nlp-basic-browser.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@latest/dist/tf.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/@tensorflow-models/mobilenet"></script> <style> /* Dropdown styling */ details summary { cursor: pointer; display: inline-flex; align-items: center; color: #ef4444; font-weight: 600; } details summary:hover { color: #f87171; } details ul { max-height: 200px; overflow-y: auto; background: #1f2937; border: 1px solid #4b5563; border-radius: 0.5rem; padding: 1rem; margin-top: 0.5rem; color: white; } details ul li { margin-bottom: 0.25rem; } /* Chatbot styling */ #chatbot { position: fixed; bottom: 1rem; right: 1rem; width: 300px; background: #1f2937; border: 1px solid #4b5563; border-radius: 0.5rem; display: none; flex-direction: column; } #chatbot-header { background: #ef4444; color: white; padding: 0.5rem; border-radius: 0.5rem 0.5rem 0 0; text-align: center; font-weight: 600; } #chatbot-messages { max-height: 200px; overflow-y: auto; padding: 0.5rem; color: white; } #chatbot-input { width: 100%; padding: 0.5rem; border: none; background: #374151; color: white; } #chatbot-toggle { position: fixed; bottom: 1rem; right: 1rem; background: #ef4444; color: white; padding: 0.5rem 1rem; border-radius: 0.5rem; cursor: pointer; } #chatbot-toggle:hover { background: #f87171; } /* Icon styling */ .icon-link { display: inline-flex; align-items: center; margin: 0 0.5rem; } .icon-link svg { width: 24px; height: 24px; background: linear-gradient(to right, #ef4444, #991b1b); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3); border-radius: 4px; padding: 4px; fill: white; stroke: white; stroke-width: 1; transition: all 0.2s ease; } .icon-link:hover svg { background: linear-gradient(to right, #f87171, #b91c1c); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.4); transform: scale(1.1); } /* 3D Button styling */ .portal-button { background: linear-gradient(to right, #ef4444, #991b1b); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3), 0 2px 4px rgba(0, 0, 0, 0.2); transition: all 0.1s ease; } .portal-button:hover { background: linear-gradient(to right, #f87171, #b91c1c); box-shadow: 0 6px 12px rgba(0, 0, 0, 0.4); } .portal-button:active { transform: translateY(2px); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); } /* Image preview styling */ #image-preview { max-width: 100%; max-height: 100px; margin: 0.5rem 0; object-fit: contain; /* Maintain aspect ratio without distortion */ } </style> </head> <body class="font-sans bg-black text-white"> <!-- Hero Section --> <header class="text-center py-4 relative" style="background-image: url('/images/hero.jpg'); background-size: cover; background-position: center;"> <div class="container mx-auto px-4 pt-64"> <div class="space-x-4"> <a href="https://zappest.pestconnect.com/login" target="_blank" class="portal-button text-white px-6 py-3 rounded-lg">Customer Portal</a> </div> </div> </header> <!-- Contact Section --> <section id="contact" class="py-16"> <div class="container mx-auto px-4 text-center"> <div class="mt-8 text-lg"> <p> <span class="icon-link"> <svg aria-label="Call Zap Termite" class="w-6 h-6" viewBox="0 0 24 24" fill="currentColor" stroke="currentColor"> <path d="M22 2H2v20h20V2zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zm4-8h-2v2h-2v-2H8V8h4V6h2v2h2v2z"/> </svg> </span> <a id="phone-number" href="tel:800-414-1515" class="text-red-500 hover:text-red-400">800-414-1515</a> </p> <p> <span class="icon-link"> <svg aria-label="Email Zap Termite" class="w-6 h-6" viewBox="0 0 24 24" fill="currentColor" stroke="currentColor"> <path d="M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 2l-8 5-8-5h16zm0 12H4V8l8 5 8-5v10z"/> </svg> </span> <a href="mailto:[email protected]" class="text-red-500 hover:text-red-400">[email protected]</a> </p> <details> <summary> <span class="icon-link"> <svg aria-label="Service Areas" class="w-6 h-6" viewBox="0 0 24 24" fill="currentColor" stroke="currentColor"> <path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z"/> </svg> </span> Service Areas </summary> <ul> <li>Acampo</li> <li>American Canyon</li> <li>Antelope</li> <li>Antioch</li> <li>Applegate</li> <li>Auburn</li> <li>Bay Point</li> <li>Benicia</li> <li>Brentwood</li> <li>Browns Valley</li> <li>Cameron Park</li> <li>Carmichael</li> <li>Ceres</li> <li>Citrus Heights</li> <li>Clarksburg</li> <li>Clayton</li> <li>Clements</li> <li>Colfax</li> <li>Concord</li> <li>Cool</li> <li>Danville</li> <li>Davis</li> <li>Diamond Springs</li> <li>Dixon</li> <li>Dublin</li> <li>El Dorado</li> <li>El Dorado Hills</li> <li>Elk Grove</li> <li>Elverta</li> <li>Fairfield</li> <li>Fair Oaks</li> <li>Folsom</li> <li>Galt</li> <li>Garden Valley</li> <li>Granite Bay</li> <li>Grass Valley</li> <li>Greenwood</li> <li>Herald</li> <li>Isleton</li> <li>Lafayette</li> <li>Lathrop</li> <li>Lincoln</li> <li>Livermore</li> <li>Lockeford</li> <li>Lodi</li> <li>Loomis</li> <li>Manteca</li> <li>Martinez</li> <li>Marysville</li> <li>Meadow Vista</li> <li>Modesto</li> <li>Napa</li> <li>Newcastle</li> <li>North Highlands</li> <li>Olivehurst</li> <li>Orangevale</li> <li>Penn Valley</li> <li>Pittsburg</li> <li>Placerville</li> <li>Pleasant Hill</li> <li>Pleasanton</li> <li>Plumas Lake</li> <li>Rancho Cordova</li> <li>Rio Linda</li> <li>Rio Vista</li> <li>Rocklin</li> <li>Roseville</li> <li>Sacramento</li> <li>San Ramon</li> <li>Shingle Springs</li> <li>Stockton</li> <li>Suisun City</li> <li>Tracy</li> <li>Turlock</li> <li>Vacaville</li> <li>Vallejo</li> <li>Valley Springs</li> <li>Walnut Creek</li> <li>Walnut Grove</li> <li>West Sacramento</li> <li>Winters</li> <li>Woodland</li> <li>Yuba City</li> </ul> </details> <div class="mt-4"> <a href="https://x.com/zap747" target="_blank" class="icon-link"> <svg aria-label="Follow on X" class="w-6 h-6" viewBox="0 0 24 24" fill="currentColor" stroke="currentColor"> <path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"/> </svg> </a> <a href="https://maps.app.goo.gl/CpGA9ovzt2RFUJjT8" target="_blank" class="icon-link"> <svg aria-label="Google Business Profile" class="w-6 h-6" viewBox="0 0 24 24" fill="currentColor" stroke="currentColor"> <path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5S10.62 6.5 12 6.5s2.5 1.12 2.5 2.5S13.38 11.5 12 11.5z"/> <path d="M12 6.5l-3 3h3v3h3l-3-3v-3z"/> </svg> </a> </div> </div> <!-- Compact Contact Form --> <div class="mt-8 max-w-md mx-auto"> <h3 class="text-xl font-bold mb-4">Get in Touch</h3> <form action="https://formspree.io/f/xpwljznj" method="POST" class="space-y-2"> <input type="text" name="name" placeholder="Name" class="w-full p-2 border border-gray-700 bg-black text-white rounded-lg text-sm" required> <input type="email" name="email" placeholder="Email" class="w-full p-2 border border-gray-700 bg-black text-white rounded-lg text-sm" required> <textarea name="message" placeholder="Pest Issue" class="w-full p-2 border border-gray-700 bg-black text-white rounded-lg text-sm" rows="2" required></textarea> <button type="submit" class="bg-red-600 text-white px-4 py-2 rounded-lg hover:bg-red-700 text-sm">Submit</button> </form> </div> <!-- Service Area Map --> <iframe src="https://www.google.com/maps/embed?pb=!1m14!1m12!1m3!1d150000!2d-121.494704!3d38.581573!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!5e0!3m2!1sen!2sus!4v1722537600000" width="100%" height="300" style="border:0;" allowfullscreen="" loading="lazy" class="mt-8"></iframe> </div> </section> <!-- Footer --> <footer class="bg-black text-white text-center py-4"> <div class="container mx-auto px-4"> <p>&copy; 2025 Zap Termite & Pest Control</p> </div> </footer> <script> // Zip code to phone number mapping const phoneMap = { '94558': '707-969-0747', '94503': '707-969-0747', '94533': '707-969-0747', '94590': '707-969-0747', '95620': '707-969-0747', '95945': '530-377-0747', '95682': '530-377-0747', '95603': '530-377-0747', '95901': '530-377-0747', '95695': '530-377-0747', '95350': '209-989-1747', '95202': '209-989-1747', '95376': '209-989-1747', '95240': '209-989-1747', '95632': '209-989-1747', '95673': '916-999-9747', '95814': '916-999-9747', '95758': '916-999-9747', '95630': '916-999-9747', '94566': '916-999-9747', '94568': '916-999-9747', '94598': '916-999-9747', '94509': '916-999-9747' }; // Chatbot elements const chatbot = document.getElementById('chatbot'); const chatbotMessages = document.getElementById('chatbot-messages'); const chatbotInput = document.getElementById('chatbot-input'); const chatbotToggle = document.getElementById('chatbot-toggle'); const uploadButton = document.getElementById('upload-button'); const imageUpload = document.getElementById('image-upload'); const imagePreview = document.getElementById('image-preview'); // Conversation state let conversationState = { lastPest: null, userName: localStorage.getItem('userName') || null, userEmail: localStorage.getItem('userEmail') || null }; // NLP setup let nlp; async function initializeNLP() { nlp = new window.Nlpjs.Nlp(); nlp.addLanguage('en'); // Intents nlp.addDocument('en', 'termite problem', 'pest.termite'); nlp.addDocument('en', 'ants in house', 'pest.ant'); nlp.addDocument('en', 'cockroach issue', 'pest.cockroach'); nlp.addDocument('en', 'bed bugs', 'pest.bedbug'); nlp.addDocument('en', 'rat or mouse', 'pest.rodent'); nlp.addDocument('en', 'book appointment', 'book'); nlp.addDocument('en', 'schedule service', 'book'); nlp.addDocument('en', 'contact us', 'contact'); nlp.addDocument('en', 'who are you', 'info'); // Responses nlp.addAnswer('en', 'pest.termite', 'Termites can be a serious issue! Drywood termites infest wood above ground, leaving sawdust-like frass. Want a free inspection? Book at https://zappest.pestconnect.com/login or describe the signs.'); nlp.addAnswer('en', 'pest.ant', 'Ants, like carpenter ants, can damage wood. We use targeted baits to eliminate colonies. Seen trails or nests? Book an inspection: https://zappest.pestconnect.com/login'); nlp.addAnswer('en', 'pest.cockroach', 'Cockroaches are nocturnal and spread allergens. Baiting is best for long-term control. Spot any at night? Book now: https://zappest.pestconnect.com/login'); nlp.addAnswer('en', 'pest.bedbug', 'Bed bugs hide in mattress seams and cause itchy bites. Heat treatments are effective. Found small brown bugs? Book at https://zappest.pestconnect.com/login'); nlp.addAnswer('en', 'pest.rodent', 'Rats and mice spread diseases and enter through tiny gaps. We seal entry points and use baits. Hearing noises or seeing droppings? Book at https://zappest.pestconnect.com/login'); nlp.addAnswer('en', 'book', 'Ready to zap those pests? Book now at our Customer Portal: https://zappest.pestconnect.com/login'); nlp.addAnswer('en', 'contact', 'Reach us at 800-414-1515, [email protected], or book via https://zappest.pestconnect.com/login'); nlp.addAnswer('en', 'info', 'We’re Zap Termite & Pest Control, serving Northern California with 24/7 service. Ask about pests or book at https://zappest.pestconnect.com/login'); await nlp.train(); } // Image classification setup let mobilenetModel; async function loadMobileNet() { try { mobilenetModel = await mobilenet.load(); console.log('MobileNet loaded'); } catch (error) { console.error('Error loading MobileNet:', error); } } // Initialize NLP and MobileNet Promise.all([initializeNLP(), loadMobileNet()]).then(() => { console.log('NLP and MobileNet initialized'); }); // Add message to chatbot function addChatbotMessage(message) { const msg = document.createElement('div'); msg.textContent = message; msg.style.marginBottom = '0.5rem'; chatbotMessages.appendChild(msg); chatbotMessages.scrollTop = chatbotMessages.scrollHeight; } // Dynamic phone number and chatbot personalization fetch('https://ipapi.co/json/', { mode: 'cors' }) .then(response => response.json()) .then(data => { const zip = data.postal || ''; const phone = phoneMap[zip] || '800-414-1515'; const phoneLink = document.getElementById('phone-number'); phoneLink.href = `tel:${phone}`; phoneLink.textContent = phone; const city = data.city || 'your area'; addChatbotMessage(`Welcome to Zap Termite & Pest Control! Got pests in ${city}? Ask about our services, upload a pest photo, or book via our portal!`); }) .catch(() => { const phoneLink = document.getElementById('phone-number'); phoneLink.href = 'tel:800-414-1515'; phoneLink.textContent = '800-414-1515'; addChatbotMessage('Welcome to Zap Termite & Pest Control! Got pests? Ask about our services, upload a pest photo, or book via our portal!'); }); // Toggle chatbot chatbotToggle.addEventListener('click', () => { chatbot.style.display = chatbot.style.display === 'none' ? 'flex' : 'none'; chatbotToggle.style.display = chatbot.style.display === 'none' ? 'block' : 'none'; if (chatbot.style.display === 'flex') { chatbotInput.focus(); } }); // Handle image upload uploadButton.addEventListener('click', () => { imageUpload.click(); }); imageUpload.addEventListener('change', async (e) => { const file = e.target.files[0]; if (file) { const reader = new FileReader(); reader.onload = async (event) => { imagePreview.src = event.target.result; imagePreview.style.display = 'block'; addChatbotMessage('You uploaded an image. Analyzing...'); try { const img = new Image(); img.src = event.target.result; img.onload = async () => { const predictions = await mobilenetModel.classify(img); const topPrediction = predictions[0]; let pestResponse = 'Couldn’t identify the pest clearly. Try describing it or book an inspection: https://zappest.pestconnect.com/login'; if (topPrediction.className.toLowerCase().includes('insect') || topPrediction.className.toLowerCase().includes('bug')) { if (topPrediction.className.toLowerCase().includes('ant')) { pestResponse = 'Looks like an ant! Carpenter ants can damage wood. We use targeted baits. Book an inspection: https://zappest.pestconnect.com/login'; conversationState.lastPest = 'ant'; } else if (topPrediction.className.toLowerCase().includes('cockroach')) { pestResponse = 'Possibly a cockroach. They’re nocturnal and spread allergens. Baiting is best. Book now: https://zappest.pestconnect.com/login'; conversationState.lastPest = 'cockroach'; } else { pestResponse = 'Looks like an insect! Could be ants, cockroaches, or similar. Describe it or book an inspection: https://zappest.pestconnect.com/login'; conversationState.lastPest = 'insect'; } } addChatbotMessage(pestResponse); }; } catch (error) { addChatbotMessage('Error analyzing image. Please describe the pest or book an inspection: https://zappest.pestconnect.com/login'); } }; reader.readAsDataURL(file); } }); // Chatbot input handling chatbotInput.addEventListener('keypress', async (e) => { if (e.key === 'Enter' && chatbotInput.value.trim()) { const userMessage = chatbotInput.value.trim(); addChatbotMessage(`You: ${userMessage}`); if (!conversationState.userName && userMessage.toLowerCase().includes('my name is')) { const nameMatch = userMessage.match(/my name is (\w+)/i); if (nameMatch) { conversationState.userName = nameMatch[1]; localStorage.setItem('userName', conversationState.userName); addChatbotMessage(`Nice to meet you, ${conversationState.userName}! How can I help with your pest issue?`); } } else if (!conversationState.userEmail && userMessage.includes('@')) { conversationState.userEmail = userMessage.match(/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/)?.[0]; if (conversationState.userEmail) { localStorage.setItem('userEmail', conversationState.userEmail); addChatbotMessage(`Got your email, ${conversationState.userName || 'friend'}! Let’s tackle that pest problem. What’s the issue?`); } } else { const response = await nlp.process('en', userMessage); let reply = response.answer || 'I can help with pest questions or booking! Try asking about termites, rodents, or scheduling a service.'; if (response.intent === 'pest.termite') conversationState.lastPest = 'termite'; else if (response.intent === 'pest.ant') conversationState.lastPest = 'ant'; else if (response.intent === 'pest.cockroach') conversationState.lastPest = 'cockroach'; else if (response.intent === 'pest.bedbug') conversationState.lastPest = 'bedbug'; else if (response.intent === 'pest.rodent') conversationState.lastPest = 'rodent'; if (conversationState.lastPest && userMessage.toLowerCase().includes('more info')) { reply = { termite: 'Termites cause $7B in damage yearly in the US. Look for wings or frass. We offer fumigation or localized treatments. Book at https://zappest.pestconnect.com/login', ant: 'Ants follow pheromone trails. Baits disrupt colonies effectively. Seen nests? Book an inspection: https://zappest.pestconnect.com/login', cockroach: 'Cockroaches can live a month without food. Baiting outperforms sprays. Spot them at night? Book now: https://zappest.pestconnect.com/login', bedbug: 'Bed bugs survive months without feeding. Heat treatment kills all stages. Found bites? Book at https://zappest.pestconnect.com/login', rodent: 'Rats fit through 1/2-inch gaps. We seal entry points and use baits. Hearing noises? Book at https://zappest.pestconnect.com/login' }[conversationState.lastPest] || reply; } if (!conversationState.userName && !userMessage.toLowerCase().includes('book') && !userMessage.toLowerCase().includes('contact')) { reply += ' By the way, what’s your name?'; } addChatbotMessage(reply); } chatbotInput.value = ''; } }); // Keyboard accessibility for chatbot chatbotToggle.addEventListener('keydown', (e) => { if (e.key === 'Enter' || e.key === ' ') { chatbotToggle.click(); } }); chatbotInput.addEventListener('keydown', (e) => { if (e.key === 'Escape') { chatbot.style.display = 'none'; chatbotToggle.style.display = 'block'; chatbotToggle.focus(); } }); uploadButton.addEventListener('keydown', (e) => { if (e.key === 'Enter' || e.key === ' ') { uploadButton.click(); } }); </script> </body> </html>