If its the actual job object you want to delete, then you'd have to use the SDK to script it out. If its the instances for a particular job then you could use instance 'limits' option to set a max number of instances for a scheduled job and this could work at the 'promotion jobs' folder level. Instance limits is really the only type of cleanup built into the current product and as the name implies, its only for instances, not the schedulable object itself.
As for cleaning up the actual job, I don't know of a script that already exists to do this but it wouldn't be too difficult to create. You would basically just loop through the infoobjects that sit under the parent folder 'Promotion Jobs' and comparing the SI_UPDATE_TS property to see if the time you specify exceeds the age. And issue a "infoobjects.delete(infoobject)" for each infoobject that meets your criteria, and committing it at the end. Just be careful to exclude any object in the cms query you don't want deleted.