O motivo do aviso do ESLint é que você precisa de chaves ({}) envolvendo seu return text;
Ou seja, deve ficar assim:
while (
text !==
(text = text.replace(/\[title\](.+?)\[\/title\]/gi, function (match, p) {
return `<div class="job-title">${p}</div>`;
}))
) {
return text;
}
Embora o JavaScript permita a omissão das chaves, o ESLint impõe o estilo consistente de chaves.
Mais detalhes sobre a regra curly aqui: