Header Navigation

Mobile Navigation

Hero - Rewards and benefits

Benefits - Content

Core rewards and benefits

Smith & Williamson is committed to offering competitive salaries across all levels in the firm. We gather our market data through a third-party provider and agencies to ensure we remain competitive. Any offers made will be in line with your level of experience, qualifications and location.

Agile and flexible working

To expect the best from our people, Smith & Williamson must enable our people to make the most of their work/life balance. We are lucky enough to be able to offer agile and flexible working to our people to accommodate your needs outside of work.

We have a network of 11 offices in the UK, Ireland and Jersey, and a breadth of clients across our different locations. It is essential that our teams are set up with the correct infrastructure to allow our people to work anywhere. Agile working is key to us to enable flexibility and develop trust with our advisers. It is encouraged (where applicable) to be as agile as possible within respective teams and utilise other offices. At times, depending on department, it may be required to travel internationally too.

We are also able to offer flexible working to support your lifestyle. As an employer we understand that you may have commitments outside of work and therefore subject to the need of the business upon hiring, we will be able to discuss and offer flexible working policies to suit you best.

CTA Footer

Are you interested?

View all opportunities

Footer

Fehler bei der Verarbeitung der Vorlage.
The following has evaluated to null or missing:
==> propsUtil.get(ucmLocaleKey)  [in template "64056#64102#365043" at line 5, column 19]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign locale = propsUtil.get(ucmLoc...  [in template "64056#64102#365043" at line 5, column 1]
----
1<div id="outer-footer" class="updatedFooter" style="padding-left: 0px; width: 1640px;"> 
2	 <div id="inner-footer-expert" class=""> 
3 
4<#assign ucmLocaleKey = themeDisplay.getLocale()+"."+siteType+"."+"ucmLocale"> 
5<#assign locale = propsUtil.get(ucmLocaleKey)/> 
6<#assign apiUrl = propsUtil.get("WEB72_API_DOMAIN")/> 
7 
8<#assign lr74CutoverCountryCode = propsUtil.get("LR74_CUTOVER_COUNTRY_CODE")/> 
9<#assign hays_logo = propsUtil.get("HAYS_LOGO")/> 
10 
11<#if lr74CutoverCountryCode??> 
12<#list lr74CutoverCountryCode?split(",") as countryCode> 
13 <#if countryCode = themeDisplay.getLocale()?keep_after_last("_") > 
14    <#assign apiUrl = propsUtil.get("API_DOMAIN")/> 
15 </#if> 
16</#list> 
17</#if> 
18 
19<#attempt> 
20 
21<#if httpUtil.URLtoString(apiUrl+"/o/HaysContentStructure/getcontentstructure/expertFooter/"+locale)??> 
22<#assign response = httpUtil.URLtoString(apiUrl+"/o/HaysContentStructure/getcontentstructure/expertFooter/"+locale)> 
23<#assign responseObj = jsonFactoryUtil.createJSONObject(response)> 
24<#if  responseObj?? && responseObj.results?? && responseObj.results?has_content> 
25<#assign getResponseResultArray = responseObj.getJSONArray("results")> 
26<div id="footer-bottom"> 
27 <#if getResponseResultArray.length() gt 0> 
28 <#assign siteUrl = getResponseResultArray.get(0).siteUrl> 
29 
30 <#if getResponseResultArray.get(0).getJSONArray("GroupHeading")?? && getResponseResultArray.get(0).getJSONArray("GroupHeading").length()?? && getResponseResultArray.get(0).getJSONArray("GroupHeading").length() gt 1> 
31 
32 <#assign groupHeadingArr = getResponseResultArray.get(0).getJSONArray("GroupHeading")> 
33 	<div class="row single-col gpHeading"> 
34	 <div class="col col-12"> 
35		 <nav> 
36			<ul> 
37			<#list 0 ..< groupHeadingArr.length()?number as i> 
38			    <#if groupHeadingArr.get(i).Link?starts_with("/")> 
39			     <#assign linkUrl = siteUrl + groupHeadingArr.get(i).Link> 
40					<li> 
41						<a href="${linkUrl}" target="">${groupHeadingArr.get(i).GroupHeading}</a> 
42					</li> 
43				<#else> 
44				    <li> 
45						<a href="${groupHeadingArr.get(i).Link}" target="">${groupHeadingArr.get(i).GroupHeading}</a> 
46					</li> 
47				</#if> 
48			</#list> 
49			</ul> 
50		  </nav> 
51		 </div> 
52	  </div> 
53	 <#elseif getResponseResultArray.get(0).getJSONArray("FooterLink")??> 
54	 <#assign FooterLinkArr = getResponseResultArray.get(0).getJSONArray("FooterLink")> 
55	 <div class="row single-col gpHeading"> 
56		<div class="col col-12"> 
57		 <nav> 
58			<ul> 
59			<#list 0 ..< FooterLinkArr.length()?number as i> 
60			     <#assign linkUrl = FooterLinkArr.get(i).FooterLink?replace("href=\"/", "href=\""+siteUrl+"/" ) > 
61					<li> 
62						${linkUrl} 
63					</li> 
64			</#list> 
65			</ul> 
66		  </nav> 
67		 </div> 
68	  </div> 
69 
70	 </#if> 
71 
72 
73	 	<div class="footer-added"> 
74 			<img src="${hays_logo}"></img> 
75 			<div class="copyright"> 
76			<p> 
77	    	<p class="last">${getResponseResultArray.get(0).CopyrightHTML}</p> 
78 
79			</p> 
80			</div> 
81			</div> 
82	</#if> 
83</div> 
84</#if> 
85</#if> 
86<#recover> 
87 
88</#attempt> 
89 
90 
91	</div> 
92</div> 
93<script> 
94window.addEventListener('DOMContentLoaded', function () { 
95    var consent = document.getElementById("teconsent"); 
96 
97    // Find the <ul> inside the nav of gpHeading 
98    var ulElement = document.querySelector(".gpHeading nav ul"); 
99 
100    if (consent && ulElement) { 
101        var liWrapper = document.createElement("li"); 
102        liWrapper.appendChild(consent); 
103        ulElement.appendChild(liWrapper); 
104    } else { 
105        console.log("Consent element or target UL not found."); 
106
107}); 
108 
109$(document).ready(function(){ 
110    if((Liferay.ThemeDisplay.getLanguageId() != "en_GB") && (location.href.indexOf("/web/") != -1)) { 
111	console.log("link update required on the site"); 
112	$('a').each(function(index) { 
113		var layoutRelativeUrl = Liferay.ThemeDisplay.getLayoutRelativeURL(); 
114        var getSiteUrl = layoutRelativeUrl.substring(0, layoutRelativeUrl.lastIndexOf("/")); 
115		var linkVal = $(this).attr("href"); 
116		if((typeof linkVal !== "undefined") && linkVal.indexOf("https") == -1 && linkVal.indexOf("/")!= -1 && (linkVal.indexOf("/") === linkVal.lastIndexOf("/"))){ 
117		var updatedLink = getSiteUrl + linkVal ; 
118		$(this).attr("href", updatedLink) 
119		console.log("link updated - " + updatedLink); 
120
121	}); 
122
123}); 
124</script>