Handoff & Roadmap

Motorica Signal Pipeline

Weekly market intelligence system: game announcements, studio funding, and hiring signals — automatically routed to the right Bison sequence cell every Monday morning. No manual research. No stale lists.

Signals (batch)
112
May 2026
Studio Funding
72
New capital events
Game Announcements
40
Locomotion-relevant
Matched to CRM
12
Known studios
Steam DB
29,960
4,928 loco-relevant
Priority Outreach — This Week
HOT
Compulsion Games
Lead Animator hiring · South of Midnight (Unreal Engine) · "motion matching" explicit in JD · fit 10/10
→ v9 B2-E1
10/10
HOT
Techland
Senior Gameplay Animator hiring · Dying Light franchise (Unreal) · motion matching in JD · fit 9/10
→ v9 B1-E1
9/10
VERIFY
11 bit studios
Game announced (Crop) · genre unclear — confirm locomotion relevance before sending
→ v9 A1-E1 if confirmed
WARM
Warhorse Studios
Game announced · Kingdom Come 2 team · known locomotion-heavy studio
→ v9 A1-E1
8/10
WARM
Teyon
Game announced (Hunter: Reckoning Deathwish) · action genre · good ICP fit
→ v9 A1-E1
7/10
Signal Systems — Local Run

Monday Workflow — Primary Runner

One script. All three signal types. Routes to sequence cells. Run every Monday morning from the research-process-builder/ directory.

# Navigate to research-process-builder (not the client repo) cd C:\Users\mitch\Everything_CC\research-process-builder # Full run — all 3 signal types (hiring + game announcements + studio funding) py scripts/motorica_weekly_signals.py # Flags py scripts/motorica_weekly_signals.py --dry-run # preview, no writes py scripts/motorica_weekly_signals.py --hiring-only # skip Supabase, Apify only py scripts/motorica_weekly_signals.py --signals-only # skip Apify, Supabase only

Outputs (date-stamped in output/):  motorica-weekly-report-YYYY-MM-DD.md  ·  motorica-weekly-bison-ready-YYYY-MM-DD.csv

ScriptWhat it doesRun fromOutput
motorica_weekly_signals.py PRIMARY — Monday workflow. Merges hiring (Apify), game announcements + studio funding (Supabase), cross-refs 916 qualified studios, routes each to v9 cell. research-process-builder/ motorica-weekly-report + bison-ready CSV
motorica_hiring_pipeline.py Hiring signals only. Useful mid-week to check latest Apify dataset without full pipeline. research-process-builder/ motorica-hiring-report.md + bison-ready CSV
motorica_studio_profiles.py Writes per-studio .md files to research/studios/ with website, SteamDB URL, ICP YAML. Auto-runs after weekly pipeline. research-process-builder/ 549 profile files in research/studios/
motorica_apply_recency.py Adds signal_recency_score + fit_score_adjusted based on most recent qualifying game per studio. research-process-builder/ Updated studio CSV with recency scores
motorica_funding_enrich.py Joins dev_total_funding from GDC master CSV. Promotes studios with $10M+ to Primary tier. research-process-builder/ Updated studio CSV with funding tier
scripts/signal-scan.py Cross-refs Clay studio list against game-signals pipeline. Produces prioritized report with active signals. gtm-client-motorica/ motorica-signal-report.md + .csv

Signal → Sequence Cell Routing

SignalSourceCellSequence
Lead/Director/Head of Animation hiring LinkedIn Jobs (Apify) B2 v9 B2-E1
Technical/Gameplay Animator hiring LinkedIn Jobs (Apify) B1 v9 B1-E1
New game announced (locomotion) Supabase game_signals A1 v9 A1-E1
Studio funding (seed / Series A) Supabase game_signals FND founders-and-ctos-v1

Signal Sources

Hiring signalsApify LinkedIn Jobs Scraper
Apify task IDM4DZ0YH0L5Ww12yQ0
Apify run scheduleDaily at 6am

Game announcementsSupabase game_signals table
Studio fundingSupabase game_signals table
Local mirrorcrm/game-signals.csv

⚠️ Current Apify search includes "mocap sessions" (pulls TV/VFX noise). Fix: swap → "Motion Matching" + add f_I=109 (Computer Games filter).
Data Architecture — How It Appends

game-signals.csv — Local Source of Truth

☁️
Supabase game_signals table
Remote source. New signals land here from scrapers and news feeds automatically.
↓ sync on demand
📄
crm/game-signals.csv
Local git-versioned store. 112 rows seeded. Weekly pipeline reads this — zero Supabase dependency at runtime.
↓ Monday runner
🚀
output/motorica-weekly-bison-ready-YYYY-MM-DD.csv
Import to Bison → route to correct cell → send. Date-stamped so every run is preserved.
# Refresh game-signals.csv from Supabase (weekly or monthly) py scripts/sync-game-signals.py py scripts/sync-game-signals.py --commit # auto git commit py scripts/sync-game-signals.py --days 90 # wider lookback

CRM Mirror — Companies (Pending Token)

