Commercial Account Executive, Install Base

Company: Vercel

Remote: No

Posted: 2026-03-16

Status: new

Apply: https://vercel.com/careers/commercial-account-executive-install-base-5807377004


Commercial Account Executive, Install Base((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f?.[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","zeit-theme","system",null,["light","dark"],{"light":"light-theme","dark":"dark-theme"},true,true)
// Protect Geist code blocks from 1Password DOM flattening
(function() {
  const codeBlockSnapshots = new WeakMap();
  let isRestoring = false;

  function saveSnapshot(codeElement) {
    if (!codeBlockSnapshots.has(codeElement)) {
      codeBlockSnapshots.set(codeElement, codeElement.cloneNode(true));
    }
  }

  function checkAndRestore(codeElement) {
    if (isRestoring) return;

    // Check if our specific structure was flattened
    const hasOurStructure = codeElement.querySelector('[data-geist-code-block-line]');
    const snapshot = codeBlockSnapshots.get(codeElement);

    if (!hasOurStructure && snapshot && snapshot.querySelector('[data-geist-code-block-line]')) {
      // Our structure was destroyed (likely by 1Password), restore it
      isRestoring = true;
      codeElement.innerHTML = snapshot.innerHTML;
      isRestoring = false;
    }
  }

  function initializeCodeBlocks() {
    document.querySelectorAll('code[data-geist-code-block]').forEach(saveSnapshot);
  }

  // Single global observer for all code blocks
  const globalObserver = new MutationObserver(function(mutations) {
    if (isRestoring) return;

    mutations.forEach(function(mutation) {
      // Check if new code blocks were added
      mutation.addedNodes.forEach(function(node) {
        if (node.nodeType === 1) {
          if (node.matches && node.matches('code[data-geist-code-block]')) {
            saveSnapshot(node);
          } else if (node.querySelectorAll) {
            node.querySelectorAll('code[data-geist-code-block]').forEach(saveSnapshot);
          }
        }
      });

      // Check if existing code blocks were modified
      var target = mutation.target;
      if (target.nodeType === 1) {
        // Check if the target itself is a protected code block
        if (target.matches && target.matches('code[data-geist-code-block]')) {
          checkAndRestore(target);
        }
        // Check if the target contains protected code blocks
        else if (target.closest && target.closest('code[data-geist-code-block]')) {
          checkAndRestore(target.closest('code[data-geist-code-block]'));
        }
      }
    });
  });

  // Initialize existing code blocks and start observing
  function init() {
    initializeCodeBlocks();
    globalObserver.observe(document.documentElement, {
      childList: true,
      subtree: true,
      characterData: true
    });
  }

  // Run immediately and after DOM is ready
  if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', init);
  } else {
    init();
  }
})();
(({protect:a})=>{function b(a){return new Promise((b,c)=>{if(document.querySelector(`script[src="${a}"]`))return void b();let d=document.createElement("script");d.src=a,d.async=!0,d.onload=()=>b(),d.onerror=a=>{console.error("Error loading script",a),c(a)},document.head.appendChild(d)})}var c=class a{#a;#b;#c=0;constructor(){let{promise:b,resolve:c}=a.#d();this.#a=b,this.#b=c,this.#e(),window.addEventListener("online",this.#f),window.addEventListener("visibilitychange",this.#f)}getChallenge=async()=>(await this.#g(),await this.#a.then(a=>"function"==typeof a?a():a));#f=()=>{if(document.hidden)return;let{promise:b,resolve:c}=a.#d();this.#a=b,this.#b=c,window.V_C=[],window.V_C.push=c;let d=document.querySelector('script[src*="c.js"]');d&&d.remove(),this.#c+=1};#e=()=>{if(window.V_C){let a=window.V_C.pop();a&&this.#b(a)}else window.V_C=[],window.V_C.push=this.#b};#g=()=>{let a=new URL("/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/a-4-a/c.js",window.location.origin);return a.searchParams.set("i",String(this.#c)),a.searchParams.set("v",String(3)),a.searchParams.set("h",window.location.host),b(a.pathname+a.search)};#h=()=>{window.V_C=void 0};static #d(){let a,b;return{promise:new Promise((c,d)=>{a=c,b=d}),resolve:a,reject:b}}},d=class a{#a=!1;#b;constructor(a){this.#b=a}get loaded(){return this.#a}load=async()=>{this.#a||await this.#f()};#c=()=>{if(typeof globalThis.window>"u")throw Error("KPSDK is not available in the server");if(!window.KPSDK)throw Error("KPSDK is not loaded");let b=this.#b.map(b=>{let c=a.#e(b.path);return{domain:c.host,path:c.pathname,method:b.method}});try{window.KPSDK.configure(b)}catch(a){console.error("Error configuring KPSDK...",a)}};#f=async()=>{let a=this;return new Promise((c,d)=>{let e=()=>{document.removeEventListener("kpsdk-load",e),this.#c()},f=()=>{document.removeEventListener("kpsdk-ready",f),a.#a=!0,c()};document.addEventListener("kpsdk-load",e,{once:!0}),document.addEventListener("kpsdk-ready",f,{once:!0}),b("/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/p.js").catch(a=>{document.removeEventListener("kpsdk-load",e),document.removeEventListener("kpsdk-ready",f),d(a)})})};static #e(a){let b;try{b=new URL(a)}catch{b=new URL(a,location.origin)}return b}},e=a=>{let b=a.replace(/[.?+^$[\]\\(){}|-]/g,"\\$&").split("*").join(".*");return RegExp(`^${b}$`)},f=({path:a,pattern:b})=>-1!==a.search(b);async function g(a,b,c){let d=XMLHttpRequest.prototype.open,g=XMLHttpRequest.prototype.send;XMLHttpRequest.prototype.open=function(a,b,c,e,f){return this._requestUrl=b.toString(),this._requestMethod=a,d.call(this,a,b,c??!0,e,f)},XMLHttpRequest.prototype.send=async function(d){let h=this._requestUrl;if(!h||this._isReexecution)return g.call(this,d);let i=new URL(h,location.href),j=this._requestMethod??"GET",k=c.find(a=>{let b=f({path:i.pathname,pattern:e(a.path)}),c=a.method===j||"*"===a.method;return b&&c});if(!k)return g.call(this,d);let l=await a.getChallenge();if(this.setRequestHeader("x-is-human",JSON.stringify(l)),this.setRequestHeader("x-path",i.pathname),this.setRequestHeader("x-method",j),0!==l.b||b.loaded||((1===l.d||k?.advancedOptions?.checkLevel==="deepAnalysis")&&await b.load(),!b.loaded))return g.call(this,d);this.setRequestHeader("x-is-human",JSON.stringify(l)),this.setRequestHeader("x-path",i.pathname),this.setRequestHeader("x-method",j);let m=new XMLHttpRequest;return m._isReexecution=!0,m.open(j,h,!0),m.setRequestHeader("x-is-human",JSON.stringify(l)),m.setRequestHeader("x-path",i.pathname),m.setRequestHeader("x-method",j),this.timeout&&(m.timeout=this.timeout),this.responseType&&(m.responseType=this.responseType),this.withCredentials&&(m.withCredentials=this.withCredentials),m.onreadystatechange=()=>{Object.defineProperty(this,"readyState",{value:m.readyState,writable:!0,configurable:!0}),m.readyState===XMLHttpRequest.DONE&&(Object.defineProperty(this,"status",{value:m.status,writable:!0,configurable:!0}),Object.defineProperty(this,"statusText",{value:m.statusText,writable:!0,configurable:!0}),Object.defineProperty(this,"response",{value:m.response,writable:!0,configurable:!0}),Object.defineProperty(this,"responseText",{value:m.responseText,writable:!0,configurable:!0}),Object.defineProperty(this,"responseXML",{value:m.responseXML,writable:!0,configurable:!0}),this.getAllResponseHeaders=()=>m.getAllResponseHeaders(),this.getResponseHeader=a=>m.getResponseHeader(a)),this.onreadystatechange&&this.onreadystatechange.call(this,new Event("readystatechange"))},m.onload=a=>{this.onload&&this.onload.call(this,a)},m.onerror=a=>{this.onerror&&this.onerror.call(this,a)},m.onabort=a=>{this.onabort&&this.onabort.call(this,a)},m.ontimeout=a=>{this.ontimeout&&this.ontimeout.call(this,a)},m.onloadstart=a=>{this.onloadstart&&this.onloadstart.call(this,a)},m.onloadend=a=>{this.onloadend&&this.onloadend.call(this,a)},m.onprogress=a=>{this.onprogress&&this.onprogress.call(this,a)},m.send(d)}}!function({protect:a=[]}){let b;for(let b of a)if(b.advancedOptions?.checkLevel!==void 0&&"deepAnalysis"!==b.advancedOptions.checkLevel&&"basic"!==b.advancedOptions.checkLevel)throw Error(`Invalid checkLevel "${b.advancedOptions.checkLevel}" for route "${b.path}". Must be one of: deepAnalysis, basic`);let h=new c,i=new d(a);g(h,i,a).catch(a=>{console.error("Error patching XMLHttpRequest:",a)}),b=window.fetch,window.fetch=async(c,d)=>{let g=new URL(c instanceof Request?c.url:c,location.href),j=g.origin===location.origin,k=d?.method??(c instanceof Request?c.method:"GET"),l=a.find(a=>{let b=f({path:g.pathname,pattern:e(a.path)}),c=a.method===k||"*"===a.method;return b&&c});if(null==l||!j)return b(c,d);let m=await h.getChallenge(),n=new Headers(d?.headers||(c instanceof Request?c.headers:void 0));n.set("x-is-human",JSON.stringify(m)),n.set("x-path",g.pathname),n.set("x-method",k);let o={...d,headers:n};return i.loaded||0!==m.b?b(c,o):1===m.d||l?.advancedOptions?.checkLevel==="deepAnalysis"?(await i.load(),window.fetch(c,o)):b(c,o)}}({protect:a})})({ protect: [{"path":"/api/solution-partners/contact-solution-partner","method":"POST"},{"path":"/api/report-abuse","method":"POST"},{"path":"/api/appeals","method":"POST"},{"path":"/api/ai/gateway-playground/chat/logged-out","method":"POST"}] });ProductsAI Cloudv0Build applications with AIAI SDKThe AI Toolkit for TypeScript
  
  AI GatewayOne endpoint, all your modelsVercel AgentAn agent that knows your stackSandboxAI workflows in live environmentsCore PlatformCI/CDHelping teams ship 6× fasterContent DeliveryFast, scalable, and reliableFluid ComputeServers, in serverless formObservabilityTrace every stepSecurityBot ManagementScalable bot protectionBotIDInvisible CAPTCHAPlatform SecurityDDoS Protection, Firewall









Web Application FirewallGranular, custom protectionResourcesCompanyCustomersTrusted by the best teamsBlogThe latest posts and changesChangelogSee what shippedPressRead the latest newsEventsJoin us at an eventLearnDocsVercel documentationAcademyLinear courses to level upKnowledge BaseFind help quicklyCommunityJoin the conversationOpen Source
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  Next.jsThe native Next.js platformNuxtThe progressive web framework
  
  
  
  
  
  
  
  SvelteThe web’s efficient UI framework
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  TurborepoSpeed with Enterprise scaleSolutionsUse Cases
  
  AI AppsDeploy at the speed of AIComposable CommercePower storefronts that convertMarketing SitesLaunch campaigns fastMulti-tenant PlatformsScale apps with one codebaseWeb AppsShip features, not infrastructureToolsMarketplaceExtend and automate workflowsTemplatesJumpstart app developmentPartner FinderGet help from solution partnersUsersPlatform EngineersAutomate away repetition



Design EngineersDeploy for every ideaEnterprisePricing
        @media (max-width: 1150px) {
          #header-content { display: none; }
        }
      
        @media (min-width: 1151px) {
          #mobile-menu-toggle { display: none; }
        }
      SalesLondonFull TimeCommercial Account Executive, Install BaseCareers /SalesSalesLondonFull TimeAbout Vercel:Vercel gives developers the tools and cloud infrastructure to build, scale, and secure a faster, more personalized web. As the team behind v0, Next.js, and AI SDK, Vercel helps customers like Ramp, Supreme, PayPal, and Under Armour build for the AI-native web. Our mission is to enable the world to ship the best products. That starts with creating a place where everyone can do their best work. Whether you're building on our platform, supporting our customers, or shaping our story: You can just ship things.About the Role:Vercel's sales team is filled with hardworking, deeply technical people spanning a range of business functions (developers, operations, marketing, product, IT) to help create a new category. We are a fast-growing organization with a strong preference to grow team members and promote from within! You will be the dominant driver of revenue growth and be on the front-lines of evangelizing our platform to existing customers in EMEA.If you’re based within a pre-determined commuting distance of one of our offices (SF, NY, London, or Berlin), the role includes in-office anchor days on Monday, Tuesday, and Friday. If you're located beyond that distance, the role is fully remote. For location-specific details, please connect with our recruiting team.What You Will Do:Your involvement will center around helping companies accelerate their adoption of Vercel, guiding them from initial usage to full-scale deployment across their organization, and proactively managing the account to drive continued growth.Manage book of business that includes renewals and net new business opportunitiesPartner cross-functionally with Solutions Engineering, Sales Engineering, and Customer Success to get your customers the best outcomes for their businessLearn about our technology and the space every dayAbout You:Top performer with history of successOwn a book of commercial customers, driving renewals, upsells, and cross-sells.Identify and execute expansion opportunities to grow account value.Build and maintain strong relationships with key stakeholders and champions.Partner with Solutions Engineering, Customer Success, and Product teams to deliver customer outcomes.Develop strategic account plans aligned with customer goals and Vercel’s growth objectives.Learn about our technology and the space every dayUse tools like Sales Navigator, Zoominfo, Outreach, SFDC, etc.Highly autonomous, self-driven, and able to thrive in a fast-growing environment.Collaborative team player with a “team-first” mentality and low ego.Coachable, curious, and motivated to continuously improve.Passionate about digital transformation and how modern web technologies drive business impact.Driver who can adapt to constant change and RAPID growthBonus If You:Have deep technical understanding of web technologiesExperience with web infrastructure / developer toolsHave an established network of technology companiesHave done some web-developmentBenefits:Competitive compensation package, including equity.Inclusive Healthcare Package.Learn and Grow - we provide mentorship and send you to events that help you build your network and skills.Flexible Time Off.We will provide you the gear you need to do your role, and a WFH budget for you to outfit your space as needed.Vercel is committed to fostering and empowering an inclusive community within our organization. We do not discriminate on the basis of race, religion, color, gender expression or identity, sexual orientation, national origin, citizenship, age, marital status, veteran status, disability status, or any other characteristic protected by law. Vercel encourages everyone to apply for our available positions, even if they don't necessarily check every box on the job description.Apply for RoleApply Now.Tell us why you’d be a good fit for the Commercial Account Executive, Install Base role.First NameLast NameEmail AddressPhone NumberResumeUpload your resumeResume should be a PDF under 3.5MB.Are you currently based in London?​United States​Germany​United Kingdom​Argentina​Australia​Canada​India​Japan​OtherWill you require Visa Sponsorship now, or in the future?​Yes​NoYour authorization to work in the country where you live. Please choose the option that describes your work authorization.
​I am authorized to work in the country due to my nationality​I am authorized to work in the country based on a valid work permit and do not need a company to sponsor my visa​I am authorized to work in the country based on a valid work permit which needs to be sponsored by the company I work for​I am not authorized to work in the country and need visa support​OtherDo you live in one of the following states?
Alabama, Alaska, Delaware, Kansas, Maine, Mississippi, Montana, Nebraska, New Mexico, North Dakota, South Dakota, West Virginia, or Wyoming.​Yes​NoBy submitting my application, I acknowledge that I have read and understand Vercel’s  Job Applicant Privacy Notice ​Acknowledge/ConfirmPlease double-check all the information provided above. Ensuring accuracy is crucial, as any errors or omissions may impact the review of your application.​I have reviewed and confirmed that all the information provided is accurate and complete.Optionally, include links to your social media profiles. LinkedInlinkedin.com/in/ Portfoliohttps://Submit ApplicationGet StartedTemplatesSupported frameworksMarketplaceDomainsBuildNext.js on VercelTurborepov0ScaleContent delivery networkFluid computeCI/CDObservabilityAI GatewayNewVercel AgentNewSecurePlatform securityWeb Application FirewallBot managementBotIDSandboxNewResourcesPricingCustomersEnterpriseArticlesStartupsSolution partnersLearnDocsBlogChangelogKnowledge BaseAcademyCommunityFrameworksNext.jsNuxtSvelteNitroTurboSDKsAI SDKWorkflow DevKitNewFlags SDKChat SDKStreamdown AINewUse CasesComposable commerceMulti-tenant platformsWeb appsMarketing sitesPlatform engineersDesign engineersCompanyAboutCareersHelpPressLegalPrivacy PolicyCommunityOpen source programEventsShipped on VercelGitHubLinkedIn XYouTubeLoading status…Select a display theme:system lightdarkrequestAnimationFrame(function(){$RT=performance.now()});Products$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")v0Build applications with AI$RC("B:1","S:1")AI SDKThe AI Toolkit for TypeScript$RC("B:2","S:2")
  
  AI GatewayOne endpoint, all your models$RC("B:3","S:3")Vercel AgentAn agent that knows your stack$RC("B:4","S:4")SandboxAI workflows in live environments$RC("B:5","S:5")CI/CDHelping teams ship 6× faster$RC("B:6","S:6")Content DeliveryFast, scalable, and reliable$RC("B:7","S:7")Fluid ComputeServers, in serverless form$RC("B:8","S:8")ObservabilityTrace every step$RC("B:9","S:9")Bot ManagementScalable bot protection$RC("B:a","S:a")BotIDInvisible CAPTCHA$RC("B:b","S:b")Platform SecurityDDoS Protection, Firewall$RC("B:c","S:c")









Web Application FirewallGranular, custom protection$RC("B:d","S:d")Resources$RC("B:e","S:e")CustomersTrusted by the best teams$RC("B:f","S:f")BlogThe latest posts and changes$RC("B:10","S:10")ChangelogSee what shipped$RC("B:11","S:11")PressRead the latest news$RC("B:12","S:12")EventsJoin us at an event$RC("B:13","S:13")DocsVercel documentation$RC("B:14","S:14")AcademyLinear courses to level up$RC("B:15","S:15")Knowledge BaseFind help quickly$RC("B:16","S:16")CommunityJoin the conversation$RC("B:17","S:17")
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  Next.jsThe native Next.js platform$RC("B:18","S:18")NuxtThe progressive web framework$RC("B:19","S:19")
  
  
  
  
  
  
  
  SvelteThe web’s efficient UI framework$RC("B:1a","S:1a")
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  TurborepoSpeed with Enterprise scale$RC("B:1b","S:1b")Solutions$RC("B:1c","S:1c")
  
  AI AppsDeploy at t

Back