Eslint: Esperado { após condição 'while'

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: