Businesses that need a video, an ad, a website or an assistant
Physical products and local services
You run your own ads manager
Fit
Not for
On-camera creator/UGC talent
Media buying
Logo work
People
Who makes these
Justin Tortorelli, founder. He writes every script and edits every cut himself.
Risk
Safety net
You approve the scripts before we make anything. If none of them land, you pay nothing.
Inputs
What you send us
Product photos, clips and your logo.
05Brief
Get a quote
Tell us about the business. If this is a fit, you hear back within one business day.
(function(){var d=document.documentElement,k='vd-theme';try{var t=localStorage.getItem(k);if(t)d.setAttribute('data-theme',t)}catch(e){} function go(){if(d.getAttribute('data-vd'))return;d.setAttribute('data-vd','1'); var Q=function(s){return Array.prototype.slice.call(document.querySelectorAll(s))}; Q('.vd .tog').forEach(function(b){b.addEventListener('click',function(){var n=d.getAttribute('data-theme')==='light'?'dark':'light';d.setAttribute('data-theme',n);try{localStorage.setItem(k,n)}catch(e){}})}); var rm=window.matchMedia&&matchMedia('(prefers-reduced-motion: reduce)').matches,io=window.IntersectionObserver; var vs=Q('.vd video[data-auto]'); function P(v){if(rm)return;v.preload='auto';var p=v.play();if(p&&p.catch)p.catch(function(){})} vs.forEach(function(v){v.muted=v.defaultMuted=true;v.controls=false;v.setAttribute('aria-description','Spec ad. Not a paid campaign. Fictional brand.')}); if(io){var o=new io(function(es){es.forEach(function(e){e.isIntersecting?P(e.target):e.target.pause()})},{rootMargin:'150px 0px',threshold:.15});vs.forEach(function(v){o.observe(v)})}else vs.forEach(P); var x=document.querySelector('.vd .vx'),xv=x.querySelector('video'),xp=x.querySelector('p'),xb=x.querySelector('button'),last; function cl(){if(x.hidden)return;xv.pause();xv.removeAttribute('src');xv.load();x.hidden=true;d.style.overflow='';last&&last.focus()} Q('.vd .vid').forEach(function(b){b.addEventListener('click',function(){var v=b.querySelector('video');last=b;xv.src=(v.currentSrc||v.getAttribute('src')).split('#')[0];xv.muted=false;xp.textContent=b.parentNode.querySelector('.cap').textContent+' · not a client ad';x.hidden=false;d.style.overflow='hidden';xb.focus();var p=xv.play();if(p&&p.catch)p.catch(function(){})})}); xb.addEventListener('click',cl);x.addEventListener('click',function(e){e.target===x&&cl()});document.addEventListener('keydown',function(e){e.key==='Escape'&&cl()}); var bar=document.querySelector('.vd .bar'),h=document.getElementById('top'),f=document.getElementById('vdform')||document.getElementById('request'),sh={}; if(io&&bar&&h){var ob=new io(function(es){es.forEach(function(e){sh[e.target===h?'h':'f']=e.isIntersecting});bar.classList.toggle('on',!sh.h&&!sh.f)});ob.observe(h);f&&ob.observe(f)}} document.readyState==='loading'?document.addEventListener('DOMContentLoaded',go):go()})();
Brief received!
Brief received.
Got it. If this is a fit, you hear back within one business day.
!function(){var t=document.getElementById("vdform");if(t&&!t.getAttribute("data-ready")){t.setAttribute("data-ready","1");var e=function(t){return document.getElementById(t)},n=e("vf-form"),r=e("vf-submit"),i=e("vf-status"),a=e("vf-alert"),o=e("vf-email"),s=e("vf-email-warn"),u=e("vf-website"),c=e("vf-type");if(c&&!c.getAttribute("data-extra")){c.setAttribute("data-extra","1");[["Video ads: 1 × 15s ad (CA$299 per ad + GST)","video"],["2-ad pack (CA$500 + GST one-time)","pack2"],["5-ad pack (CA$1,000 + GST one-time)","pack5"],["Video ads: 1 × 30s ad (CA$600 per ad + GST)","video30"],["Managed Ads (CA$1,750/mo + GST)","managed"],["Website (custom quote)","website"],["AI assistant / workflow (custom quote)","assistant"],["AI Digital Receptionist","receptionist"],["Google Business Profile setup (CA$299 + GST)","gbp"],["Website care & updates (CA$85–99/mo + GST)","care"]].forEach(function(a){var o=document.createElement("option");o.value=o.textContent=a[0];o.setAttribute("data-kind",a[1]);o.setAttribute("data-pack",a[0]);c.appendChild(o)});}l=e("vf-win"),d=e("vf-win-opt"),f=e("vf-pdf-wrap"),v=e("vf-pdf"),h=Array.prototype.slice.call(n.querySelectorAll("input[data-platform]")),m=n.querySelector(".vf-chips"),p=window.matchMedia&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,b=!1,y=!1,g=["\u0040gmail.com","\u0040yahoo.com","\u0040hotmail.com"],E="A work email helps us look at your brand faster. A personal address is fine if that's what you use.",w={"vf-name":function(t){return t.trim()?"":"Enter your full name."},"vf-email":function(t){return(t=t.trim())?/^[^\s@]+@[^\s@]+\.[^\s@]{2,}$/.test(t)?"":"Enter a valid email, like you\u0040yourbrand.com.":"Enter your email."},"vf-company":function(t){return t.trim()?"":"Enter your company or brand name."},"vf-website":function(t){return t.trim()?function(t){if(/\s/.test(t))return!1;try{var e=new URL(t);return("https:"===e.protocol||"http:"===e.protocol)&&/^([a-z0-9-]+\.)+[a-z0-9-]{2,}$/i.test(e.hostname)}catch(t){return!1}}(A(t))?"":"Enter a valid URL, like yourbusiness.com.":""},"vf-spend":function(t){return t||F()?"":"Choose a monthly spend range."},"vf-win":function(t){return t.trim()||L()||F()?"":"Tell us what a win looks like."},"vf-deadline":function(t){return t?"":"Choose a turnaround."},"vf-type":function(t){return t?"":"Choose a request type."}};Object.keys(w).forEach(function(t){var n=e(t);n.addEventListener("blur",function(){"vf-website"===t&&n.value.trim()&&(n.value=A(n.value)),(n.value.trim()||y)&&S(n),"vf-email"===t&&O()}),n.addEventListener("SELECT"===n.tagName?"change":"input",function(){"SELECT"===n.tagName&&I(n),(n.getAttribute("aria-invalid")||y&&"SELECT"===n.tagName)&&S(n),"vf-email"===t&&O()})}),h.forEach(function(t){var e=t.parentNode;t.addEventListener("change",function(){e.classList.toggle("is-on",t.checked),(y||m.classList.contains("is-invalid"))&&x()}),t.addEventListener("focus",function(){var n=!0;try{n=t.matches(":focus-visible")}catch(t){}n&&e.classList.add("is-focus")}),t.addEventListener("keyup",function(){e.classList.add("is-focus")}),t.addEventListener("blur",function(){e.classList.remove("is-focus")})}),c.addEventListener("change",T);var k={"test pack":"test",monthly:"retainer",single:"single"};Array.prototype.forEach.call(document.querySelectorAll(".vd .packs .card"),function(t){var e=t.querySelector("h3"),n=e&&k[e.textContent.trim().toLowerCase()];n&&Array.prototype.forEach.call(t.querySelectorAll('a[href="#request"]'),function(t){t.addEventListener("click",function(){N(n)})})}),Array.prototype.forEach.call(document.querySelectorAll("[data-pick]"),function(t){t.addEventListener("click",function(){N(t.getAttribute("data-pick"))})}),window.addEventListener("hashchange",j),j(),n.addEventListener("submit",function(t){if(t.preventDefault(),!b){y=!0,a.hidden=!0,u.value.trim()&&(u.value=A(u.value));var r=function(){var t=[];return Object.keys(w).forEach(function(n){var r=e(n);S(r)||t.push(r)}),x()||t.push(h[0]),O(),t.sort(function(t,e){return t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING?-1:1}),t}();if(r.length){i.textContent=1===r.length?"Check the highlighted field.":"Check the "+r.length+" highlighted fields.",i.classList.add("is-err"),(r[0].closest(".vf-field")||r[0]).scrollIntoView({behavior:p?"auto":"smooth",block:"center"});try{r[0].focus({preventScroll:!0})}catch(t){r[0].focus()}}else{q();var s=L(),l=c.options[c.selectedIndex],d=e("vf-company").value.trim();e("vf-platforms").value=h.filter(function(t){return t.checked}).map(function(t){return t.value}).join(", "),e("vf-replyto").value=o.value.trim(),e("vf-subject").value=s?"Voss brief: FREE AD VIDEO claim — "+d:"Voss brief: "+l.getAttribute("data-pack")+" — "+d,s||(v.value="",v.disabled=!0);var f=new FormData(n);["name","email","company","win","pdf_tool"].forEach(function(t){f.has(t)&&f.set(t,String(f.get(t)).trim())}),z(!0),i.textContent="Sending your brief…";var m=window.AbortController?new AbortController:null,g=setTimeout(function(){m&&m.abort()},2e4);fetch("https://formspree.io/f/xzezyjbq",{method:"POST",body:f,headers:{Accept:"application/json"},signal:m?m.signal:void 0}).then(function(t){clearTimeout(g),t.ok?(z(!1),q(),V(s)):D()}).catch(function(){clearTimeout(g),D()})}}}),T(),[e("vf-spend"),e("vf-deadline")].forEach(I)}function K(){var t=c.options[c.selectedIndex];return t&&t.getAttribute("data-kind")||""}function L(){return"hook"===K()}function F(){return/^(website|assistant|receptionist|gbp|care)$/.test(K())}function A(t){return(t=(t||"").trim())&&!/^[a-z][a-z0-9+.\-]*:\/\//i.test(t)&&(t="https://"+t.replace(/^\/+/,"")),t}function C(t,n){var r=e(t.id+"-err");return r&&(r.textContent=n),n?t.setAttribute("aria-invalid","true"):t.removeAttribute("aria-invalid"),!n}function S(t){return C(t,w[t.id](t.value))}function x(){if(F()){return e("vf-platforms-err").textContent="",m.classList.remove("is-invalid"),m.removeAttribute("aria-invalid"),!0}var t=h.some(function(t){return t.checked});return e("vf-platforms-err").textContent=t?"":"Pick at least one platform.",m.classList.toggle("is-invalid",!t),t?m.removeAttribute("aria-invalid"):m.setAttribute("aria-invalid","true"),t}function O(){var t=o.value.toLowerCase(),e=g.some(function(e){return-1!==t.indexOf(e)})&&!o.getAttribute("aria-invalid");s.textContent!==(e?E:"")&&(s.textContent=e?E:"")}function I(t){t.value?t.removeAttribute("data-empty"):t.setAttribute("data-empty","")}function q(){i.textContent="",i.classList.remove("is-err")}function T(){var t=L(),q=F(),j=t||q;I(c),d.textContent=j?" (Optional)":"",l.required=!j;var B=e("vf-platforms-opt"),H=e("vf-spend-opt"),M=e("vf-spend");B&&(B.textContent=q?" (Optional)":"");H&&(H.textContent=q?" (Optional)":"");M&&(M.required=!q);q?(C(M,""),x()):(y&&M&&S(M),y&&x());t?(C(l,""),v.disabled=!1,f.classList.add("is-open"),f.setAttribute("aria-hidden","false")):(v.value="",v.disabled=!0,f.classList.remove("is-open"),f.setAttribute("aria-hidden","true"),(l.getAttribute("aria-invalid")||y)&&S(l))}function N(t){if(!n.hidden){for(var e=0;e < c.options.length;e++)if(c.options[e].getAttribute("data-kind")===t){c.selectedIndex=e;break}T(),c.getAttribute("aria-invalid")&&S(c)}}function j(){"#claim-hook"===(location.hash||"").toLowerCase()&&N("hook")}function z(t){b=t,r.disabled=t,r.textContent=t?"Sending…":"Send brief",t?n.setAttribute("aria-busy","true"):n.removeAttribute("aria-busy")}function V(t){var r=e(t?"vf-done-hook":"vf-done-brief");t&&(e("vf-done-hook-msg").textContent="Justin and the Voss Digitals production team are reviewing your store layout right now. We will script and build your free ad video, a custom 3-second scroll-stopper hook, and deliver the captioned MP4 asset straight to your inbox. First drafts in 5 business days.");n.hidden=!0,n.style.display="none",r.hidden=!1;try{r.focus({preventScroll:!0})}catch(t){r.focus()}r.scrollIntoView({behavior:p?"auto":"smooth",block:"start"}),location.hash=t?"#voucher-received":"#brief-received";try{window.dispatchEvent(new CustomEvent("vdform:success",{detail:{type:t?"hook":"brief",request_type:c.value}}))}catch(t){}}function D(){z(!1),q(),a.hidden=!1,a.scrollIntoView({behavior:p?"auto":"smooth",block:"center"})}}()
Calls you don't answer forward to the receptionist. Your number stays the same.
1
You miss a call
You're on a roof, under a sink or driving between jobs.
2
The receptionist answers
It takes the caller's name, number, address and what they need.
3
You get a text with the lead
Who called, how to reach them, the job and how urgent it is. Call back when you're down.
Dashboard
Every call, in one place
Leads, calls, transcripts and bookings in a simple dashboard that works on your phone.
Dashboard screenshot: leads list
Every lead in one list, sorted by how urgent it is.
Dashboard screenshot: lead detail
Open a lead for the summary, details and full transcript.
Dashboard screenshot: test call
A test call, and what the receptionist captured from it.
Phone screenshot
The same leads on your phone.
Screenshots use test data from a demo business. The names, numbers and counts are made up.
Pricing
CA$99 / month + GST
Setup fee: CA$149 one-time + GST
A monthly subscription. It answers business calls 24/7, takes messages, and sends you a text or email. Still in testing — leave your details below for early access.
Good to know
You keep your own number.
Urgent jobs are flagged so you see them first.
Included
Free with your subscription
These tools come with the receptionist, at no extra cost.
JobProof
Turns before-and-after job photos into a branded PDF report for pressure washers, detailers and landscapers.
!function(){ var IMG_BASE="https://voss-receptionist-assets.pages.dev/img/"; var R=document.getElementById("vrf");if(!R||R.getAttribute("data-ready"))return;R.setAttribute("data-ready","1"); Array.prototype.forEach.call(document.querySelectorAll(".vr img[data-img]"),function(im){var fr=im.parentNode;if(im.getAttribute("src"))return;if(!IMG_BASE){fr.classList.add("nopic");return}im.onerror=function(){fr.classList.add("nopic")};im.src=IMG_BASE+im.getAttribute("data-img")}); var $=function(i){return document.getElementById(i)},f=$("vrf-form"),sb=$("vrf-submit"),st=$("vrf-st"),al=$("vrf-alert"),busy=!1,tried=!1; var V={"vrf-name":function(v){return v?"":"Enter your name."},"vrf-business":function(v){return v?"":"Enter your business name."},"vrf-email":function(v){return v?(/^[^\s\u0040]+\u0040[^\s\u0040]+\.[^\s\u0040]{2,}$/.test(v)?"":"Enter a valid email, like you\u0040yourbusiness.com."):"Enter your email."},"vrf-phone":function(v){var d=v.replace(/\D/g,"");return v?(d.length>=10&&d.length<=15?"":"Enter a phone number with area code."):"Enter your phone number."},"vrf-trade":function(v){return v?"":"Choose your trade or industry."}}; function chk(id){var el=$(id),m=V[id](el.value.trim());$(id+"-er").textContent=m;m?el.setAttribute("aria-invalid","true"):el.removeAttribute("aria-invalid");return!m} Object.keys(V).forEach(function(id){var el=$(id);el.addEventListener("blur",function(){if(el.value.trim()||tried)chk(id)});el.addEventListener(el.tagName==="SELECT"?"change":"input",function(){if(el.getAttribute("aria-invalid"))chk(id)})}); function set(b){busy=b;sb.disabled=b;sb.textContent=b?"Sending\u2026":"Get early access"} function fail(){set(!1);st.textContent="";al.hidden=!1} f.addEventListener("submit",function(e){e.preventDefault();if(busy)return;tried=!0;al.hidden=!0; var bad=Object.keys(V).filter(function(id){return!chk(id)}); if(bad.length){st.textContent=bad.length===1?"Check the highlighted field.":"Check the "+bad.length+" highlighted fields.";$(bad[0]).focus();return} var biz=$("vrf-business").value.trim();$("vrf-subject").value="Voss receptionist sign-up: "+biz;$("vrf-replyto").value=$("vrf-email").value.trim(); var fd=new FormData(f);set(!0);st.textContent="Sending\u2026"; var ac=window.AbortController?new AbortController:null,to=setTimeout(function(){ac&&ac.abort()},2e4); fetch("https://formspree.io/f/xzezyjbq",{method:"POST",body:fd,headers:{Accept:"application/json"},signal:ac?ac.signal:void 0}).then(function(r){clearTimeout(to);if(!r.ok)return fail(); $("vrf-done-msg").textContent="We have your details for "+biz+". We'll email you at "+$("vrf-email").value.trim()+" about next steps."; f.hidden=!0;$("vrf-done").hidden=!1;try{$("vrf-done").focus({preventScroll:!0})}catch(x){}$("vrf-done").scrollIntoView({block:"center"})}).catch(function(){clearTimeout(to);fail()})}); }()