Using two data sets derived from German administrative data, including a linked employer-employee data set, we investigate the cyclicality of worker and job flows. The analysis stresses the importance of two-sided labour market heterogeneity in this context, taking into account both observed and unobserved characteristics. We find that small firms hire mainly unemployed workers, and that they do so at the beginning of an economic expansion. Later on in the expansion, hirings more frequently result from direct job-to-job transitions, with employed workers moving to larger firms. Contrary to our expectations, workers moving to larger firms do not experience significantly larger wage gains than workers moving to smaller establishments. Furthermore, our econometric analysis shows that the interaction of unobserved heterogeneities on the two sides of the labour market plays a more important role for employed job seekers than for the unemployed.