Company: Vercel
Remote: No
Posted: 2026-03-16
Status: new
Apply: https://vercel.com/careers/senior-communications-manager-5814159004
Senior Communications Manager ((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; }
}
MarketingSan FranciscoFull TimeSenior Communications Manager Careers /MarketingMarketingSan FranciscoFull 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.We are looking for a Senior Communications manager to join our Communications team to help scale how Vercel shows up in the world. You'll own critical programs that extend our reach beyond traditional media: activating our executive bench as thought leaders, elevating our brand in unexpected places, and deepening our connections with the voices who shape how the industry thinks about the future of AI. You will report to the Head of Communications.About the Role:This role is for someone who can build, run, and grow comms programs with rigor while continually bringing creative ideas to the table. You'll work closely with our communications leadership and cross-functionally with demand gen, growth marketing, field marketing, developer relations, and executive teams to ensure Vercel's story reaches the people who matter most.You will report to our Head of Communications and will be located hybrid in our SF office with in-office anchor days on Monday, Tuesday, and Friday.What You Will Do:Executive Thought Leadership: Develop and execute thought leadership strategies for Vercel's executive bench beyond the CEO, identifying the right platforms, topics, and moments for each leader; securing speaking opportunities, podcasts, and bylines; and helping executives build authentic voices that reinforce Vercel's narrative.Media & Analyst Relations: Own Vercel's media and analyst relations program end-to-end, working closely with agency partners to build relationships with key journalists, content creators, and analysts; coordinating interviews, podcasts, briefings and inquiries; managing report submissions; and ensuring analysts have a clear, current understanding of our platform, positioning, and differentiation.Influencer Engagement: Own relationships with technical influencers, content creators, and community voices who shape developer and buyer opinion. Build a structured approach to engagement, identifying key voices, managing outreach, and creating opportunities for authentic collaboration that goes beyond transactional sponsorships.Sponsorships & Partnerships: Manage communications-driven sponsorships and partnerships, evaluating opportunities, negotiating agreements, and ensuring sponsored content and activations align with our brand and deliver measurable impact.Content Development: Create compelling materials that support these programs: briefing documents, thought leadership drafts, talking points, and pitch materials that are sharp, clear, and on-narrative.Measurement & Reporting: Build systems to track the impact of analyst relations, thought leadership, and influencer programs—reporting on coverage, sentiment, and influence on key audiences.About You:8-10 years of experience in communications, PR, or related fields, with demonstrated experience in at least two of the following: media relations, analyst relations, executive communications, or influencer/community engagement.Experience in B2B technology, developer tools, or infrastructure. You understand how technical audiences think and what resonates with them.Deep understanding of AI and developer communities online. You read Pragmatic Engineer as much as you read The Information. You watch Latent Space as much as CNBC.Strong writing and storytelling skills, with a refined sense of taste. You can translate technical concepts into clear, compelling narratives, and you’re allergic to typical B2B marketing tropes.Excellent relationship-building skills. You know how to earn trust with analysts, influencers, and executives alike.Highly organized with strong program management instincts. You can build repeatable processes while staying flexible at a very high velocity.Comfortable with ambiguity and bias toward action. You figure things out and move fast.Genuine interest in the technology we're building and the community we serve.Bonus If You:Interest in and proficiency with using agents in your workflow.Benefits: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.The San Francisco, CA base pay range for this role is $168,000 - $252,000. Actual salary will be based on job-related skills, experience, and location. Compensation outside of San Francisco may be adjusted based on employee location. The total compensation package may include benefits, equity-based compensation, and eligibility for a company bonus or variable pay program depending on the role. Your recruiter can share more details during the hiring process. 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 Senior Communications Manager role.First NameLast NameEmail AddressPhone NumberResumeUpload your resumeResume should be a PDF under 3.5MB.Are you currently based in any of these countries? Please note these are the only countries where we are accepting applicationsUnited StatesGermanyUnited KingdomArgentinaAustraliaCanadaIndiaJapanOtherWill you require Visa Sponsorship now, or in the future?YesNoYour 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 nationalityI am authorized to work in the country based on a valid work permit and do not need a company to sponsor my visaI am authorized to work in the country based on a valid work permit which needs to be sponsored by the company I work forI am not authorized to work in the country and need visa supportOtherDo 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.YesNoBy 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.U.S. Standard Demographic Questions.At Vercel, we value belonging and believe in fostering an environment where a diversity of perspectives can thrive. As part of this commitment, we invite you to voluntarily provide demographic information. Your responses will be used (in aggregate only) to help us better understand the diversity of our applicants and identify areas of improvement in our recruitment and hiring process. Your responses, or decision not to respond, will be kept confidential and will only be used in aggregate form for diversity and inclusion efforts. This information will not be associated with your specific application and will not be disclosed to the hiring team or used in the hiring decision in any way.Individuals seeking employment are considered without regard to race, color, religion, national origin, age, sex, marital status, ancestry, physical or mental disability, veteran status, or sexual orientation. Asking the below questions help us comply with federal and state Equal Employment Opportunity/Affirmative Action record keeping, reporting, and other legal requirements.How would you describe your gender identity? (mark all that apply)ManNon-binaryWomanI prefer to self-describeI don't wish to answerHow would you describe your racial/ethnic background? (mark all that apply)Black or of African descentEast AsianHispanic, Latinx