{"id":218288,"date":"2026-04-01T21:15:13","date_gmt":"2026-04-01T21:15:13","guid":{"rendered":"https:\/\/bizscoreai.com\/?page_id=218288"},"modified":"2026-04-01T21:17:17","modified_gmt":"2026-04-01T21:17:17","slug":"submit-listing","status":"publish","type":"page","link":"https:\/\/bizscoreai.com\/blog\/submit-listing\/","title":{"rendered":"Submit Listing"},"content":{"rendered":"        <div class=\"bsai-public-submit-wrap\" style=\"max-width:680px; margin:40px auto; padding:0 20px;\">\n            <h2 style=\"margin-top:0;\">Submit Your Business<\/h2>\n            <p style=\"color:#555; margin-bottom:24px;\">\n                Add your business to BizScoreAI \u2014 free AI-visibility scan, SEO audit, local citation report, and a\n                do-follow backlink. Takes about 60 seconds.\n            <\/p>\n\n            <div id=\"bsai-ps-banner\" style=\"display:none; padding:14px 18px; border-radius:6px; margin-bottom:20px;\"><\/div>\n\n            <form id=\"bsai-ps-form\" onsubmit=\"return false;\" style=\"background:#fff; border:1px solid #e0e0e0; border-radius:8px; padding:24px; box-shadow:0 1px 3px rgba(0,0,0,0.05);\">\n                <input type=\"hidden\" id=\"bsai-ps-nonce\" value=\"e0e01e177f\">\n                <!-- honeypot \u2014 bots fill it, humans don't see it -->\n                <div style=\"position:absolute; left:-9999px; top:-9999px;\" aria-hidden=\"true\">\n                    <label>Leave this blank <input type=\"text\" id=\"bsai-ps-website-hp\" tabindex=\"-1\" autocomplete=\"off\"><\/label>\n                <\/div>\n\n                <div style=\"margin-bottom:16px;\">\n                    <label for=\"bsai-ps-name\" style=\"display:block; font-weight:600; margin-bottom:6px;\">Business Name *<\/label>\n                    <input type=\"text\" id=\"bsai-ps-name\" required maxlength=\"200\"\n                        style=\"width:100%; padding:10px 12px; border:1px solid #ccc; border-radius:6px; font-size:15px;\"\n                        placeholder=\"Acme Widget Co.\">\n                <\/div>\n\n                <div style=\"margin-bottom:16px;\">\n                    <label for=\"bsai-ps-url\" style=\"display:block; font-weight:600; margin-bottom:6px;\">Business Website URL *<\/label>\n                    <input type=\"url\" id=\"bsai-ps-url\" required\n                        style=\"width:100%; padding:10px 12px; border:1px solid #ccc; border-radius:6px; font-size:15px;\"\n                        placeholder=\"https:\/\/acmewidget.com\">\n                    <p style=\"font-size:12px; color:#777; margin:6px 0 0 0;\">The domain of your business website.<\/p>\n                <\/div>\n\n                <div style=\"margin-bottom:16px;\">\n                    <label for=\"bsai-ps-email\" style=\"display:block; font-weight:600; margin-bottom:6px;\">\n                        Your Email at <span id=\"bsai-ps-domain-hint\" style=\"color:#2271b1;\">your business domain<\/span> *\n                    <\/label>\n                    <input type=\"email\" id=\"bsai-ps-email\" required\n                        style=\"width:100%; padding:10px 12px; border:1px solid #ccc; border-radius:6px; font-size:15px;\"\n                        placeholder=\"you@acmewidget.com\">\n                    <p style=\"font-size:12px; color:#b00; margin:6px 0 0 0; font-weight:500;\">\n                        \u26a0 Your email MUST be at the same domain as the business website (e.g. you@acmewidget.com for acmewidget.com).\n                        We send a verification link to this address to confirm ownership and prevent competitors from hijacking your listing.\n                        <strong>Gmail, Yahoo, Outlook, etc. are not accepted.<\/strong>\n                    <\/p>\n                <\/div>\n\n                <div style=\"display:flex; gap:12px; margin-bottom:16px;\">\n                    <div style=\"flex:1;\">\n                        <label for=\"bsai-ps-contact\" style=\"display:block; font-weight:600; margin-bottom:6px;\">Your Name<\/label>\n                        <input type=\"text\" id=\"bsai-ps-contact\" maxlength=\"120\"\n                            style=\"width:100%; padding:10px 12px; border:1px solid #ccc; border-radius:6px; font-size:15px;\">\n                    <\/div>\n                    <div style=\"flex:1;\">\n                        <label for=\"bsai-ps-phone\" style=\"display:block; font-weight:600; margin-bottom:6px;\">Phone<\/label>\n                        <input type=\"text\" id=\"bsai-ps-phone\" maxlength=\"40\"\n                            style=\"width:100%; padding:10px 12px; border:1px solid #ccc; border-radius:6px; font-size:15px;\">\n                    <\/div>\n                <\/div>\n\n                <div style=\"display:flex; gap:12px; margin-bottom:20px;\">\n                    <div style=\"flex:2;\">\n                        <label for=\"bsai-ps-city\" style=\"display:block; font-weight:600; margin-bottom:6px;\">City<\/label>\n                        <input type=\"text\" id=\"bsai-ps-city\" maxlength=\"120\"\n                            style=\"width:100%; padding:10px 12px; border:1px solid #ccc; border-radius:6px; font-size:15px;\">\n                    <\/div>\n                    <div style=\"flex:1;\">\n                        <label for=\"bsai-ps-state\" style=\"display:block; font-weight:600; margin-bottom:6px;\">State<\/label>\n                        <input type=\"text\" id=\"bsai-ps-state\" maxlength=\"2\" placeholder=\"NY\"\n                            style=\"width:100%; padding:10px 12px; border:1px solid #ccc; border-radius:6px; font-size:15px; text-transform:uppercase;\">\n                    <\/div>\n                <\/div>\n\n                <div style=\"margin-bottom:16px;\">\n                    <label style=\"display:flex; gap:8px; align-items:flex-start; cursor:pointer;\">\n                        <input type=\"checkbox\" id=\"bsai-ps-consent\" required style=\"margin-top:4px;\">\n                        <span style=\"font-size:13px; color:#555;\">\n                            I confirm I am authorized to submit this business and that the email address above is mine.\n                        <\/span>\n                    <\/label>\n                <\/div>\n\n                <button type=\"button\" id=\"bsai-ps-submit\"\n                    style=\"background:#2271b1; color:#fff; border:0; padding:14px 28px; font-size:16px; font-weight:600; border-radius:6px; cursor:pointer; width:100%;\">\n                    Send Verification Email\n                <\/button>\n\n                <p style=\"font-size:12px; color:#777; margin:12px 0 0 0; text-align:center;\">\n                    Click to receive a verification link at your business email. Your listing will be created after you confirm.\n                <\/p>\n            <\/form>\n        <\/div>\n\n        <script>\n        (function(){\n            const ajax  = \"https:\\\/\\\/bizscoreai.com\\\/blog\\\/wp-admin\\\/admin-ajax.php\";\n            const $ = id => document.getElementById(id);\n\n            function domainFromUrl(u) {\n                if (!u) return '';\n                u = u.trim().toLowerCase()\n                    .replace(\/^https?:\\\/\\\/\/, '')\n                    .replace(\/^www\\.\/, '')\n                    .split('\/')[0].split('?')[0];\n                return u;\n            }\n\n            $('bsai-ps-url').addEventListener('input', function(){\n                const d = domainFromUrl(this.value);\n                $('bsai-ps-domain-hint').innerText = d || 'your business domain';\n                const em = $('bsai-ps-email');\n                if (d && em.placeholder && em.placeholder.startsWith('you@')) {\n                    em.placeholder = 'you@' + d;\n                }\n            });\n\n            function showBanner(type, msg) {\n                const b = $('bsai-ps-banner');\n                b.style.display = 'block';\n                const colors = {\n                    success: {bg:'#d4edda', border:'#46b450', color:'#155724'},\n                    error:   {bg:'#f8d7da', border:'#d63638', color:'#721c24'},\n                    info:    {bg:'#d1ecf1', border:'#2271b1', color:'#0c5460'}\n                };\n                const c = colors[type] || colors.info;\n                b.style.background = c.bg;\n                b.style.borderLeft = '4px solid ' + c.border;\n                b.style.color = c.color;\n                b.innerHTML = msg;\n                b.scrollIntoView({behavior:'smooth', block:'center'});\n            }\n\n            $('bsai-ps-submit').addEventListener('click', async function(){\n                if ($('bsai-ps-website-hp').value) return; \/\/ honeypot\n\n                const data = {\n                    name:    $('bsai-ps-name').value.trim(),\n                    url:     $('bsai-ps-url').value.trim(),\n                    email:   $('bsai-ps-email').value.trim(),\n                    contact: $('bsai-ps-contact').value.trim(),\n                    phone:   $('bsai-ps-phone').value.trim(),\n                    city:    $('bsai-ps-city').value.trim(),\n                    state:   $('bsai-ps-state').value.trim().toUpperCase(),\n                    consent: $('bsai-ps-consent').checked,\n                };\n                if (!data.name || !data.url || !data.email) {\n                    showBanner('error', '<strong>Please fill all required fields.<\/strong>');\n                    return;\n                }\n                if (!data.consent) {\n                    showBanner('error', '<strong>Please confirm you are authorized to submit this business.<\/strong>');\n                    return;\n                }\n\n                \/\/ Client-side domain match (server also enforces)\n                const urlDomain = domainFromUrl(data.url);\n                const emailDomain = (data.email.split('@')[1] || '').toLowerCase().trim();\n                if (!urlDomain || !emailDomain) {\n                    showBanner('error', '<strong>Please enter a valid URL and email address.<\/strong>');\n                    return;\n                }\n                if (urlDomain !== emailDomain &&\n                    !emailDomain.endsWith('.' + urlDomain) &&\n                    !urlDomain.endsWith('.' + emailDomain)) {\n                    showBanner('error',\n                        '<strong>Email domain doesn\\'t match the business website.<\/strong><br>' +\n                        'Your email is at <code>' + emailDomain + '<\/code> but the website is <code>' + urlDomain + '<\/code>. ' +\n                        'To prevent competitors from hijacking listings, we require you to use an email at the same domain as your business website.');\n                    return;\n                }\n\n                this.disabled = true;\n                this.innerText = 'Sending verification email\u2026';\n\n                const fd = new FormData();\n                fd.append('action', 'bsai_public_submit');\n                fd.append('nonce', $('bsai-ps-nonce').value);\n                Object.keys(data).forEach(k => fd.append(k, typeof data[k] === 'boolean' ? (data[k] ? '1' : '0') : data[k]));\n\n                try {\n                    const res  = await fetch(ajax, { method:'POST', body:fd, credentials:'same-origin' });\n                    const json = await res.json();\n                    if (json.success) {\n                        showBanner('success',\n                            '<strong>Check your email.<\/strong><br>' +\n                            'We sent a verification link to <code>' + data.email + '<\/code>. ' +\n                            'Click the link to confirm ownership and create your listing. ' +\n                            'The link expires in 24 hours.');\n                        $('bsai-ps-form').style.display = 'none';\n                    } else {\n                        showBanner('error', '<strong>' + (json.data?.message || 'Something went wrong.') + '<\/strong>');\n                        this.disabled = false;\n                        this.innerText = 'Send Verification Email';\n                    }\n                } catch(e) {\n                    showBanner('error', '<strong>Request failed:<\/strong> ' + e.message);\n                    this.disabled = false;\n                    this.innerText = 'Send Verification Email';\n                }\n            });\n        })();\n        <\/script>\n        \n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"rank_math_title":"","rank_math_description":"","rank_math_focus_keyword":"","footnotes":""},"class_list":["post-218288","page","type-page","status-publish","hentry"],"elementor_data":null,"elementor_edit_mode":null,"_links":{"self":[{"href":"https:\/\/bizscoreai.com\/blog\/wp-json\/wp\/v2\/pages\/218288","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bizscoreai.com\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bizscoreai.com\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bizscoreai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bizscoreai.com\/blog\/wp-json\/wp\/v2\/comments?post=218288"}],"version-history":[{"count":4,"href":"https:\/\/bizscoreai.com\/blog\/wp-json\/wp\/v2\/pages\/218288\/revisions"}],"predecessor-version":[{"id":218292,"href":"https:\/\/bizscoreai.com\/blog\/wp-json\/wp\/v2\/pages\/218288\/revisions\/218292"}],"wp:attachment":[{"href":"https:\/\/bizscoreai.com\/blog\/wp-json\/wp\/v2\/media?parent=218288"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}