Long-running vacancy
This listing is older than 30 days but its source has not removed it. Verify availability on the original company page before applying.
- Work model
- Hybrid
- Experience
- Not specified
- Employment
- Not specified
- Compensation
- Not disclosed
- Technology signal
- 4 tags
Technology context
4Parsed from the vacancy text; ordered by relevance to this role.
Full listing
Role description
class="jobdescription"> We are building a new Customer Success team and are hiring a VP of Customer Success to own our most strategic insurance customers. You will be the customer's senior point of continuity across Support, Delivery, and Sales, and the person accountable for retaining and growing the revenue in your portfolio. This is a named, senior relationship role for people who operate at C-suite level and think commercially - not a shared-queue support function.
Working Model: Hybrid Flexible - London base
About Sapiens
Sapiens International is a global provider of core software for the insurance industry, serving Property & Casualty, Life & Pensions, and Reinsurance carriers worldwide. Our Customer Success team keeps and grows our most strategic customers beyond go-live.
What you will do
- Own the senior relationship for a portfolio of strategic insurance accounts, developing a deep, cross-functional understanding of each customer's business and priorities.
- Own account health and the growth plan for each account; ensure visibility of account and programme health internally and with the customer, and act early on risk.
- Run the full executive business review cycle: preparation, delivery, value story, and follow-through.
- Drive product adoption across your accounts so customers achieve maximum value, and provide early insight and adoption recommendations on new products and features.
- Build the value case that makes each account renewal-ready ahead of the renewal conversation (you do not sign it).
- Identify and qualify expansion opportunities and hand them to Sales to close. You own the signal, not the sale.
- Orchestrate Support, Delivery, and Sales, taking point to drive customer issues to resolution through a standard methodology, so the customer experiences one relationship, not four functions.
- Act as the account-level voice of the customer, feeding feedback into Sapiens' product and Voice-of-Customer loop.
- Carry accountability for Net Revenue Retention across your portfolio.
Scope
You own the customer's success and growth. You do not carry a sales quota or close deals, run support tickets, or run implementation projects - Sales, Support, and Delivery own those. You make accounts renewable, qualify expansion, orchestrate, and escalate on the customer's behalf.
What you will bring (essential)
- 8+ years relevant experience across Customer Success, implementation / delivery, or sales, managing strategic or named accounts.
- Insurance domain experience (P&C, Life & Pensions, or Reinsurance), or enterprise software serving insurers.
- Experience with cloud-native or SaaS delivery and managed solutions.
- Executive presence and communication: able to define a vision, build a persuasive business case, establish personal credibility, and resolve conflicting views at C-suite level.
- Commercial fluency: able to build and defend a value and ROI narrative in the customer's own insurance terms.
- A track record of owning retention and expansion outcomes (NRR / gross retention) on a named book of accounts.
- Able to manage multiple strategic accounts and initiatives simultaneously and under pressure.
- Willingness to travel to customer sites, executive reviews, and company events.
What you will bring (desirable)
- Account planning and growth-plan coordination across multiple work streams.
- Customer-side coaching and change-management experience - executing a plan and adapting to obstacles, not just defining it.
Sapiens is an equal opportunity employer. We value diversity and strive to create an inclusive work environment that embraces individuals from diverse backgrounds.
Natalie.Smith@sapiens.com is your contact for any questions. We kindly ask that you apply through our website or LinkedIn.
We Are
Sapiens International Corporation N.V. is a global leader of AI-centric, SaaS-based insurance software, delivering hyper-relevant experiences that are efficient, compliant, and innovative. With agile intelligence, Sapiens' solutions turn real-time data and human insight into precise action at every moment, across every risk.
The Sapiens platform includes agentic workflows accelerating every capability across policy, underwriting, claims, reinsurance, decisioning, and finance and compliance.
With more than 600 insurers in over 30 countries running on Sapiens, our deep industry expertise is the foundation of our long-term relationships, from initial implementation through to modernization and market transformation.
Sapiens is headquartered in London, serving customers in property and casualty, life, reinsurance, specialty, and workers' compensation from offices across North America, Europe, the Middle East, and Asia Pacific.
Your Recruitment Journey
We will keep you in the loop, as we focus on providing an inclusive screening and interview process. Each country has a local flavor, but here's what you can expect during our recruitment process:
Apply
Take the first step in our journey by submitting an application that reflects your skills, experiences, and professional aspirations.
1
Review
Your CV will be carefully reviewed by our talent team to explore how your unique skills and potential align with Sapiens' needs and culture
2
Interview
This is your opportunity to shine! Meet with our team, showcase your abilities, and learn more about Sapiens
3
Offer
If there's a great match, we'll extend an offer to welcome you to our team. This is the exciting moment when your new journey begins to take shape
4
Onboard
Once you accept, we'll guide you through a comprehensive onboarding process, introducing you to your new colleagues, roles, and the exciting challenges ahead
5
Disclaimer
Sapiens India does not authorize any third parties to release employment offers or conduct recruitment drives via a third party. Hence, beware of inauthentic and fraudulent job offers or recruitment drives from any individuals or websites purporting to represent Sapiens. Further, Sapiens does not charge any fee or other emoluments for any reason (including without limitation, visa fees) or seek compensation from educational institutions to participate in recruitment events.
Accordingly, please check the authenticity of any such offers before acting on them and were acted upon, you do so at your own risk. Sapiens shall neither be responsible for honoring or making good the promises made by fraudulent third parties, nor for any monetary or any other loss incurred by the aggrieved individual or educational institution.
In the event that you come across any fraudulent activities in the name of Sapiens, please feel free report the incident at sapiens to
sharedservices@sapiens.com .
Apply now »
Apply now
-
Start apply with LinkedIn
-
Apply Now
Start
-
Please wait...
Find similar jobs
- Corporate
- Sapiens Global Community
- FAQs
- My Profile
- career@sapiens.com
-
Opens in a new tab.
-
Opens in a new tab.
-
Opens in a new tab.
-
Opens in a new tab.
-
Opens in a new tab.
- Legal Notice
- Privacy Policy
- Candidate Privacy Policy
© 2025 Copyright Sapiens International. All Rights Reserved.
var url_explore_all_locations = '/lp/Sapiens%20Community/c805ef18b6954472/'
const socialIconsGradientHTML = `
- `
const socialIconsHTML = `
`
const breadcrumbsHTML = `
-
- Jobs
`
const searchResultsTitleHTML = `
120 Search Results for "developer"
`;
const copySVG = ` `
const arrowSVG = ` `
const searchResultHTML = `
Fulltime
Hybrid
Subtitle 2
Resident Evil
`;
const favoriteButtonHTML = `
Add to my Favorites
`;
const myNotificationHTML = `
Message here
`;
const COUNTRIES = {
IN: "India",
US: "United States",
CA: "Canada",
GB: "United Kingdom",
IL: "Israel",
PL: "Poland",
LV: "Latvia",
LT: "Lithuania",
TR: "Türkiye",
PT: "Portugal"
}
const myDefaultSlickSettings = {
infinite: false,
slidesToShow: 3,
accessibility: false,
slidesToScroll: 1,
autoplay: false,
autoplaySpeed: 7 * 1000,
dots: true,
arrows: true,
responsive: [
{
breakpoint: 1024,
settings: {
slidesToShow: 2,
}
},
{
breakpoint: 768,
settings: {
slidesToShow: 1.25,
},
}
],
nextArrow: ' ',
prevArrow: ' ',
}
const myExtraSettings = {
slidesToShow: 4,
responsive: [
{
breakpoint: 1660,
settings: {
slidesToShow: 3,
}
},
{
breakpoint: 1024,
settings: {
slidesToShow: 2,
}
},
{
breakpoint: 768,
settings: {
slidesToShow: 1.25,
},
}
]
}
const singleSlideSettings = {
infinite: false,
slidesToShow: 1,
accessibility: false,
slidesToScroll: 1,
autoplay: false,
autoplaySpeed: 7 * 1000,
dots: true,
arrows: true,
nextArrow: ' ',
prevArrow: ' ',
}
function fixDropDownsAndToggles() {
document.querySelectorAll(".dropdown [data-toggle=collapse]").forEach(function (button) {
button.addEventListener('click', function (ev) {
ev.preventDefault();
ev.stopPropagation()
button.toggleAttribute('aria-expanded')
var target = document.querySelector(button.getAttribute("data-target"))
target.classList.toggle("show")
}, true)
})
document.querySelectorAll(".dropdown [data-toggle=dropdown]").forEach(function (button) {
button.addEventListener('click', function (ev) {
ev.preventDefault();
ev.stopPropagation();
var target = button.closest(".dropdown").querySelector("ul");
target.classList.toggle("show")
}, true)
})
}
function fixCountryInLocation(location) {
var country = location.substring(location.lastIndexOf(',') + 1).trim().toUpperCase();
var addr = location.substring(0, location.lastIndexOf(', ')).trim()
if (country.length == 2) {
country = COUNTRIES[country] || country;
location = (addr ? (addr + ", ") : "") + " " + country;
}
return location
}
function extractJobInfo() {
var reqId = null;
var location = "";
document.querySelectorAll(".joblayouttoken").forEach(function (token) {
if (reqId && location) {
return;
}
var text = token.innerText.trim();
if (text.indexOf("Req ID:") == 0) {
reqId = text.replace(/[^0-9]/g, '');
token.remove();
}
if (text.indexOf("Location:") == 0) {
location = text.replace("Location:", "").trim();
token.remove();
}
})
var h1 = document.querySelector(".joblayouttoken h1");
var position = h1.innerText
location = fixCountryInLocation(location)
return { reqId, location, position };
}
function setupFavoriteButton(elem, jobId) {
function setStarState(star, is_active) {
const starContainer = star.closest(".star-container")
if (is_active) {
starContainer.title = "Remove Job from Favorites"
} else {
starContainer.title = "Add Job to Favorites"
}
star.classList.toggle("active", is_active);
const favElem = star.closest(".add-to-favorites");
const starLink = favElem.querySelector(".star-link")
if (starLink) {
starLink.innerHTML = !is_active ? `Add to my Favorites` : `Remove from my Favorites`
}
}
elem.setAttribute('data-favorite-job-id', jobId)
var starContainer = elem.querySelector(".star-container")
var starLink = elem.querySelector(".star-link")
var star = htmlStringToElement(starSVG)
starContainer.appendChild(star);
const bookmarks = JSON.parse(localStorage.getItem("jobBookmarks") || "{}");
var state = bookmarks[jobId];
setStarState(star, !!state)
const starClick = function (ev) {
ev.preventDefault();
ev.stopPropagation();
const bookmarks = JSON.parse(localStorage.getItem("jobBookmarks") || "{}");
var state = bookmarks[jobId];
if (!state) {
var card = elem.closest(".my-search-result");
if (card) {
bookmarks[jobId] = {
location: card.querySelector('.location').innerText.trim(),
position: card.querySelector('.position').innerText.trim(),
href: card.href,
jobId: jobId,
};
} else {
bookmarks[jobId] = {
location: document.querySelector(".value-location").innerText.trim(),
position: document.querySelector(".joblayouttoken h1").innerText.trim(),
href: window.location.href,
jobId: jobId,
};
}
notify("Job added to Favorites")
} else {
delete bookmarks[jobId];
notify("Job removed from Favorites")
}
localStorage.setItem("jobBookmarks", JSON.stringify(bookmarks));
document.querySelectorAll(`[data-favorite-job-id="${jobId}"] .star`).forEach(el => setStarState(el, !state, false))
}
star.addEventListener("click", starClick)
if (starLink) {
starLink.addEventListener('click', starClick)
}
}
function fixJobPage() {
try {
if (!document.body.classList.contains("job-page")) {
return
}
var jobName = document.querySelector(".joblayouttoken h1").textContent
document.querySelectorAll(".job-name").forEach(el => el.textContent = jobName)
document.querySelectorAll(".joblayouttoken *").forEach(function (elem) {
if (elem.style) {
if (elem.style.fontFamily) {
elem.style.fontFamily = "";
}
if (elem.style.fontSize) {
elem.style.fontSize = "";
}
if (elem.style.lineHeight) {
elem.style.lineHeight = "";
}
}
})
var jobId = document.querySelector("[data-careersite-propertyid=facility]").textContent.trim();
var linkedInMode = true;
var apply = document.querySelector(".btn-social-apply");
if (!apply) {
linkedInMode = false
apply = document.querySelector(".dialogApplyBtn");
apply.innerText = "Apply now"
}
apply.classList.add("normal-link")
var cloned = apply.cloneNode(true)
var cloned2 = apply.cloneNode(true)
var container = document.querySelector(".apply-btn-container")
container.appendChild(cloned)
var tokens = document.querySelectorAll(".joblayouttoken");
const lastToken = tokens.length ? tokens[tokens.length - 1] : null;
if (lastToken) {
if (linkedInMode) {
lastToken.after(document.querySelector(".social-apply-button-container"))
} else {
var boo = htmlStringToElement('
')
lastToken.after(boo)
boo.appendChild(cloned2)
}
}
var info = extractJobInfo()
document.querySelector(".job-header-container .value-location").innerText = info.location
document.querySelector(".job-header-container .value-req-id").innerText = info.reqId
// swap between h1 and job header
var jobHeader = document.querySelector(".job-header-container").closest(".customPlugin")
var h1Container = document.querySelector(".joblayouttoken h1").closest(".joblayouttoken")
if (jobHeader && h1Container) {
h1Container.after(jobHeader)
// h1Container.remove()
}
var buttonsContainer = document.querySelector(".joblayouttoken+.social-apply-button-container");
buttonsContainer.style.display = 'flex'
btn = htmlStringToElement(favoriteButtonHTML)
buttonsContainer.appendChild(btn)
document.querySelectorAll(".add-to-favorites").forEach(function (elem) {
setupFavoriteButton(elem, jobId)
});
if (linkedInMode) {
var lastSubmitBtn = [...document.querySelectorAll(".social-apply-button-container")].pop();
} else {
var lastSubmitBtn = [...document.querySelectorAll(".dialogApplyBtn")].pop();
}
lastSubmitBtn.remove()
var copyContainer = document.querySelector(".copy-container")
var copyLink = document.querySelector(".copy-link")
var copy = htmlStringToElement(copySVG)
copyContainer.appendChild(copy);
copyLink.addEventListener('click', function (ev) {
ev.preventDefault();
ev.stopPropagation();
navigator.clipboard.writeText(window.location.href);
notify("Link copied to clipboard")
})
console.log(info)
if (info.country === 'IN') {
document.querySelector(".section.disclaimer").style.display = 'block'
} else {
document.querySelector(".section.disclaimer").style.display = 'none'
}
} catch (ex) {
console.warn("fixJobPage failed", ex)
}
}
function fixSearchResultsPage() {
try {
if (!document.body.classList.contains("search-page")) {
return
}
// breadcrumbs
var before = document.querySelector(".search-page #search-wrapper")
before && before.after(htmlStringToElement(searchResultsTitleHTML))
before && before.after(htmlStringToElement(breadcrumbsHTML))
var options = {
addH1: true,
};
fixSearch(options);
var child = document.querySelector("#search-wrapper");
child.style.visibility = "visible";
var child = document.querySelector("#search-wrapper .span6");
if (child) {
child.classList.remove("col-sm-6")
child.parentNode.classList.add("container")
var child = document.querySelector("#search-wrapper .frequencySpinBtn");
child.type = "text"
child.oninput = null;
var child = document.querySelector("#search-wrapper #savesearch-link");
child.classList.add("form-control")
var label = document.querySelector(".subscribe-frequency-label label");
label.innerHTML = ` Job Alert: I want to receive an alert every`
var child = document.querySelector("#search-wrapper .subscribe-frequency-label");
const textNode = document.createElement("label");
textNode.innerHTML = "days";
child.appendChild(textNode)
}
var bs = document.querySelectorAll(".paginationLabel b");
var count = bs.length > 1 ? bs[1].textContent : 0;
document.querySelector(".search-results-title .number").textContent = count
var searchQuery = document.querySelector(".securitySearchQuery").textContent.trim();
searchQuery = searchQuery.substring(1, searchQuery.length - 2);
document.querySelector(".search-results-title .for-query").textContent = searchQuery ? `for "${searchQuery}"` : '';
renderSearchResults();
doPagination();
} catch (ex) {
console.warn("fixSearchResultsPage failed", ex)
}
}
function doPagination() {
function convertPagination() {
// Find the original pagination
const originalPagination = document.querySelector('.pagination-bottom .pagination');
if (!originalPagination) {
console.error('Original pagination not found');
return;
}
// Extract pagination data from original structure
const paginationData = extractPaginationData(originalPagination);
// Create new Figma-style pagination
const newPaginationDesktop = createFigmaPagination(paginationData, 7);
const newPaginationMobile = createFigmaPagination(paginationData, 4);
newPaginationDesktop.classList.add("flex-on-desktop")
newPaginationMobile.classList.add("flex-on-mobile")
// Insert into target container
const targetContainer = document.getElementById('converted-pagination');
targetContainer.innerHTML = '';
targetContainer.appendChild(newPaginationDesktop);
targetContainer.appendChild(newPaginationMobile);
}
function extractPaginationData(originalPagination) {
const data = {
pages: [],
currentPage: 1,
firstPageUrl: '',
lastPageUrl: '',
totalPages: 0,
totalItems: 0,
itemsPerPage: 15,
currentItemStart: 1,
currentItemEnd: 15
};
// Extract pagination info from label (e.g., "Results 1 - 15 of 299")
const paginationContainer = originalPagination.closest('.pagination-bottom') ||
originalPagination.closest('.paginationShell') ||
document;
const paginationLabel = paginationContainer.querySelector('.paginationLabel');
if (paginationLabel) {
const labelText = paginationLabel.textContent || paginationLabel.innerText;
// Parse "Results 1 - 15 of 299" format
const resultsMatch = labelText.match(/Results?\s+(\d+)\s*[ - -]\s*(\d+)\s+of\s+(\d+)/i);
if (resultsMatch) {
data.currentItemStart = parseInt(resultsMatch[1]);
data.currentItemEnd = parseInt(resultsMatch[2]);
data.totalItems = parseInt(resultsMatch[3]);
data.itemsPerPage = data.currentItemEnd - data.currentItemStart + 1;
data.totalPages = Math.ceil(data.totalItems / data.itemsPerPage);
data.currentPage = Math.floor((data.currentItemStart - 1) / data.itemsPerPage) + 1;
}
// Alternative: Parse "Page X of Y" format from srHelp
const srHelp = paginationContainer.querySelector('.srHelp');
if (srHelp && !resultsMatch) {
const pageMatch = srHelp.textContent.match(/Page\s+(\d+)\s+of\s+(\d+)/i);
if (pageMatch) {
data.currentPage = parseInt(pageMatch[1]);
data.totalPages = parseInt(pageMatch[2]);
}
}
}
const listItems = originalPagination.querySelectorAll('li');
let foundCurrentPage = false;
listItems.forEach(li => {
const link = li.querySelector('a');
if (!link) return;
// Check for first page link
if (link.classList.contains('paginationItemFirst')) {
data.firstPageUrl = link.href;
}
// Check for last page link
else if (link.classList.contains('paginationItemLast')) {
data.lastPageUrl = link.href;
// Try to extract total pages from last page URL
const urlParams = new URLSearchParams(link.href.split('?')[1] || '');
const startRow = urlParams.get('startrow');
if (startRow && data.itemsPerPage) {
const lastPageStart = parseInt(startRow);
const calculatedTotalPages = Math.floor(lastPageStart / data.itemsPerPage) + 1;
if (calculatedTotalPages > data.totalPages) {
data.totalPages = calculatedTotalPages;
}
}
}
// Check for numbered pages (ignore hidden-phone class, it's just for responsive design)
else if (link.textContent.match(/^\d+$/)) {
const pageNum = parseInt(link.textContent);
const isActive = li.classList.contains('active');
if (isActive) {
data.currentPage = pageNum;
foundCurrentPage = true;
}
data.pages.push({
number: pageNum,
url: link.href,
isActive: isActive,
title: link.title || `Page ${pageNum}`
});
// Update total pages based on visible page numbers
data.totalPages = Math.max(data.totalPages, pageNum);
}
});
// If we didn't find current page from results label, but found it from active class, recalculate
if (!foundCurrentPage && data.pages.length > 0) {
// Find the active page from the pages array
const activePage = data.pages.find(p => p.isActive);
if (activePage) {
data.currentPage = activePage.number;
}
}
// Final calculation if we have total items but not total pages
if (data.totalItems > 0 && data.itemsPerPage > 0 && data.totalPages === 0) {
data.totalPages = Math.ceil(data.totalItems / data.itemsPerPage);
}
// Ensure we have at least the current page in totalPages
if (data.totalPages
`;
prevLi.appendChild(prevLink);
ul.appendChild(prevLi);
// Add page numbers
pagesToShow.forEach(item => {
const li = document.createElement('li');
if (item.type === 'dots') {
li.className = 'dots';
li.textContent = '...';
} else {
// Find existing page data or generate URL
let pageData = data.pages.find(p => p.number === item.page);
if (!pageData && item.page = data.totalPages) {
nextLink.style.opacity = '0.5';
nextLink.style.pointerEvents = 'none';
}
nextLink.innerHTML = `
`;
nextLi.appendChild(nextLink);
ul.appendChild(nextLi);
return ul;
}
// Updated to handle current page in middle:
function calculatePagesToShow(currentPage, totalPages, maxVisible = 7) {
const pages = [];
if (totalPages <= maxVisible) {
// Show all pages if total is small
for (let i = 1; i <= totalPages; i++) {
pages.push({ type: 'page', page: i });
}
} else {
// Always show first page
pages.push({ type: 'page', page: 1 });
// Calculate the range around current page
const sidePages = Math.floor((maxVisible - 3) / 2); // Reserve space for first, last, and dots
let startPage = Math.max(2, currentPage - sidePages);
let endPag