A checklist for building new English landing pages on attuned.ai (e.g., /recruiting-agencies/, /plumbing/, /recruitment/). Use the existing pages as reference templates.
These are the rules you've explicitly given. Double-check anything new against them.
[ ] No em-dashes. Neither the unicode — nor the HTML entity —. Use commas, periods, or colons instead. (En-dashes – / – are fine for number ranges like 12–18 months.)
[ ] No "it's not X, it's Y" sentence structures. Avoid the negation-then-replacement pattern in any form: It's not A. It's B. / These aren't A. They're B. / Not a A. Not a B. / is a B problem, not an A problem. Rewrite to assert the positive directly.
[ ] Single <h1> per page. Sub-sections use <h2> / <h3>.
[ ] Marketing copy stays specific. Stats with sources, named customer quotes, named blog posts. No generic claims without a citation or example.
[ ] Include at least one Mastroianni-style metaphor. Borrow a precise, domain-specific concept from the buyer's world (or a related field) and use it to illuminate the abstract problem of motivation, disengagement, or hiring. The metaphor should feel like a small, slightly funny aside that earns a second of stillness from the reader. Place it in the Mechanism section or near a major emotional turn. Examples already in the canon:
"How are you?" is a ritual question that expects a ritual answer. Both parties understand: what's being exchanged is a performance of connection, not connection itself.If you can't find a metaphor in the buyer's domain, take one from physics, biology, or game theory. The point is to surprise the reader without breaking voice.
Every English LP must have all three trackers, gated on user consent.
G-J02EJQ6NWP (EN site; G-FB2TDQ8J1G is the JP site)44136903, script https://js.hs-scripts.com/44136903.jsJMvZ8gzWgVPa2pOdgtag('consent', 'default', { ... })) before any tracking script loads.anonymize_ip config needed.data-cta="<unique-id>" attribute. UTM params are added by the tracking script automatically (per TRACKING.md).cta_click, link_click, and scroll_depth (25/50/75/100%) events.recruiting-agencies-lp / recruiting-agencies)./assets/cookieconsent.umd.js + /assets/cookieconsent-config.js + /assets/cookieconsent-theme.css). Do not build a bespoke cookie banner.type="text/plain" and data-category="analytics" or data-category="marketing". CookieConsent auto-enables them on consent.data-cc="show-preferencesModal".https://www.attuned.ai/privacy-policy.youtube-nocookie.com domain.Every English LP has at least these three CTA destinations:
https://calendar.app.google/R53Cwb9YeHNRuaaL6https://www.attuned.ai/wp-how-to-prevent-unwanted-employee-turnover-download/)data-cta attribute with a unique, descriptive ID.target="_blank" rel="noopener").The plumbing page is the canonical reference. Sections in order:
<details> and mirrored in JSON-LD FAQPage)<title> under 60 chars, includes primary keyword + brand.<meta name="description"> under 160 chars, action-oriented.<meta name="keywords"> with 6-10 audience-relevant terms.<meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1" />.hreflang set to en and x-default.<script> blocks, five schema types):
OrganizationWebPage (with @graph containing BreadcrumbList)SoftwareApplication (Attuned, with offer link to the calendar)FAQPage (mirrors the visible FAQ)alt text. Decorative images use alt="".fetchpriority="high" and is preloaded with <link rel="preload">.loading="lazy" and width/height attributes.(Per CLAUDE.md)
+ in filenames (S3 treats + as a space, file 404s on CloudFront). Use hyphens or spaces./plumbing/ assets where appropriate (dashboard, motivator-report, assessment, disengagement, satisfaction-trend, attuned-logo) instead of duplicating./<lp-name>/og-image.png (PNG is fine for OG)..landing-page marker file at <lp-name>/.landing-page..github/workflows/deploy.yml syncs all of _site/ to S3 on every push to main.<lp-name> to the for dir in loops in scripts/validate-content.sh sections 4 and 6 (per CLAUDE.md) so CI validates your new page.npm run build locally and confirm zero errors before pushing.scripts/validate-content.sh and confirm zero errors (warnings on large legacy images are OK).clamp() for responsive type scaling.role="dialog" with aria-label.aria-expanded toggled.role="button", Enter/Space handler).prefers-reduced-motion respected for any decorative animations.