// Adds dimensions UUID, Author and Topic into GA4
Wednesday, July 15, 2026
30 C
Singapore

Singapore’s finance giants exploit contract hiring frenzy to cut costs

SINGAPORE: According to the 2025 Salary Guide Report of Morgan McKinley, a recruitment consultancy firm in Singapore, the city-state’s financial services sector continues to practise caution in its hiring practices with continued reliance on contract roles.

According to the report featured in an Asian Banking & Finance article, contract hiring has become the foremost approach as companies search for more flexibility and cost control.

Jobs in cybersecurity, compliance, and data analytics are often filled up through project-based contracts rather than permanent employment.

According to McKinley, while there is a continued demand for permanent roles, firms are giving priority to professionals who have the expertise in technical and strategic know-how necessary to push digital revolution and regulatory reworking.

Further, the report stressed that the financial sector has engaged in a restrained method of hiring, with many firms giving significance to replacement hires rather than expanding teams.

Singapore has seen considerable growth in private wealth over the past four years, with assets under management that reached $265b in 2024 This growth meant that private bankers have become the most in-demand job in the Lion City.

- Advertisement -

Hot this week

JD.com-backed consortium plans S$1 billion Singapore REIT IPO: Report

Reports indicate that a consortium comprised of JD.com's asset management platform and Swiss private equity giant Partners Group is preparing to confidentially file for an initial public offering (...

Malaysia: Rising cost of living pressure increased with bus fare hike say netizens

An X user noted that bus ticket prices from Kuala Lumpur to Kemaman have surged by at least 46%. The user added that while Malaysians are told the economy is strong, inflation and rising costs rema...

Popular Categories

document.addEventListener("DOMContentLoaded", () => { const trigger = document.getElementById("ads-trigger"); if ('IntersectionObserver' in window && trigger) { const observer = new IntersectionObserver((entries, observer) => { entries.forEach(entry => { if (entry.isIntersecting) { lazyLoader(); // You should define lazyLoader() elsewhere or inline here observer.unobserve(entry.target); // Run once } }); }, { rootMargin: '800px', threshold: 0.1 }); observer.observe(trigger); } else { // Fallback setTimeout(lazyLoader, 3000); } });
// //
Enable Notifications OK No thanks