🏢
HubSpot CRM
Source of truth for companies. Requires token from Chris.
↓ crm-mirror.py pulls
📊
crm/companies.csv
Git-versioned. Every diff = a status change, new company added, or pipeline move. Full audit trail.
# Run from gtm-client-motorica/ py scripts/crm-mirror.py # pull companies → crm/ py scripts/crm-mirror.py --commit # auto git commit
Blocked: needs HUBSPOT_ACCESS_TOKEN from Chris.
HubSpot → Settings → Integrations → Private Apps → hubspot-cli-agent → Auth tab → copy token → add to .env.
End State Vision
crm/game-signals.csv
112 rows → grows every week. Git diff shows exactly what's new each Monday.
crm/companies.csv
HubSpot mirror. Every pipeline stage change = a git commit. Full historical audit trail.
research/studios/*.md
549 studio profiles with ICP YAML. Auto-updated each weekly run. KG-indexed Mon/Thu.
v9 Copy System — 12 Emails
LAUNCH BLOCKED — CTA across all 12 emails: "want to see one run end to end on a public character?"
Chris must confirm: (a) pre-trained library character, (b) own capture talent on recognizable gait, or (c) generic demo character. Answer determines whether "public character" stays in copy.
Cell A1
Game Announced
Head of Animation / Animation Director
E1: Saw {GAME_TITLE} announced — locomotion angle, days-not-months proof
E2: Illumination — how much of the timeline is cleanup vs creative?
E3: totally forgot to mention {FIRST_NAME} — new chess move
Cell A2
Shipped Game
Animation Director / Lead Animator
E1: Congratulate on ship — "what's next?" + Motorica context
E2: Illumination — production efficiency angle
E3: totally forgot to mention {FIRST_NAME}
Cell B1 ★ v9 changes
Hiring (Technical)
Technical Animator / Gameplay Animator
E1: Saw {COMPANY} hiring motion matching roles
E2: "how are the new hires holding up?" — cleanup queue pain
E3: Run-lean / layoff angle — macro framing, empathy register
Cell B2 ★ v9 changes
Hiring (Leadership)
Head of Animation / Lead Animator
E1: "saw {COMPANY} is hiring for motion matching roles on {GAME_TITLE}"
E2: Illumination — what does the motion quality ceiling look like mid-build?
E3: totally forgot to mention {FIRST_NAME}
Founders & CTOs — v1 (for funding signals)
CTO cell — EDP 4
Motion Matching Dataset Bottleneck (40/50). Build-vs-buy native language. 2 E1 variants + E2 chess move.
Founder cell — EDP 1
Do More With Less Mandate (46/50). Scope-vs-team gap. New capital = building pipeline from scratch.

Copy Hard Rules — Never Skip

No "AI", "automation", "generative" in outbound copy
No em-dashes in copy
No $ figures (no cleared dollar amount)
No "skeleton" / "skeleton mesh"
No week counts (real timeline numbers pending)
No per-account layoff stats (macro trend only)
Lead with control, quality, production impact
One chess move per email
Lowercase i in casual register
Verified signals: direct ("saw… is"). Inferred: hedge ("looks like… might be")
Cleared numbers only — see list below
E3 always opens: totally forgot to mention {FIRST_NAME}

Cleared Numbers (Cold Use)
"days instead of months" — Platinum Games "months to hours" — cleanup time "tripled animation output" — Max Abrahamsson "better, more consistent than mocap" — Maxi Keller / TLOU2 1.3 m/s + 76° turn precision — capability claim 5–10 min of capture — capability claim
HubSpot CLI

Setup

# Verify install hubspot --version # Add token to .env (never commit) # HUBSPOT_ACCESS_TOKEN=pat-na1-xxxxx # Test auth (after token in env) hubspot contacts list --limit 3 --pretty # Start as MCP server for agent access hubspot mcp
Token source: HubSpot → Settings → Integrations → Private Apps → hubspot-cli-agent → Auth tab → copy pat-na1-xxxxx

Required scopes: crm.objects.contacts.read/write · crm.objects.companies.read/write · crm.objects.deals.read/write · crm.lists.read/write

Key Commands

# Companies hubspot companies list --limit 10 hubspot companies search --property name=Ubisoft # Deals hubspot deals list --limit 10 # Lists hubspot lists list # CRM mirror (Python — loads token from .env) py scripts/crm-mirror.py py scripts/crm-mirror.py --commit
Rule: Never cat .env or pass --env-file .env in shell. All scripts load token via python-dotenv internally.
Full Signal Feed
Type Developer / Studio Game / Event Amount / Genre Summary
Market Intelligence

Steam Database

Total games catalogued29,960
Locomotion-relevant titles4,928 (16.4%)
Unique developers1,104
Studio profiles built549

Profiles in research/studios/*.md — each has website, SteamDB URL, and ICP YAML: humanoid_characters, heavy_motion_design, locomotion_relevant, engine. All three true = valid Motorica prospect.

Signal Mix (May 2026 batch)

Studio funding events72 (64%)
Game announcements40 (36%)

Top announcement genres
Action RPG7
Soulslike5
Open-World2
Monster Hunting1

Matched to known studios12
Open Blockers
🔒
Chris — HubSpot access token. scripts/crm-mirror.py is built and ready. Needs HUBSPOT_ACCESS_TOKEN from Chris → add to .env. Unblocks full git-versioned company audit trail.
🔒
Chris — v9 launch CTA. All 12 emails held on one question: does Motorica have (a) pre-trained library character, (b) own capture talent on recognizable gait, or (c) generic demo character? Determines whether CTA reads "public character." Target go-live was May 13.
⚠️
Mitch — Apify scraper URL fix. Current search includes "mocap sessions" — pulling TV/VFX noise. Fix in Apify Console (task M4DZ0YH0L5Ww12yQ0): swap "mocap sessions" → "Motion Matching", add f_I=109 industry filter. 10-minute fix.

📅 Thursday Session — Full Pipeline Walkthrough

Run the Monday script live · walk signal routing logic · review game-signals.csv + Supabase sync · connect HubSpot token · fix Apify scraper URL together.