The slowest part of building a service-business website isn’t the code. It’s the translation layer between what the client sends you and the structured content your components actually need. A wall of text in an email, a Google Doc full of bullet points, a Fluent Forms submission with services jammed into a single textarea. The intake workflow was built to eliminate that bottleneck entirely.
How It Works
There is no CLI command and nothing to install. You open a Claude Code chat session in the project and drop in whatever the client sent you, in any format: a pasted email, a Word doc, a bulleted list, a form export. Claude reads it directly and infers the structure. Business name, tagline, description, services with names and descriptions, team members, locations, testimonials, and FAQs are all parsed, normalized, and written to a single reviewable file before anything touches the codebase.
The Checkpoint Step
Before any content files are written, Claude writes scripts/brief.json as a checkpoint and asks you to review it. This is the most important part of the workflow. Claude is good at parsing unstructured input, but a client who writes “we do landscaping and also some irrigation stuff and snow removal in winter” needs a human to decide whether that’s two services or three, and what to call them. If anything is ambiguous, Claude asks before writing content, rather than guessing.
Read through brief.json, correct anything that looks off, and tell Claude to proceed. There is no separate import command to run. Once you confirm the brief, Claude writes the content files in the same session.
What Gets Written
Claude writes Markdown and YAML files for every content collection that has data in the brief:
src/content/services/*.md: one file per service, with title, description, and metadatasrc/content/team/*.yaml: one file per team membersrc/content/locations/*.md: one file per service areasrc/content/testimonials/*.yaml: one file per review, real quotes only
The site config at src/content/config/site.yaml gets the business name, contact info, social links, and global CTA defaults. Everything the header, footer, and schema components need is populated automatically.
From There to Live
With content in place, the workflow becomes assembly, still inside the same chat session:
- Claude opens each page in
src/pages/and wires up components to match the content - Client images get sourced or dropped into
public/images/[type]/ - If the copy is thin, Claude rewrites the weak sections directly, no separate pass required
npm run buildand deploy
For a typical 6-8 page service-business site (home, about, services index, slug pages, locations, contact) the assembly step takes a couple hours of back-and-forth in the chat. The intake step takes a few minutes once the raw copy is in hand. That’s the whole day’s work.
Why This Matters
The intake workflow doesn’t replace developer judgment. It eliminates the mechanical translation work so you can spend your time on the decisions that actually require judgment: which hero variant fits this client’s brand, how to sequence the sections, whether the testimonials are strong enough to lead with. That’s where the value is. The workflow just clears the path to get there.