Grateful for any advice to a newbie designing his first data warehouse. This is an educational institution where employees can occasionally be employed in more than one job at the same time, while jobs can of course be held (but only at different times) by different employees. Am I right in thinking that a fact table with a grain of the employment situation each day is perfectly adequate for modelling this many to many join and I don't need to create a helper table between the two dimensions as well?

You can handle it by including job in the grain and storing an FTE value for that job in the fact table (so an employee holding two jobs will not be over counted). An employee with multiple jobs would appear in multiple rows at a given point in time. This would avoid having to deal with a multivalued dimension and having to use a bridge.