Using <JS Post-Damage> or <JS Post-Apply> seems to apply the recoil every hit (my skill hits 5 times).
If your skill hits 5 times, that necessarily means it's dealing its damage 5 times.
<JS Passive Condition>
condition = user.weapons().length == 2 && user.weapons()[0].wtypeId == 4 && user.weapons()[0].wtypeId == 4;
</JS Passive Condition>