My system knows only public key so it can calculate average salary for specific job title
Actually, you can compute the sum; computing the average, that is, the value $\text{Encrypt}_k( \lfloor sum / n \rfloor )$ is rather trickier (and the floor operation is necessary if $sum$ is not necessarily a multiply of $n$ the number of values).
This could be handled by either computing $\text{Encrypt}_k( sum )$, and sending that and the value of $n$ to company A, B, C (which can decrypt and then divide). Or, by having each company implicitly multiply each salary they encrypt by $k!$ (for a reasonable value of $k$); then (assuming $n$ isn't too large), we can compute $\text{Encrypt}_k( n^{-1} \cdot sum )$, which would be the value we want (with the implied scaling factor still there).
To avoid frequency attack I want to encrypt text data (company name and job title) using pailler as well.
Will the companies encrypt the job title or would you? If they encrypted it, you don't have access to it, and so you wouldn't know which to sum.
On the other hand, if they provided the job titles in the clear and you encrypted it, that'd be fine (if, in my opinion, a bit pointless).
However, your question really was:
Let’s say in my system was data leak and somebody have all informations in encrypted form (private key is not compromised) do you think he can perform any attack to decrypt data?
You'd be fine - with Paillier, the attacker cannot retrieve any information from the ciphertext (assuming that the private key and the random values used during the encryption process is secure); even if he knew that the plaintext is one of two values, he still cannot determine which it is.