Daily leads briefing
Skill irfad7/Firm-Brain-Starter/.claude/skills/daily-leads-briefing
Generates the firm's daily leads and intake briefing from the Firm Master Tracker Google Sheet and posts a summary to Slack #daily-pulse. Use when the user says "morning briefing," "daily leads update," "yesterday's numbers," or when running the scheduled morning task.From its SKILL.md
npx -y skills add irfad7/Firm-Brain-Starter --skill daily-leads-briefingAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
3.3 KB, 799 tokens by cl100k_base, as published. Nobody here has run it
Daily Leads Briefing
Source of truth
- Google Sheet: Firm Master Tracker
- Tabs you read:
Leads,Ad Spend,Intake Funnel - Read-only. Never write back.
What to compute (yesterday)
For yesterday (firm's local timezone), compute:
- New leads (count of rows in
Leadswhere Date = yesterday) - Cost per lead (sum of
Ad SpendSpend yesterday ÷ sum of Leads Generated yesterday) - Booked consults (count where Status in {consult_booked, consult_attended, signed} and Booked Consult Date = yesterday)
- Signed cases (count where Status = signed and Signed Date = yesterday)
- Est. revenue from signed (sum of Case Value for those signed rows)
- Best campaign by signed-case ROI (signed cases ÷ spend, ranked)
Compare each to the trailing 7-day average. Flag any metric that's >25% above or below the average.
Output: Slack post to #daily-pulse
Single message, under 200 words, this exact shape:
☀️ Daily Pulse — {date}
• New leads: {n} ({+/-}% vs 7-day avg)
• CPL: ${cpl} ({+/-}% vs 7-day avg)
• Booked consults: {n}
• Signed cases: {n} → ~${revenue}
• Best campaign: {campaign} ({signed/spend ratio})
🏆 Win of the day: {one sentence}
⚠️ Watch out: {one sentence — only if something is off, else omit}
Data as of {timestamp}. Source: Firm Master Tracker.
Live Artifact (when asked to render the dashboard, not the briefing)
Build a Live Artifact with:
- 3 KPI cards: New leads (yesterday), CPL (yesterday), Signed (yesterday)
- Line chart: leads per day for the last 14 days
- Bar chart: leads by campaign for the last 30 days
- Table: yesterday's leads with Status, Practice Area, Source
- "Data as of {timestamp}" badge in the top-right, driven by the actual fetch timestamp
Constraints (these break artifacts if violated):
- Use Recharts for charts, shadcn/ui Card for layout, lucide-react for icons
- No
localStorageorsessionStorage— keep state inuseStateonly - No external
fetch()— Claude does the fetch, you embed the data - Tolerate missing cells (show "—", never "NaN")
- If the sheet read fails, show a red banner with the error and last-cached values
Always confirm column-to-visualization mapping with the user before finalizing. This is the single biggest accuracy lever.
Fallbacks
- If sheet returns 0 rows for yesterday → post "🟡 Pulse: Tracker is empty for {date}. Please confirm." and stop. No fake numbers.
- If sheet read fails → post "🔴 Pulse: Tracker read failed: {error message}. Last successful pull: {timestamp}." and stop.
- If current local time is after 11am when the schedule fires → prepend "⏰ Late run — was supposed to fire at 7am." Helps catch laptop-was-asleep failures.
Never do
- Don't write to the tracker sheet
- Don't post to Slack channels other than
#daily-pulsewithout explicit user confirmation - Don't include lead names or PII in the Slack post (counts and aggregates only)
- Don't extrapolate from less than 5 leads — say "n too low to compare"
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.