0
Since MapThread accepts a level specification, I think our ragged MapThread function should too.
raggedMapThread[f_, expr_, level_Integer: 1] :=
Apply[f, Flatten[expr, List /@ Range[2, level + 1]], {level}]
Example:
a = {{{67, 47}, {5, 99}, {70, 44}, {9}},
{{75, 70}, {61}, {16, 23}, ...