Around 20,000 people have taken part in a demonstration in the capital, Berne, organised by the national Trade Unions Federation. It was the largest in over four years.
Saturday's protest in front of the parliament building was called to demand higher salaries, and to push for full pensions to be available from the age of 62.
Turnout was higher than expected, with organisers having estimated that around 15,000 people would participate in the event. Paul Rechsteiner, one of the organisers, said the high numbers whosed that a change of direction was "necessary and even imminent."
The federation wants employees to receive a salary increase of between two and three per cent, and wants people to be able to opt to retire earlier, without being financially penalised.
Earlier in the day, the trade union for transport personnel held a similar demonstration in Berne. The smaller-scale protest was demanding the same salary increases.
A first round of negotiations with the management of the Federal Railways recently broke down without an agreement.
Speaking at the demonstration, Stephan Appenzeller, a spokesman for the transport union, said the talks would likely resume on November 9.
swissinfo with agencies