Product Block 10 · Sellable today
Personal Brand Site + Booking
A solo lawyer / dentist / advisor goes from invisible to bookable in one day. $2k flat.
Best fit: Solo lawyers, dentists, financial advisors, contractors going independent. The wedge before upselling Block 02 (intake) or Block 06 (doc search).
Personal Brand Site + Booking — build it without writing code
Drop the prompt below into Claude Code or Codex. The agent picks a freshly-solo professional from a LinkedIn alert, generates a draft site using their LinkedIn bio + photo, hosts it at draft.cafecito-ai.com/<their-slug> as the cold-pitch artifact, and drafts the LinkedIn DM with the URL. If they say yes, the agent then deploys to their domain.
You provide
You provide: (1) a LinkedIn URL of a professional who went solo in the last 90 days, (2) the 5-min phone interview answers (or a forwarded LinkedIn DM thread).
You get back
You get: a hosted draft site at draft.cafecito-ai.com/<their-name> with their photo + bio + 3 services + Cal.com booking embed, a LinkedIn DM draft, and (if they say yes) a one-day deploy to their domain.
Runtime & cost
Roughly 60 minutes wall-clock for the draft. Another 4 hours if they convert and we deploy to their domain.
You are building a Personal Brand Site + Booking (Block 10 in the Cafecito AI new-hire playbook). Full reference at https://cafecito-ai.com/new-hire/blocks/10-personal-brand-site-booking. Read it. Use plan mode. Stop at every [GATE].
INPUTS YOU NEED FROM THE HUMAN (ask before doing anything else):
1. LinkedIn URL of a freshly-solo professional (lawyer / dentist / financial advisor / consultant — left big firm in last 90 days)
2. Their LinkedIn announcement excerpt (paste the post text)
3. A 5-min phone or DM interview answers (use the questions in Block 10 prompt #1)
ENVIRONMENT (verify):
- Working dir: /home/eratner/cafecito-ai
- Cloudflare account: f7a9b24f679e1d3952921ee5e72e677e
- Reference scaffold: an existing single-page Astro site (any of the cafecito-ai client sites)
SECRETS TO CONFIRM:
- ANTHROPIC_API_KEY (Claude)
- (Cal.com / Stripe accounts created per-prospect, not pre-shared)
THE PLAN:
STEP 1 — RESEARCH + COPY GENERATION (15 min)
- Pull LinkedIn URL — get full work history, photo URL, education, publications.
- Use Prompt #1 from the block page ("Bio generator from LinkedIn + 5-minute interview") with the LinkedIn data + the interview answers.
- Output: hero tagline + bio + 3 service descriptions + 3 LinkedIn-post seeds.
[GATE 1 — show the generated copy, ask "in their voice?"]
STEP 2 — SCAFFOLD ASTRO SITE (15 min)
- Create /home/eratner/cafecito-ai/draft-<their-slug>/.
- Single-page Astro: hero (photo + name + tagline), bio paragraph, 3 service cards, embedded Cal.com booking widget, contact footer.
- Editorial palette: cream/ink + accent color matched to their industry (legal: navy gold; healthcare: clean teal; finance: dark blue).
- Use their LinkedIn photo (or instruct human to ask for headshot if LinkedIn quality is too low).
- Mobile-first.
[GATE 2 — show local preview, ask "ready to deploy as draft?"]
STEP 3 — DEPLOY DRAFT (5 min)
- Deploy as a route on the cafecito-ai worker: /draft/<their-slug> serves the static HTML.
- Print the live URL.
[GATE 3 — confirm URL loads, ask "ready to send the LinkedIn DM?"]
STEP 4 — DRAFT THE LINKEDIN DM (5 min)
- Use Prompt #4 from the block page ("Cold pitch to a freshly-solo professional") with: their LinkedIn announcement excerpt + the draft URL.
- Output: 3-sentence DM (LinkedIn version) + 2-sentence WhatsApp version (if phone known).
[GATE 4 — show drafts, ask the human to send manually via LinkedIn]
STEP 5 — IF THEY REPLY YES (4 hours, only when triggered)
- Wait for the human to forward the prospect's reply.
- If yes:
a) Buy domain (or transfer existing) — Namecheap CLI or manual through dashboard. Set DNS to Cloudflare.
b) Move site from /draft/<slug> to a new Workers route + custom domain binding.
c) Create Cal.com account in their email (they verify). Set up appointment type.
d) If paid consults: create Stripe account in their name (they verify). Connect to Cal.com.
e) Set up the bi-weekly LinkedIn content engine (Prompt #3 from block page) with their LinkedIn OAuth token.
f) Final smoke test: book a slot end-to-end.
- Send the handoff email: dashboard logins, content engine status, monthly invoice schedule.
STEP 6 — SHIP THE SUMMARY
- Single-line: "[NAME] draft site at [URL] · LinkedIn DM sent" (then "→ live at [DOMAIN]" after Step 5 if converted).
- Append to /home/eratner/cafecito-ai/draft-shipped.md.
DONE.
GUARDRAILS: NEVER use stock photos — real LinkedIn photo or no photo. NEVER fabricate bar admission / license info — only use what's verifiable on LinkedIn or their state bar/ADA/SEC profile. Cost ceiling: $2 in Claude. Domain transfers cost $20 (their reimbursement).
01Stack▾
- Astro
- Cloudflare Pages
- Stripe
- Cal.com
- Resend
03Day-1 plan▾
A real prospect. A real demo. A real outbound message — all before 5pm.
-
09:00–09:30
Pick a fresh-solo-operator with no real web presence.
LinkedIn alerts: "[NAME] left [BIG FIRM] to start [NEW SOLO PRACTICE]" in the last 90 days. They have urgency (need clients now) and budget (just took an equity payout) and zero current marketing.
-
09:30–10:00
5-minute interview to capture the bio.
Phone call or DM: "tell me what you do, who you serve, why you left, what you charge, where they can reach you." Five minutes.
-
10:00–10:30
Generate the bio + 3 service descriptions.
Claude takes interview notes + their LinkedIn → produces 1-paragraph bio + 3 service descriptions. First-person voice. No "results-oriented professional" filler.
-
10:30–11:30
Build the Astro site.
Single page. Hero (photo + name + tagline), bio, services, booking embed, contact. Editorial design — Fraunces + Inter, cream/ink palette, accent color matched to industry. Mobile-first.
-
11:30–12:00
Wire Cal.com.
Create Cal.com account for them. One appointment type: "free 20-minute consult" or "60-minute paid consult $X." Embed inline. Customer gets confirmation. Done.
-
12:00–12:30
Wire Stripe (if paid consults).
Create Stripe account in their name. Connect to Cal.com. Customer pays at booking. Money lands in their bank in 2 days. Paid-consult model filters tire-kickers and feels premium.
-
12:30–13:30
Build the content engine.
Cron at noon every Mon/Thu: Claude generates a LinkedIn post + one-paragraph blog snippet on a topic from their service list. Auto-posts to LinkedIn. Bi-weekly cadence keeps them visible without overwhelming.
-
13:30–14:00
Buy + configure the domain.
If they have a domain: configure DNS, add HTTPS, deploy. If they don't: Namecheap + their preferred name + DNS to Cloudflare in 20 min. Domain transfer is a $20 hill they don't want to climb — do it for them.
-
14:00–14:30
Deploy + smoke test.
Deploy to Cloudflare Pages. Test on mobile + desktop. Test booking flow end-to-end. Test Stripe flow. Test content cron.
-
14:30–17:00
Onboarding call + delivery.
30-min call: walk them through the dashboard. Show how to update bio. Hand off credentials. Close: "$2k flat — done. Or $200/mo if you want me to keep the content engine running."
04Best practices & gotchas▾
-
One page, not five. Decision fatigue kills conversion.
Why: A solo lawyer's site doesn't need a "Services" page, "Bio" page, "Approach" page, and "Contact" page. Visitors leave before clicking. One scrollable page converts 3-5x better.
-
Photo above the fold. Trust signal #1 for a service business.
Why: Lawyers, dentists, advisors are hired based on trust. The face is the trust signal. A site without an owner photo above the fold reads as either a marketing agency front or a not-yet-real business. Use a real photo — never stock.
-
Cal.com replaces phone tag. Make it obvious.
Why: A "contact me" form means the prospect waits 24-48h for a reply, then 48h for a call. Most don't make it past the first wait. A "book a 20-min call" button right in the hero closes them in 60 seconds.
-
Paid consults filter tire-kickers and elevate the brand.
Why: A free 20-min attracts everyone. A $50 or $100 paid consult attracts only people serious enough to pay $50. Refundable on engagement.
-
Content engine = bi-weekly LinkedIn posts on autopilot.
Why: Solo professionals know they should post on LinkedIn but don't. The content engine writes 2 posts/week from their service list. Compounds over a year into real audience without daily effort.
-
Domain transfer is a $20 task they don't want to climb. Do it for them.
Why: The single biggest blocker to "let me think about it" is the domain — they have to find their old GoDaddy login, transfer DNS. Offering to handle the entire domain setup takes the friction off the table.
-
Never use stock photos. Real photos or no photos.
Why: Stock-photo professionals signal "I didn't care to use my own face" and erode trust instantly. Use the owner's actual photo, or use no photo and let typography carry. Better empty than fake.
05Prompts (copy-paste)▾
Drop these into Claude Code. Replace the [BRACKETED] fields with the prospect's details.
Takes the LinkedIn URL + interview notes and produces a clean bio + 3 service descriptions.
Generate the homepage copy for [PROFESSIONAL NAME], a solo [profession] in [CITY] who just left [PREVIOUS FIRM] to start their own practice.
Inputs:
- LinkedIn URL: [URL]
- Interview notes (from a 5-minute call):
[paste raw notes]
- Their preferred tone: [warm-and-personal / professional-and-direct / quirky-and-distinctive]
Generate:
1. **Hero tagline** (under 12 words): one-line position statement.
Example: "Estate planning for first-generation Cuban-American families in Coral Gables."
2. **Bio** (1 paragraph, under 100 words, FIRST PERSON):
- Who they are professionally
- Who they serve
- One specific differentiator
- Why they went solo
- Low-key invitation to book a call
3. **3 service descriptions** (each 2-3 sentences):
- Pull from interview notes + LinkedIn experience
- Each: what it is, who it's for, what they'll come away with
- Plain language
4. **3 LinkedIn-post seeds** for content engine first week:
- Each is a topic + 2-sentence angle
- Pulled from their actual experience or current events in their field
Constraints:
- First person throughout. Never "John helps clients..."
- No "results-oriented" / "passionate" / "synergistic" jargon.
- Sound like a real human.
- If inputs don't support a confident statement, leave it out — don't fabricate credentials.
Output as four labeled sections.
Step-by-step prompt that generates the booking + payment flow setup.
Configure Cal.com + Stripe for [PROFESSIONAL NAME], a solo [profession].
Pricing model:
- Initial consult: [free 20-min / paid 30-min at $X / paid 60-min at $X]
- Follow-up: [free / $X]
- Engagement onboarding: [described]
- Optional add-ons: [described]
Generate:
1. **Cal.com appointment type** (JSON for API):
- Initial consult with right duration, price, buffer (15 min before/after), max-per-day cap (5).
- Description: 2-3 sentences on what to expect.
- Booking questions (3 max): name, email, "what would you like to discuss" (textarea, optional).
- Reminders: 24h before + 1h before via email + SMS.
- Cancellation policy: 24h notice for free.
2. **Stripe product + price** (if paid):
- Product name, description, image URL placeholder.
- One-time price USD with tax handling (Florida + customer location).
- Connect to Cal.com via official integration.
- Refund policy text for confirmation email.
3. **Booking-confirmation email template**:
- Includes: booking time, Zoom/in-person link, what to bring, cancellation policy, professional's direct phone, .ics attachment.
- Tone matches site tone.
4. **No-show handler**: 24h after missed appointment, send no-show email asking to re-book. Charge no-show fee if applicable.
Output: Cal.com JSON + Stripe API curl commands + email HTML.
Generates the cron + Claude prompt that produces 2 LinkedIn posts/week in the professional's voice.
Build me a bi-weekly LinkedIn content engine for [PROFESSIONAL NAME], a solo [profession] in [CITY].
Schedule: Mon at 9am ET + Thu at 9am ET. Two posts per week.
Per-post:
1. **Topic source**:
- Their service list — pick a service not featured in last 4 weeks, write a "common misconception" post.
- Current events in their field (RSS — ABA Journal for lawyers, ADA News for dentists). Their take.
- A customer scenario (anonymized) — "had a client this week who didn't know X."
2. **Post structure** (LinkedIn-native, 1100-1300 chars, no emojis, 2-3 hashtags):
- Hook line (under 10 words) — visible before "see more."
- 2-3 paragraphs of substance — opinion + evidence + one specific anecdote.
- 1-line CTA at end ("Talk through your situation: [Cal.com link]").
- 2-3 hashtags relevant to their niche.
3. **Auto-publish**:
- Via LinkedIn API (their OAuth token) directly OR Buffer/Hypefury queue.
- Log every post to D1 with topic, performance after 7 days.
4. **Voice consistency**: every post passes "would [PROFESSIONAL NAME] actually say this?" against their bio + previous 5 posts via similarity check before publishing.
Bindings: D1 CONTENT_DB, Cron Trigger 0 13 * * 1,4, secrets ANTHROPIC_API_KEY + LINKEDIN_ACCESS_TOKEN + RSS_FEED_URLS.
Output: complete worker.js, topic-rotation logic, voice-consistency check, sample first 4 posts (Week 1).
The outreach to lawyers/dentists/advisors who just announced they went independent on LinkedIn.
Write a 3-sentence cold message + 2-sentence WhatsApp follow-up to [NAME], who just announced on LinkedIn they're going solo as a [profession] in [CITY].
LinkedIn announcement excerpt: [paste]
Setup: I noticed their announcement [N days ago]. They have a basic LinkedIn but no website yet. They're probably 2-3 weeks into "I need to figure out marketing" overwhelm. I'm offering: $2k flat for a one-day-built personal brand site with bio + booking + payment + a content engine.
Message:
- Open by referencing their specific announcement
- Acknowledge what they're probably feeling (marketing-stack overwhelm)
- Offer one-day delivery + flat price + what's included
- One yes/no question that makes "yes" easy ("want me to put together a quick mockup with your name + bio by tomorrow?")
WhatsApp:
- One line referencing the email
- Include link to a sample site (use one of the recently-built ones)
- Offer 5-min call to capture the bio later this week
No emojis. No "circle back." Friendly but professional.
Send via LinkedIn DM AND email if their email is findable. Both, same day.
06Selling script▾
Discovery question (ask this first)
"How are you currently telling new clients where to find you? When someone Googles your name today, what do they see?"
The frame
Going solo as a professional in a Miami service business is the hardest 90 days of your career. Every day you don't have a real web presence is a day a referral that gets sent to you can't verify you're real, can't book a time, can't see what you do. The $2k buys you back the marketing layer you need to actually start the practice you went solo to build.
The demo play
Pre-build a draft of THEIR site (bio from LinkedIn, 3 services from their old firm's page, photo from LinkedIn) — host at draft.cafecito-ai.com/[name]. Send the URL with the cold message. They click. They see their own face on a site that's already 80% done.
Objections
-
"I don't need a website yet."
"You're right that you don't need a five-page website. You do need a single page that someone Googling you can land on, see your bio, and book a 20-minute call. The version that takes 3 months and $15k from a web agency is not what I'm proposing — the version that takes one day and $2k is."
-
"My clients come from referrals."
"Then you especially need this. When someone refers you, the FIRST thing the referee does is Google your name. If they find your old firm's page (or worse, nothing), the referral cools by the time they get to your inbox."
-
"I want to use WordPress / I have a friend."
"Both fine paths if you have 3 months. The reason this is one day is no themes, no plugins, no client revisions. It's opinionated and fast. If you want WordPress later, the content I generate is portable — I'll hand you the bio + service descriptions in markdown."
-
"$2k flat is a lot upfront."
"It's the alternative to $5-15k from a web agency or $200-500/mo to a marketing service for a year. The flat $2k closes the marketing question for the year."
The close
"$2k now, your site lives by Friday on your domain with your bio, booking, and payment wired. Or $200/mo if you want me to keep the content engine running + update the site. Either way it's done by Friday — pick which works for you."
07Pricing notes▾
Anchor on agency cost. A web agency builds a comparable site in 8-12 weeks for $5-15k. Most freshly-solo professionals don't have 8 weeks or $15k. The $2k flat is the speed-to-credibility play. Per-month cost: $0 (Cloudflare Pages free tier + Cal.com free tier + Stripe basic), so $200/mo is mostly content + maintenance margin. Setup includes: bio + service descriptions + 4 weeks of LinkedIn posts pre-loaded, Astro site, Cal.com config, Stripe (if paid), domain setup + DNS. Does NOT include: logo design ($500), professional photography (refer Miami photographer at $500), CRM beyond Cal.com ($500 for HubSpot Free), advanced SEO ($500/mo). Upsell paths: Block 02 (intake) when they hit 5+ inquiries/week; Block 06 (doc search) when they need client portal; Block 09 (dashboard) at $50k+ MRR. The $2k engagement is the wedge for the $20-30k LTV across the catalog.