jq tem um filtro, @csv, para converter um array em uma string CSV. Esse filtro leva em consideração a maioria das complexidades associadas ao formato CSV, começando com vírgulas incorporadas nos campos. (O jq 1.5 possui um filtro similar, @tsv, para gerar arquivos separados por tabulação.)
Naturalmente, se os cabeçalhos e valores estiverem garantidamente livres de vírgulas e aspas duplas, talvez não seja necessário usar o filtro @csv. Caso contrário, provavelmente seria melhor usá-lo.
Por exemplo, se o 'Nome da empresa' for 'Smith, Smith e Smith', e se os outros valores forem mostrados abaixo, invocar jq com a opção "-r" produziria um CSV válido:
$ jq -r '.data | map(.displayName), map(.value) | @csv' so.json2csv.json
"First Name","Last Name","Position","Company Name","Country"
"John (""Johnnie"")","Doe","Director, Planning and Posterity","Smith, Smith and Smith","Transylvania"