I just got done implementing an automated approval management system using a Process Builder orchestration which dynamically sets the approvers via an Apex invocable method then launches a specific approval process:
1. Call invocable method (APEX) to set the approver lookup field on the object record; update the record.
2. Call the approval process of choice. Disregard the entry criteria if you want process builder logic to make that determination.
3. The approval process starts and sets the approver to be the user your method set in the object record.
There you go: Parametrically Driven Approval Chains!