You are working inside the existing production website repository for:
Your task is to implement a complete Angular SEO content cluster covering:
- Angular service-intent pages
- Angular technical-topic pages
- Angular country pages
- Angular city pages
- Angular interview-support pages
- Angular profile-positioning and candidate-marketing pages
- Angular knowledge-base and problem-solving guides
- Angular full-stack integration pages
- Complete internal linking and funnel navigation
This is a live production website.
You must follow these rules without exception:
- Do not delete any existing file.
- Do not remove any existing page.
- Do not rename any existing route.
- Do not change any existing URL.
- Do not overwrite existing page content.
- Do not redesign existing shared components.
- Do not change existing CSS, JavaScript, layout, navigation, forms, analytics, tracking, APIs, or functionality unless a small additive change is required to expose the new Angular cluster.
- Do not remove or replace existing metadata, schema, internal links, sections, or content.
- Do not create duplicate pages.
- Do not create a page when an equivalent URL or page already exists.
- Do not replace an existing page merely because its slug differs from the suggested slug.
- Reuse the existing website structure, theme, page components, header, footer, CTA blocks, forms, WhatsApp links, contact details, analytics, tracking, and build conventions.
- All work must be additions or safe extensions only.
- The website must continue to build and run exactly as it does now.
Before making any changes, inspect the complete repository and determine:
- Framework and build system
- Existing route-generation method
- Existing page templates
- Existing metadata implementation
- Existing JSON-LD implementation
- Existing sitemap generation
- Existing robots.txt
- Existing internal-linking patterns
- Existing country and city cluster architecture
- Existing Angular pages
- Existing reusable content components
- Existing CTA and conversion funnel
- Existing location data structures
- Existing canonical URL logic
Do not assume the architecture. Inspect it first.
Search the complete repository and sitemap for every route, filename, page title, heading, canonical URL, metadata entry, navigation item, or content reference containing:
- angular
- angularjs
- frontend
- front-end
- full stack
- full-stack
- typescript
- rxjs
- ngrx
- standalone components
- signals
- angular material
- angular interview
- angular job support
- angular developer
- dotnet angular
- java angular
- node angular
Create an internal implementation inventory containing:
- Existing Angular URL
- Existing file path
- Existing page purpose
- Whether the page is indexed
- Whether it is already linked
- Closest proposed equivalent
- Action: keep unchanged, extend links only, or create missing page
Do not print this inventory unless needed for implementation. Use it to prevent duplicates.
Existing pages that may already be present include:
- /angular-job-support/
- /angular-job-support-guide/
- /dotnet-angular-job-support/
These must remain intact.
If equivalent pages already exist under other slugs:
- Keep the existing canonical route.
- Do not create a duplicate.
- Add the existing route to the new Angular hub and cluster linking.
- Update supporting structured data only when safely possible.
- Never create competing pages for the same intent.
Create a clear hierarchical cluster:
Angular Hub → Angular Service Pages → Angular Country Pages → Angular City Pages → Angular Technical Pages → Angular Interview Pages → Angular Profile and Candidate-Marketing Pages → Angular Guides and Knowledge Base → Conversion Funnel
Every new Angular page must link logically upward, downward, and sideways.
No orphan pages are allowed.
Create only when missing:
- /angular-support-services/
- /modern-angular-job-support/
- /angular-production-support/
- /angular-project-onboarding-support/
- /angular-client-call-standup-support/
- /angular-live-project-support/
- /angular-code-review-support/
- /angular-application-debugging-support/
- /angular-performance-support/
- /angular-upgrade-migration-support/
- /angular-architecture-support/
- /angular-enterprise-application-support/
Keep the existing /angular-job-support/ page as the primary transactional job-support page unless the repository already defines another canonical hub.
The central Angular hub should explain and link to:
- Job support
- Production issue support
- Project onboarding
- Architecture support
- Upgrade and migration support
- Interview support
- Profile positioning
- Candidate marketing
- Country pages
- City pages
- Technical Angular topics
- Angular full-stack combinations
Create the following only if equivalent pages do not already exist:
- /usa-angular-job-support/
- /canada-angular-job-support/
- /uk-angular-job-support/
- /ireland-angular-job-support/
- /germany-angular-job-support/
- /netherlands-angular-job-support/
- /france-angular-job-support/
- /sweden-angular-job-support/
- /switzerland-angular-job-support/
- /australia-angular-job-support/
- /new-zealand-angular-job-support/
- /singapore-angular-job-support/
- /hong-kong-angular-job-support/
- /uae-angular-job-support/
- /saudi-arabia-angular-job-support/
- /europe-angular-job-support/
Each country page must contain genuinely localized content, not a simple country-name substitution.
Include where appropriate:
- Local employment market context
- Common Angular role titles
- Enterprise sectors hiring Angular developers
- Local working hours and time-zone support
- Local recruiter terminology
- Contract, permanent, consultancy, MNC, enterprise, offshore, remote, and hybrid role context
- Typical Angular stack combinations in that market
- Country-specific city links
- Links to Angular interview support
- Links to profile positioning and candidate marketing
- Links to Angular production and onboarding support
Do not invent statistics, salary data, employer names, market-share figures, or job volumes.
Only use factual claims already supported in the repository or clearly stable general wording.
Create only when missing:
- /new-york-angular-job-support/
- /dallas-angular-job-support/
- /austin-angular-job-support/
- /houston-angular-job-support/
- /chicago-angular-job-support/
- /atlanta-angular-job-support/
- /charlotte-angular-job-support/
- /seattle-angular-job-support/
- /san-francisco-angular-job-support/
- /san-jose-angular-job-support/
- /los-angeles-angular-job-support/
- /boston-angular-job-support/
- /washington-dc-angular-job-support/
- /jersey-city-angular-job-support/
- /phoenix-angular-job-support/
- /tampa-angular-job-support/
- /irving-angular-job-support/
- /plano-angular-job-support/
- /raleigh-angular-job-support/
- /denver-angular-job-support/
- /minneapolis-angular-job-support/
- /columbus-angular-job-support/
- /nashville-angular-job-support/
- /salt-lake-city-angular-job-support/
- /pittsburgh-angular-job-support/
Each city page must:
- Link to the USA Angular page.
- Link to relevant nearby city pages.
- Link to the central Angular hub.
- Link to Angular interview support.
- Link to Angular production support.
- Link to Angular profile positioning and candidate marketing.
- Include locally relevant industries and enterprise application context without unverifiable claims.
- Avoid copied paragraphs across cities.
Create only when missing:
- /toronto-angular-job-support/
- /vancouver-angular-job-support/
- /calgary-angular-job-support/
- /montreal-angular-job-support/
- /ottawa-angular-job-support/
- /waterloo-angular-job-support/
- /mississauga-angular-job-support/
- /brampton-angular-job-support/
- /edmonton-angular-job-support/
- /halifax-angular-job-support/
Create only when missing:
- /london-angular-job-support/
- /manchester-angular-job-support/
- /birmingham-angular-job-support/
- /leeds-angular-job-support/
- /glasgow-angular-job-support/
- /edinburgh-angular-job-support/
- /bristol-angular-job-support/
- /cambridge-angular-job-support/
- /reading-angular-job-support/
- /nottingham-angular-job-support/
Create only when missing:
- /dublin-angular-job-support/
- /cork-angular-job-support/
- /galway-angular-job-support/
- /limerick-angular-job-support/
Create only when missing:
- /berlin-angular-job-support/
- /munich-angular-job-support/
- /frankfurt-angular-job-support/
- /hamburg-angular-job-support/
- /cologne-angular-job-support/
- /dusseldorf-angular-job-support/
- /stuttgart-angular-job-support/
Create only when missing:
- /amsterdam-angular-job-support/
- /rotterdam-angular-job-support/
- /utrecht-angular-job-support/
- /the-hague-angular-job-support/
- /eindhoven-angular-job-support/
Create only when missing:
- /paris-angular-job-support/
- /lyon-angular-job-support/
- /toulouse-angular-job-support/
- /marseille-angular-job-support/
- /lille-angular-job-support/
Create only when missing:
- /stockholm-angular-job-support/
- /gothenburg-angular-job-support/
- /malmo-angular-job-support/
- /zurich-angular-job-support/
- /geneva-angular-job-support/
- /basel-angular-job-support/
- /bern-angular-job-support/
Create only when missing:
- /sydney-angular-job-support/
- /melbourne-angular-job-support/
- /brisbane-angular-job-support/
- /perth-angular-job-support/
- /adelaide-angular-job-support/
- /canberra-angular-job-support/
- /auckland-angular-job-support/
- /wellington-angular-job-support/
- /christchurch-angular-job-support/
Create only when missing:
- /singapore-angular-job-support/
- /hong-kong-angular-job-support/
- /dubai-angular-job-support/
- /abu-dhabi-angular-job-support/
- /riyadh-angular-job-support/
- /jeddah-angular-job-support/
Avoid route conflicts where a city and country have the same name. Follow the repository’s existing slug conventions.
Before writing version-specific claims, verify the current stable Angular version using official Angular sources if internet access is available.
Do not hardcode an outdated Angular version across every page.
Prefer wording such as “modern Angular” where a specific version is unnecessary.
Create the following only when missing:
- /angular-standalone-components-job-support/
- /angular-signals-job-support/
- /angular-signal-input-output-job-support/
- /angular-zoneless-change-detection-job-support/
- /angular-change-detection-job-support/
- /angular-component-architecture-job-support/
- /angular-smart-presentational-components-support/
- /angular-dependency-injection-job-support/
- /angular-services-job-support/
- /angular-directives-job-support/
- /angular-pipes-job-support/
- /angular-lifecycle-hooks-job-support/
- /angular-content-projection-job-support/
- /angular-dynamic-components-job-support/
- /angular-reactive-forms-job-support/
- /angular-typed-forms-job-support/
- /angular-template-driven-forms-job-support/
- /angular-form-validation-job-support/
- /angular-dynamic-forms-job-support/
- /angular-signals-forms-support/
Only create a signals-forms page if this capability is stable and appropriate in the current Angular ecosystem. Otherwise cover it cautiously within a broader forms page.
- /angular-routing-job-support/
- /angular-lazy-loading-job-support/
- /angular-route-guards-job-support/
- /angular-resolvers-job-support/
- /angular-deferrable-views-job-support/
- /angular-preloading-strategy-job-support/
- /angular-ngrx-job-support/
- /angular-ngrx-signals-store-support/
- /angular-rxjs-job-support/
- /angular-state-management-job-support/
- /angular-component-store-job-support/
- /angular-signals-vs-rxjs-guide/
- /angular-material-job-support/
- /angular-cdk-job-support/
- /angular-bootstrap-job-support/
- /angular-tailwind-job-support/
- /angular-accessibility-job-support/
- /angular-responsive-ui-job-support/
- /angular-enterprise-design-system-support/
- /angular-ssr-job-support/
- /angular-hydration-job-support/
- /angular-prerendering-job-support/
- /angular-performance-optimization-job-support/
- /angular-onpush-job-support/
- /angular-bundle-optimization-job-support/
- /angular-core-web-vitals-support/
- /angular-memory-leak-debugging-support/
- /angular-rest-api-integration-job-support/
- /angular-graphql-job-support/
- /angular-http-client-job-support/
- /angular-interceptors-job-support/
- /angular-authentication-job-support/
- /angular-authorization-rbac-job-support/
- /angular-oauth-oidc-job-support/
- /angular-jwt-job-support/
- /angular-security-job-support/
- /angular-xss-csrf-security-support/
- /angular-unit-testing-job-support/
- /angular-jest-job-support/
- /angular-component-testing-job-support/
- /angular-cypress-job-support/
- /angular-playwright-job-support/
- /angular-e2e-testing-job-support/
- /angular-testing-library-job-support/
- /angular-test-automation-support/
Do not promote obsolete or deprecated testing tools as the preferred modern approach.
- /angular-microfrontend-job-support/
- /angular-module-federation-job-support/
- /angular-nx-monorepo-job-support/
- /angular-monorepo-job-support/
- /angular-enterprise-architecture-job-support/
- /angular-clean-architecture-job-support/
- /angular-feature-based-architecture-support/
- /angular-multi-tenant-application-support/
- /angular-role-based-dashboard-support/
- /angular-docker-job-support/
- /angular-kubernetes-job-support/
- /angular-azure-job-support/
- /angular-aws-job-support/
- /angular-gcp-job-support/
- /angular-azure-static-web-apps-support/
- /angular-aws-cloudfront-s3-support/
- /angular-ci-cd-job-support/
- /angular-github-actions-job-support/
- /angular-azure-devops-job-support/
- /angular-nginx-deployment-support/
- /angular-upgrade-job-support/
- /angular-version-migration-support/
- /angularjs-to-angular-migration-support/
- /angular-modules-to-standalone-migration-support/
- /angular-rxjs-migration-support/
- /angular-material-upgrade-support/
- /angular-webpack-vite-build-migration-support/
- /legacy-angular-modernization-support/
Do not state that Angular officially uses a particular bundler or build engine without checking the current official Angular tooling.
Preserve the existing /dotnet-angular-job-support/ page.
Create only missing pages:
- /angular-nodejs-job-support/
- /angular-java-spring-boot-job-support/
- /angular-dotnet-core-job-support/
- /angular-python-api-job-support/
- /angular-nestjs-job-support/
- /angular-graphql-fullstack-job-support/
- /angular-microservices-job-support/
- /angular-azure-fullstack-job-support/
- /angular-aws-fullstack-job-support/
- /angular-sql-server-job-support/
- /angular-postgresql-job-support/
- /angular-mongodb-job-support/
- /angular-redis-job-support/
- /angular-full-stack-developer-job-support/
When a closely equivalent page exists, reuse it and link it instead of creating a duplicate.
Create only when missing:
- /angular-proxy-interview-support/
- /angular-live-technical-interview-support/
- /angular-coding-interview-support/
- /angular-system-design-interview-support/
- /angular-frontend-architecture-interview-support/
- /angular-senior-developer-interview-support/
- /angular-lead-developer-interview-support/
- /angular-full-stack-interview-support/
- /angular-final-round-interview-support/
- /angular-client-round-interview-support/
- /angular-interview-question-support/
- /get-angular-interview-scheduled/
Country interview pages:
- /angular-interview-proxy-support-usa/
- /angular-interview-proxy-support-canada/
- /angular-interview-proxy-support-uk/
- /angular-interview-proxy-support-ireland/
- /angular-interview-proxy-support-germany/
- /angular-interview-proxy-support-australia/
- /angular-interview-proxy-support-europe/
- /angular-interview-proxy-support-singapore/
- /angular-interview-proxy-support-uae/
Interview-scheduling country pages:
- /get-angular-interview-scheduled-usa/
- /get-angular-interview-scheduled-canada/
- /get-angular-interview-scheduled-uk/
- /get-angular-interview-scheduled-ireland/
- /get-angular-interview-scheduled-germany/
- /get-angular-interview-scheduled-australia/
- /get-angular-interview-scheduled-singapore/
- /get-angular-interview-scheduled-uae/
All language must accurately describe the actual services offered by the website.
Do not make guarantees about passing interviews, employment, selection, salary, recruiter responses, or job offers.
Do not fabricate testimonials, candidate results, employer associations, certifications, or partnerships.
Create only when missing:
- /angular-developer-profile-positioning/
- /angular-developer-resume-optimization/
- /angular-developer-linkedin-optimization/
- /angular-developer-candidate-marketing/
- /angular-developer-job-application-support/
- /angular-developer-recruiter-keywords/
- /angular-full-stack-profile-positioning/
- /senior-angular-developer-profile-positioning/
- /angular-tech-lead-profile-positioning/
Country pages:
- /angular-candidate-marketing-usa/
- /angular-candidate-marketing-canada/
- /angular-candidate-marketing-uk/
- /angular-candidate-marketing-ireland/
- /angular-candidate-marketing-germany/
- /angular-candidate-marketing-australia/
- /angular-candidate-marketing-singapore/
- /angular-candidate-marketing-uae/
Connect these pages to the website’s existing candidate-marketing and get-interview-scheduled funnel.
Create only when missing:
- /what-is-angular-job-support/
- /how-angular-job-support-works/
- /angular-production-issue-support-guide/
- /angular-project-onboarding-guide/
- /angular-application-architecture-guide/
- /angular-performance-optimization-guide/
- /angular-signals-guide/
- /angular-standalone-components-guide/
- /angular-state-management-guide/
- /angular-ngrx-guide/
- /angular-rxjs-guide/
- /angular-reactive-forms-guide/
- /angular-authentication-guide/
- /angular-testing-guide/
- /angular-microfrontend-guide/
- /angular-ssr-hydration-guide/
- /angular-upgrade-migration-guide/
- /angular-interview-support-guide/
- /angular-system-design-interview-guide/
- /angular-developer-resume-guide/
- /angular-developer-job-search-guide/
- /how-to-explain-angular-project-in-interview/
- /how-to-handle-angular-production-issues/
- /how-to-survive-new-angular-developer-job/
- /why-angular-resume-gets-no-calls/
- /why-angular-interviews-are-failing/
- /how-to-get-angular-interviews-scheduled/
Comparison pages:
- /angular-signals-vs-rxjs/
- /angular-ngrx-vs-signals-store/
- /angular-reactive-forms-vs-template-driven-forms/
- /angular-standalone-vs-ngmodules/
- /angular-ssr-vs-csr/
- /angular-jest-vs-jasmine/
- /angular-cypress-vs-playwright/
- /angular-vs-react-enterprise-development/
- /angular-job-support-vs-interview-support/
Comparison pages must be balanced and informational. Do not create misleading “winner” claims.
Each new page must contain:
- Unique SEO title
- Unique meta description
- Unique H1
- Clear introductory section
- Locally or technically relevant body content
- Service scope
- Common problems handled
- Technical stack or scenarios covered
- Who the page is for
- Delivery or engagement process
- Related Angular pages
- Relevant location pages
- Relevant interview or profile pages
- Existing CTA component
- Existing WhatsApp/contact component
- FAQ section
- Breadcrumbs
- Canonical URL
- Open Graph metadata
- Twitter/X metadata if supported by the repository
- Structured data appropriate to the page
- Internal links to at least five relevant pages where appropriate
Do not generate thin pages.
Country and city pages should not be identical templates with only place names replaced.
Technical pages should include meaningful topic-specific sections, examples, troubleshooting scenarios, implementation concerns, production risks, testing concerns, and related-stack links.
Avoid keyword stuffing.
Write naturally for experienced IT professionals working in:
- Enterprise applications
- SaaS platforms
- Banking
- Financial services
- Insurance
- Healthcare
- Retail
- Ecommerce
- Telecom
- Government
- Consulting
- Product companies
- MNCs
- Global capability centres
- Offshore development centres
- Fortune 500 engineering teams
Do not falsely claim that the service has worked for or is affiliated with any named company.
Follow the repository’s existing JSON-LD architecture.
Add appropriate schema only where valid:
- WebPage
- Service
- BreadcrumbList
- FAQPage
- Article
- TechArticle
- CollectionPage
- ItemList
- Organization references using the existing organization entity
Requirements:
- Reuse the same organization identity already present.
- Use canonical absolute URLs.
- Avoid duplicate schema blocks.
- Do not add fake ratings.
- Do not add fake review counts.
- Do not add fake pricing.
- Do not add fake availability.
- Do not misuse LocalBusiness schema without a real physical local office.
- City pages must not imply a physical office in that city unless the site already documents one.
- Validate JSON syntax.
- Ensure all FAQ structured data matches visible FAQ content.
Build a strong Angular funnel.
Angular Hub → Angular Job Support → Country → City → Technical Topic → Interview Support → Profile Positioning → Candidate Marketing → Contact or WhatsApp CTA
- Angular hub
- Angular job support
- Relevant city pages
- Angular interview support
- Angular candidate marketing
- At least three technical Angular pages
- Relevant production or onboarding page
- Parent country page
- Angular hub
- Nearby or relevant city pages
- Angular interview support
- Angular production support
- Angular candidate marketing
- At least two technical pages
- Angular hub
- Angular job support
- Related technical topics
- Angular interview support
- One or more priority country pages
- Full-stack combination pages when relevant
- Angular job support
- Angular interview hub
- Relevant technical preparation pages
- Country interview pages
- Get-interview-scheduled page
- Profile-positioning page
- Angular job support
- Interview support
- Get interview scheduled
- Relevant country pages
- Existing central candidate-marketing page
Create useful breadcrumb navigation for every new page.
Do not create sitewide footer spam containing hundreds of links.
Use:
- Hub pages
- Related-page sections
- Country/city directories
- Contextual links
- Breadcrumbs
- Paginated or grouped location indexes if required
Create an Angular location directory only if an equivalent reusable location index does not already exist:
- /angular-job-support-locations/
Organize by:
- USA
- Canada
- UK
- Ireland
- Germany
- Netherlands
- France
- Sweden
- Switzerland
- Australia
- New Zealand
- Singapore
- Hong Kong
- UAE
- Saudi Arabia
Do not place hundreds of links in a single unstructured block.
Use accessible grouped sections and existing site UI patterns.
Safely add Angular cluster entry points to relevant existing pages such as:
- Technologies directory
- Services directory
- Locations directory
- Frontend/full-stack category page
- Knowledge-base index
- Interview-support directory
- Candidate-marketing directory
Only add links. Do not remove or reorder unrelated existing navigation unless required by the existing component architecture.
Do not overload the primary navigation.
Prefer adding Angular to existing directory or technology-grid components.
Update the existing sitemap-generation system so that:
- Every indexable new Angular page is included.
- Existing URLs remain unchanged.
- Duplicate sitemap entries are eliminated safely.
- Canonical URLs match sitemap URLs.
- Valid last-modified values follow the repository’s current conventions.
- No draft, test, component, tag, or utility routes are added.
- Sitemap XML remains valid.
- Sitemap generation remains automatic if it is currently automatic.
Do not manually maintain conflicting sitemap copies.
Do not add disallow rules that block the new cluster.
Do not change unrelated robots.txt rules.
For every proposed page:
- Search the repository for equivalent intent before creating it.
- Check for slug collisions.
- Check for duplicate title tags.
- Check for duplicate meta descriptions.
- Check for duplicate H1 headings.
- Check canonical consistency.
- Check that the page is linked internally.
- Check that it appears in the sitemap.
- Check that schema is valid.
- Check that visible FAQs match FAQ schema.
- Check that country and city text is meaningfully unique.
- Check that no unsupported statistics or claims were introduced.
- Check mobile layout.
- Check accessibility.
- Check broken links.
- Check build output.
Do not publish thin doorway pages.
A geo page must offer location-relevant context, navigation value, and service information beyond merely inserting a city name.
Do not create all files blindly at once.
Use this sequence:
- Inspect architecture and existing pages.
- Produce the internal inventory.
- Identify exact missing pages.
- Identify reusable templates and data structures.
- Implement the central Angular hub and directory.
- Implement core commercial pages.
- Implement priority country pages.
- Implement city pages through structured data/config only if that matches the repository’s architecture.
- Implement technical pages.
- Implement interview and profile-marketing pages.
- Add contextual internal linking.
- Update sitemap generation.
- Validate schema.
- Run build and tests.
- Fix only issues caused by the new additions.
- Report exactly what was added and what was skipped because it already existed.
When many pages share layout, use the repository’s established data-driven page-generation approach.
Do not introduce a new page-generation framework if the project already has one.
Do not generate hundreds of manually duplicated components when a safe content-data architecture already exists.
However, ensure every generated page has unique content, metadata, FAQs, links, and local or technical relevance.
Run all applicable repository commands, such as:
- Dependency installation only when needed
- Type checking
- Linting
- Unit tests
- Static-site generation
- Production build
- Route validation
- Sitemap validation
- Internal-link checker
- Structured-data validation if available
Do not upgrade dependencies unless absolutely required for the additive content implementation.
Do not modify lockfiles unnecessarily.
Do not apply broad formatting to unrelated files.
Do not auto-fix the entire repository.
Only format files created or directly modified for this cluster.
After implementation, provide:
- Existing Angular pages discovered
- New files created
- Existing files safely extended
- New routes created
- Proposed routes skipped because equivalents already existed
- Country-page count
- City-page count
- Technical-page count
- Interview-page count
- Profile/candidate-marketing page count
- Guide-page count
- Sitemap changes
- Internal-linking changes
- Structured-data changes
- Tests and build commands executed
- Build/test results
- Any remaining warnings
- Confirmation that no existing page, route, content, functionality, tracking, or design was removed
The task is not complete unless:
- Existing Angular pages remain intact.
- No duplicate Angular intent pages are created.
- All new pages are indexable where appropriate.
- Every new page has a canonical URL.
- Every new page has unique metadata and H1.
- Every new page is in the sitemap.
- Every new page has internal inbound links.
- No orphan pages exist.
- Country pages connect to their cities.
- City pages connect to their country.
- Technical pages connect to commercial pages.
- Interview pages connect to the conversion funnel.
- Profile-marketing pages connect to existing candidate-marketing services.
- JSON-LD is valid.
- The production build succeeds.
- No existing functionality is broken.
- All changes are strictly additive.
Start by auditing the repository.
Do not create or modify anything until the audit confirms the correct architecture and exact list of missing pages.