@@ -23,6 +23,7 @@ const GEO_LABELS: Record<string, string> = {
2323 'job-support-newzealand' : 'New Zealand' ,
2424 'job-support-ireland' : 'Ireland' ,
2525 'it-job-support-dublin' : 'Dublin' ,
26+ 'job-support-texas' : 'Texas' ,
2627} ;
2728
2829function deriveBreadcrumbs ( config : LandingPageConfig ) : BreadcrumbItem [ ] {
@@ -35,6 +36,11 @@ function deriveBreadcrumbs(config: LandingPageConfig): BreadcrumbItem[] {
3536 return [ home , { label : 'Locations' , href : '/job-support-usa/' } , { label : `Job Support ${ GEO_LABELS [ slug ] } ` } ] ;
3637 }
3738
39+ // Texas city / specialty pages
40+ if ( TEXAS_GEO_SLUGS . has ( slug ) && slug !== 'job-support-texas' ) {
41+ return [ home , { label : 'Texas Job Support' , href : '/job-support-texas/' } , { label : shortTitle } ] ;
42+ }
43+
3844 // Tech pages: java-job-support-usa, nodejs-job-support-usa …
3945 if ( ! slug . startsWith ( 'job-support-' ) && slug . includes ( '-job-support-' ) ) {
4046 const tech = shortTitle . replace ( / J o b S u p p o r t .* / , '' ) . trim ( ) ;
@@ -55,6 +61,12 @@ const IRELAND_GEO_SLUGS = new Set([
5561 'production-support-help-ireland' , 'ai-ml-devops-sre-job-support-ireland' , 'project-onboarding-help-ireland' ,
5662] ) ;
5763
64+ const TEXAS_GEO_SLUGS = new Set ( [
65+ 'job-support-texas' , 'it-job-support-dallas' , 'it-job-support-irving' , 'it-job-support-plano' ,
66+ 'devops-job-support-dallas' , 'java-job-support-irving' , 'production-support-help-texas' ,
67+ 'project-onboarding-help-texas' , 'interview-proxy-support-dallas' , 'ai-ml-devops-sre-job-support-texas' ,
68+ ] ) ;
69+
5870function isGeoLandingPage ( config : LandingPageConfig ) : boolean {
5971 return config . slug in GEO_LABELS ;
6072}
@@ -65,6 +77,7 @@ function useLocationHeroMetricsAside(config: LandingPageConfig): boolean {
6577 if ( / - j o b - s u p p o r t - u s a $ / . test ( config . slug ) ) return true ;
6678 if ( config . slug . includes ( 'proxy-interview' ) ) return true ;
6779 if ( IRELAND_GEO_SLUGS . has ( config . slug ) ) return true ;
80+ if ( TEXAS_GEO_SLUGS . has ( config . slug ) ) return true ;
6881 return false ;
6982}
7083
@@ -169,6 +182,7 @@ export default function LandingPageTemplate({ config }: Props) {
169182
170183 const locationHero = useLocationHeroMetricsAside ( config ) ;
171184 const isUSAPage = config . slug === 'job-support-usa' || config . slug === 'proxy-interview-usa' || config . slug . endsWith ( '-usa' ) ;
185+ const isTexasPage = TEXAS_GEO_SLUGS . has ( config . slug ) ;
172186
173187 const CANADA_SLUGS = new Set ( [
174188 'job-support-canada' , 'proxy-interview-canada' , 'get-interview-scheduled-canada' ,
@@ -221,6 +235,33 @@ export default function LandingPageTemplate({ config }: Props) {
221235 ] ,
222236 } : null ;
223237
238+ const texasServiceSchema = isTexasPage ? {
239+ '@context' : 'https://schema.org' ,
240+ '@type' : 'Service' ,
241+ name : config . title ,
242+ description : config . description ,
243+ provider : {
244+ '@type' : 'Organization' ,
245+ name : 'Proxy Tech Support' ,
246+ url : 'https://proxytechsupport.com' ,
247+ } ,
248+ areaServed : [
249+ { '@type' : 'State' , name : 'Texas' , containedInPlace : { '@type' : 'Country' , name : 'United States' } } ,
250+ { '@type' : 'City' , name : 'Dallas' , containedInPlace : { '@type' : 'State' , name : 'Texas' } } ,
251+ { '@type' : 'City' , name : 'Irving' , containedInPlace : { '@type' : 'State' , name : 'Texas' } } ,
252+ { '@type' : 'City' , name : 'Plano' , containedInPlace : { '@type' : 'State' , name : 'Texas' } } ,
253+ { '@type' : 'City' , name : 'Fort Worth' , containedInPlace : { '@type' : 'State' , name : 'Texas' } } ,
254+ ] ,
255+ serviceType : [
256+ 'IT Job Support Texas' ,
257+ 'Proxy Interview Assistance Texas' ,
258+ 'DevOps Support Texas' ,
259+ 'AI ML Support Texas' ,
260+ 'Production Support Texas' ,
261+ 'Interview Support Dallas' ,
262+ ] ,
263+ } : null ;
264+
224265 const irelandServiceSchema = isIrelandPage ? {
225266 '@context' : 'https://schema.org' ,
226267 '@type' : 'Service' ,
@@ -263,6 +304,9 @@ export default function LandingPageTemplate({ config }: Props) {
263304 { irelandServiceSchema && (
264305 < script type = "application/ld+json" dangerouslySetInnerHTML = { { __html : JSON . stringify ( irelandServiceSchema ) } } />
265306 ) }
307+ { texasServiceSchema && (
308+ < script type = "application/ld+json" dangerouslySetInnerHTML = { { __html : JSON . stringify ( texasServiceSchema ) } } />
309+ ) }
266310
267311 < style > { `
268312 /* ── CTA buttons ───────────────────────────── */
0 commit comments