Eslint: 'while' 条件の後に { が予期されています

ESLint の警告理由は、return text を波かっこで囲む必要があるためです。

つまり、次のようになります。

  while (
    text !==
    (text = text.replace(/\[title\](.+?)\[\/title\]/gi, function (match, p) {
      return `<div class="job-title">${p}</div>`;
    }))
  ) {
    return text;
  }

JavaScript では波かっこを省略できますが、ESLint は一貫した波かっこスタイルを強制します。

curly ルールに関する詳細はこちらをご覧ください。