@@ -160,10 +160,62 @@ export default function LandingPageTemplate({ config }: Props) {
160160
161161 const locationHero = useLocationHeroMetricsAside ( config ) ;
162162
163+ const CANADA_SLUGS = new Set ( [
164+ 'job-support-canada' , 'proxy-interview-canada' , 'get-interview-scheduled-canada' ,
165+ 'devops-job-support-canada' , 'cloud-job-support-canada' , 'react-job-support-canada' ,
166+ 'java-job-support-canada' , 'python-job-support-canada' , 'ai-ml-job-support-canada' ,
167+ 'nodejs-job-support-canada' ,
168+ 'it-job-support-toronto' , 'it-job-support-vancouver' , 'it-job-support-calgary' , 'it-job-support-montreal' ,
169+ ] ) ;
170+
171+ const CITY_AREA : Record < string , string > = {
172+ 'it-job-support-toronto' : 'Toronto' ,
173+ 'it-job-support-vancouver' : 'Vancouver' ,
174+ 'it-job-support-calgary' : 'Calgary' ,
175+ 'it-job-support-montreal' : 'Montreal' ,
176+ } ;
177+
178+ const isCanadaPage = CANADA_SLUGS . has ( config . slug ) ;
179+ const primaryCity = CITY_AREA [ config . slug ] ;
180+
181+ const canadaServiceSchema = isCanadaPage ? {
182+ '@context' : 'https://schema.org' ,
183+ '@type' : 'Service' ,
184+ name : config . title ,
185+ description : config . description ,
186+ provider : {
187+ '@type' : 'Organization' ,
188+ name : 'Proxy Tech Support' ,
189+ url : 'https://proxytechsupport.com' ,
190+ } ,
191+ areaServed : [
192+ { '@type' : 'Country' , name : 'Canada' , sameAs : 'https://en.wikipedia.org/wiki/Canada' } ,
193+ ...( primaryCity
194+ ? [ { '@type' : 'City' , name : primaryCity } ]
195+ : [
196+ { '@type' : 'City' , name : 'Toronto' , containedInPlace : { '@type' : 'AdministrativeArea' , name : 'Ontario' } } ,
197+ { '@type' : 'City' , name : 'Vancouver' , containedInPlace : { '@type' : 'AdministrativeArea' , name : 'British Columbia' } } ,
198+ { '@type' : 'City' , name : 'Calgary' , containedInPlace : { '@type' : 'AdministrativeArea' , name : 'Alberta' } } ,
199+ { '@type' : 'City' , name : 'Montreal' , containedInPlace : { '@type' : 'AdministrativeArea' , name : 'Quebec' } } ,
200+ ] ) ,
201+ ] ,
202+ serviceType : [
203+ 'IT Job Support Canada' ,
204+ 'Proxy Interview Assistance Canada' ,
205+ 'Interview Support Canada' ,
206+ 'DevOps Support Canada' ,
207+ 'AI ML Support Canada' ,
208+ 'Cloud Support Canada' ,
209+ ] ,
210+ } : null ;
211+
163212 return (
164213 < >
165214 < script type = "application/ld+json" dangerouslySetInnerHTML = { { __html : JSON . stringify ( faqSchema ) } } />
166215 < script type = "application/ld+json" dangerouslySetInnerHTML = { { __html : JSON . stringify ( serviceSchema ) } } />
216+ { canadaServiceSchema && (
217+ < script type = "application/ld+json" dangerouslySetInnerHTML = { { __html : JSON . stringify ( canadaServiceSchema ) } } />
218+ ) }
167219
168220 < style > { `
169221 /* ── CTA buttons ───────────────────────────── */
@@ -691,6 +743,9 @@ export default function LandingPageTemplate({ config }: Props) {
691743 { config . relatedLinks . blogLink . label }
692744 </ a >
693745 ) }
746+ { config . relatedLinks . canadaLinks ?. map ( ( l ) => (
747+ < a key = { l . href } href = { l . href } className = "lp-related-link" > { l . label } </ a >
748+ ) ) }
694749 </ div >
695750 </ div >
696751 </ nav >
0 commit comments