I am not quite sure what you mean by one Job that requires multiple pickup and multiple deliveries, but if you check this stackoverflow post regarding related jobs in Jsprit, you will find an example given by Stefan (job 13 and 21 in same route AND 21 before 13) where two jobs should be in the same route and their sequence is determined - just like a pickup and its associated delivery should be in the same route and that pickup should be before that delivery.
Basically what you need is to define a soft route constraint to reward when two related jobs are inserted in the same route (or a hard route constraint to forbid them to be inserted into two different routes) and a corresponding objective function. Besides, you need a state updater to record which route each job is in. You can refer again to the example.
Moreover, it can be applied to multiple related jobs (see this stackoverflow post).