JobEntrySvc.GetNewJobAsmbl() will add an assembly to your JobTableSet. Try calling that before GetNewJobProd().
5 & 8 shouldn’t be necessary. Update() returns your updated job data to you. Not sure what you’re trying to do in step 9. I also don’t see any steps for engineering and releasing the job. Those have particular requirements I wrote about in this post.
Side note: we have a similar situation: fast turnaround orders that need a job quickly. I just run MRP, net change with a short horizon so it only takes 5 minutes, every couple hours. Works well enough.