createJob should probably operate at the level of creating a job from supplied XML (basically just wrapping the client.post_xml call). Generating this XML from a template + configuration is really a separate concern.