feat: scaffold BizDeedz Signal Engine MVP#12
Open
fowler128 wants to merge 4 commits into
Open
Conversation
Full production-minded project scaffold for a daily market intelligence system serving BizDeedz (legal ops consultancy) and Turea Simpson (legal ops leadership personal brand). Includes: - config/: editable keyword bank, RSS feeds, model routing, scoring thresholds, and source settings for Reddit + RSS V1 scope - scripts/: helper modules for content normalization, keyword matching, SHA256 deduplication, rule-based pre-filter scoring, and digest formatting - prompts/: classifier prompt (cheap model, strict JSON output), daily digest synthesis prompt (premium model, batch call), and scaffolded weekly report prompt for Phase 2 - n8n/: three importable workflow JSON files — daily collector (7:00 AM Central), daily digest emailer (7:20 AM Central), and weekly report scaffold (Phase 2, inactive) - docs/: system overview, setup guide, Google Sheets schema reference, prompt library, and phased roadmap - .env.example, README.md, CLAUDE.md Design priorities: high signal quality, low token cost, low complexity, fast deployment, easy maintenance, future expandability. https://claude.ai/code/session_017SxFetPG4y78gpqvkF17Yo
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Tightened keyword clusters, scoring, and prompts to favor high-intent practitioner signals and filter low-quality content more aggressively. keywords.json: - Removed broad/generic terms (legal ops, legal operations, change management, women in leadership, capacity management) that matched vendor blogs and academic content indiscriminately - Replaced with practitioner-voice phrases that only appear when someone is describing a real operational problem (e.g. "nobody uses the system", "attorneys won't follow the process", "case fell through the cracks", "lawyers won't use it") - Added bankruptcy cluster specificity (341 meeting prep, means test, creditor matrix, petition preparation) - Added pain phrases that reflect natural Reddit/forum language - Added negative_keywords list (bar exam, law school, personal injury, vendor announcements, press releases, off-topic financial topics) for hard pre-filter disqualification scoring.json: - Raised min_rule_score from 3 to 4 — a single broad keyword match plus RSS source no longer passes (was 2+1=3) - Added dual_match_bonus (+1): brand keyword AND pain phrase together is the highest-quality signal type; strongly rewarded - Added specificity_bonus (+1): intake_handoff, bankruptcy_operations, legal_ops_leadership, career_elevation clusters only appear in practitioner content, not vendor or academic writing - Added min_content_length_chars (80) floor for hard disqualification ruleScore.js: - Added checkNegativeKeywords(): immediate fail before scoring if any negative keyword present — zero AI cost for obvious junk - Added meetsMinLength(): immediate fail for link-only or title-only posts - Added dual_match_bonus scoring logic - Added hasHighSpecificityCluster() for specificity_bonus - Attached disqualified and disqualify_reason fields for auditability classify_signal.md: - Added explicit downgrade rule: vendor press release / product announcement / academic content → score 1-2 - Tightened score 5 definition: requires a specific practitioner describing a concrete failure, not just topic discussion - Removed markdown code block wrapper from output format example (was causing some models to wrap output in backticks) - Compacted output to single-line JSON for more reliable parsing summarize_daily_digest.md: - BizDeedz signals now include: who is struggling + what offer it validates - Turea signals now include: who is speaking + what content angle it opens - Content ideas now require: specific audience + core tension + actual opening line of the post (not just a topic) - Added Consulting/Opportunity signals action step (DM / post / pitch) - Recommended post angle now requires the actual first line written out - Added rule: be specific about who is struggling (not just "law firms") https://claude.ai/code/session_017SxFetPG4y78gpqvkF17Yo
…ment daily_collector.workflow.json: - Rewrote Keyword Match + Rule Score node inline code to match the updated config/keywords.json: new keyword lists, removed low-intent terms, added negative keyword hard disqualifier, added min content length (80 chars) hard disqualifier - Updated scoring to match config/scoring.json v1.1: threshold 4 (was 3), +1 dual_match_bonus when brand keyword + pain phrase both match, +1 specificity_bonus for intake_handoff/bankruptcy_operations/ legal_ops_leadership/career_elevation clusters - Attached disqualify_reason field for auditability - Updated classifier inline prompt to include vendor-blog downgrade rule (score 1-2 for press releases/announcements/academic content) and added rule_score to classifier context - Added rule_score column to Prepare Sheet Row output for audit visibility in Google Sheets daily_digest.workflow.json: - Changed cron from 7:20 AM to 7:30 AM — wider buffer against slow Apify runs that could cause digest to read incomplete signal data - Updated Filter Today's Signals to sort by score descending so digest model sees strongest signals first - Added score field to Build Digest Input formatted lines - Updated Premium Digest inline prompt to match revised prompts/summarize_daily_digest.md: now requires who-is-struggling identification, consulting offer validation per BizDeedz signal, specific audience + core tension + opening line for content ideas, and action step for opportunity signals weekly_report.workflow.json: - Added IF — Signals Exist This Week guard node after Filter + Format Week Signals. If zero signals in window, synthesis is skipped entirely — prevents LLM from generating hallucinated output against an empty input. False branch terminates cleanly. https://claude.ai/code/session_017SxFetPG4y78gpqvkF17Yo
config/offer-map.json (new): - Maps keyword clusters to consulting offers - Primary offer: AI Readiness Audit for Law Firms - Trigger clusters: knowledge_management, adoption, intake_handoff, law_firm_operations, bankruptcy_operations - Trigger signal types: buyer pain, workflow gap, adoption barrier - Includes Lead_Radar sheet schema scaffold for Phase 2 daily_collector.workflow.json: - Added Lead Radar — Tag Offer node between Parse Classification and IF — Score >= 4 (Keep) - Evaluates four criteria: score>=4, lane=BizDeedz/Both, signal_type in trigger set, keyword_cluster overlaps trigger list - Sets lead_radar=true and recommended_offer='AI Readiness Audit for Law Firms' when all criteria are met - Updated Prepare Sheet Row to include lead_radar and recommended_offer columns in Google Sheets output - Renamed Google Sheets append node for clarity https://claude.ai/code/session_017SxFetPG4y78gpqvkF17Yo
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Full production-minded project scaffold for a daily market intelligence
system serving BizDeedz (legal ops consultancy) and Turea Simpson
(legal ops leadership personal brand).
Includes:
thresholds, and source settings for Reddit + RSS V1 scope
SHA256 deduplication, rule-based pre-filter scoring, and digest formatting
digest synthesis prompt (premium model, batch call), and scaffolded
weekly report prompt for Phase 2
Central), daily digest emailer (7:20 AM Central), and weekly report
scaffold (Phase 2, inactive)
prompt library, and phased roadmap
Design priorities: high signal quality, low token cost, low complexity,
fast deployment, easy maintenance, future expandability.
https://claude.ai/code/session_017SxFetPG4y78gpqvkF17Yo