Every production system has a way to assign jobs to citizens. The basic idea is that the kinds of labor "required" by society for an efficient fulfillment of needs don't necessarily align with those that an unhindered free choice of jobs would afford.
The way this is solved under capitalism is letting labor be a commodity, subject to market forces. Workers earn wages that are determined by the demand for their work and the availability of it. The difference in wages across jobs pushes us towards working jobs we otherwise wouldn't.
I believe the importance of the job market is underestimated in past Marxist literature. It used to be the case that labor was expendable and interchangeable; the availability of any one kind of labor greatly surpassed demand, making wages just a way to keep the proletariat living and reproducing.
However, with an increase in automation, those jobs have long ago disappeared in developed countries, and new ones are taking their place. Notably, these new jobs increasingly require training, which has the effect of making a worker unsuitable for all but their own specialized job.
As a result, wages are now established mainly by market forces. If an employer can, by virtue of the rest of the economy, offer worse working conditions than minimally required by the workforce, they will. Conversely, if a particular kind of labor is sold for a higher price, the employer will oblige.
As a special case that I'd like to mention, those that are very heavily demanded (e.g. public figures, elite sportsmen...) can get extremely high market prices for their labor. This is a new mechanic that has become more common.
I'd like to discuss how a Socialist country would tackle the problem of job distribution, in a way that hopefully offers better guarantees than a free job market.