Byzantium AI
OPS CENTER
445
days to Italy
20 threads need reply
Perry Responder: SERVICE DOWN
Security score: 65/100
At a Glance
MRR
TBD
Active Clients
4
Open Leads
6
Servers Up
3/5
Campaigns Live
0
Need Reply
20
Italy Acquisition
Target
€9,000,000
Saved
€0
Gap
€9,000,000
Monthly Pace Needed
€615,640
0% to target 445 days remaining
Active Clients
Nexuscai / Richard $0
Brianna Bowie $0
Mitch Sylvestre (AIO) $0
Dr. Corinne Hills $0
Security Score
65 / 100
• openclaw is inactive
• carbone is inactive
• 16521 failed SSH attempts (24h)
Campaign Performance
All Campaigns 21
Campaign Status Contacted Open % Reply % Real Replies Interested Demos
Aperture - TMA Outreach COMPLETED 1,218 64.1% 1.6% 19 7 0
Bookkeeper Agent — CPA Firms US v2 COMPLETED 1,023 42.0% 0.2% -3 0 0
Bookkeeper Agent — CPA Firms US DRAFT 788 28.7% 0.3% 0 1 0
B 03-14-0527 DRAFT 250 0.0% 3.6% 7 4 0
B 03-14-0523 DRAFT 250 0.0% 4.4% 11 4 0
C 03-14-0523 DRAFT 250 0.0% 1.6% 4 3 0
C 03-14-0527 DRAFT 248 0.0% 2.0% 5 3 0
C 03-14-0517 DRAFT 247 0.0% 2.4% 6 4 0
C 03-14-0647 COMPLETED 236 0.0% 1.7% 4 2 0
B 03-14-0647 COMPLETED 180 0.0% 2.8% 5 2 0
B 03-14-0517 COMPLETED 125 0.0% 3.2% 4 6 0
B 03-17-2236 COMPLETED 100 0.0% 1.0% 1 1 0
C 03-17-0021 COMPLETED 99 0.0% 3.0% 2 2 0
90-Day Sprint: Automation Consulting COMPLETED 92 0.0% 1.1% 1 0 0
B 03-17-0021 COMPLETED 45 0.0% 0.0% 0 0 0
B 03-18-2235 COMPLETED 36 0.0% 2.8% 1 2 0
C 03-17-2236 COMPLETED 27 0.0% 7.4% 2 1 0
Aperture — Restructuring Outreach v2 COMPLETED 25 0.0% 4.0% 1 1 0
Auction Lister AI — Beta Outreach COMPLETED 25 40.0% 0.0% 0 17 0
C 03-18-2235 COMPLETED 19 0.0% 0.0% 0 1 0
[AI SDR] byzantiumai.com - AI Sales Agen DRAFT 0 0.0% 0.0% 0 0 0
Threads Needing Reply 20
From Date Interest Preview
melissa.yutzy@veriscpa.com 2026-04-06 UNTAGGED
I am currently out of the office on holiday until Monday, April 13th. Please reach out to Jenara Noel jenara.noel@veriscpa.com for any urgent needs. Thanks, Melissa A. Yutzy, CP
doerte.bogumil@t-online.de 2026-04-02 NOT INTERESTED
bottrellt@stifel.com 2026-04-02 INTERESTED
Sure happy to see a sample Tim Bottrell Managing Director STIFEL | INVESTMENT BANKING .............................................................. Office: +1.212.895.1827 |
james@redwoodbusinessfinance.co.uk 2026-04-02 NOT INTERESTED
No thank you James Bingham Managing Director M: 07702098884 E: james@redwoodbusinessfinance.co.uk W: www.redwoodbusinessfinance.
dan.sullivan@veriscpa.com 2026-04-02 UNTAGGED
I'll be out of the office starting April 1, 2026 - April 3, 2026 attending a funeral for a family member. I'll return to the office April 4, 2026. I'll be checking email periodical
jacob@oberlanderandco.com 2026-04-01 UNTAGGED
Thank you for your email. In observance of the Passover Holiday, our office will be closed until Friday, April 10. During that time, I will not have access to my email, but will
david@graffltd.com 2026-03-30 UNTAGGED
Thanks for reaching out. It is the middle of tax season, so responses may be a little slower than usual. I am still checking email and will get back to you as soon as I can, typica
hello@ryanmarmentocpa.com 2026-03-28 UNTAGGED
Hello, Thank you for your email. Due to the high volume of messages during tax season, my response time may be longer than usual. Please know your message is important to me, and
support@lakeeffectliquidation.com 2026-03-18 UNTAGGED
Hi there! Thanks for reaching out to Lake Effect Liquidation. We have received your message and will get back to you as soon as possible. We appreciate your business and look forw
tucson@grasons.com 2026-03-18 NOT INTERESTED
Not interested. On Wed, Mar 18, 2026 at 9:25 AM Alfiero alfiero.iannarelli@gmail.com < alfiero@gobyzantiumai.com> wrote: > Grasons, > > I'll catalog your next 100 lots - titles,
drcollectibles17@gmail.com 2026-03-18 NOT INTERESTED
No thanks. On Wed, Mar 18, 2026 at 11:15 AM Alfiero Iannarelli < alfieroi@hellobyzantiumai.com> wrote: > DR, > > Writing lot descriptions before every sale takes forever. Title
postmaster@hostedemail.com 2026-03-18 UNTAGGED
Your message to was automatically rejected: Quota exceeded (mailbox for user is full) Original message headers follow: Received: from mail-qk1-f171.google
jetskihelp@gmail.com 2026-03-17 INTERESTED
Good morning I am sorry I am just following up. I wanted to see if I sent you products links, if the program could convert those to Shopify or HiBid CSV files with images ready to
tomhilbe@earthlink.net 2026-03-17 UNTAGGED
I apologize for this automatic reply to your email. To control spam, I now allow incoming messages only from senders I have approved beforehand. If you would like to be added to
collectiblesak@gmail.com 2026-03-17 NOT INTERESTED
I use automated software and we dump our ebay listings to CSV then to hibid thanks though On Mon, Mar 16, 2026 at 10:24 AM Alfiero Iannarelli < alfieroi@scalebyzantiumai.com> wrot
markscottauctions@gmail.com 2026-03-16 NOT INTERESTED
Not interested. Thank you On Mon, Mar 16, 2026 at 1:36 PM Alfiero Iannarelli < alfiero@scalebyzantiumai.com> wrote: > Mark, > > Cataloging 200 lots by hand takes most auction hou
maurersauctions@gmail.com 2026-03-16 UNTAGGED
Thank you for contacting Maurer's Auctions. Due to staff vacations, your email will not be seen until Tuesday, March 17, 2026. *PLEASE DO NOT RESPOND TO THIS EMAIL*. If you have a
info@jpacmg.com 2026-03-16 NOT INTERESTED
No thank you. Best Regards, Philip Richardson J-PAC Auction Co., NCAFL:10784 M: 704-964-3257 > On Mar 16, 2026, at 10:14 AM, Alfiero Iannarelli w
jkauctionsold@gmail.com 2026-03-14 NOT INTERESTED
Not at all if I’m already doing the pictures and moving product I can do 100 descriptions in two maybe 3 hours at most. Not worth my time or effort On Sat, Mar 14, 2026 at 10:13 A
shelly@ipa.net 2026-03-14 UNTAGGED
I apologize for this automatic reply to your email. To control spam, I now allow incoming messages only from senders I have approved beforehand. If you would like to be added to
All Projects 10
Aperture ACTIVE
Await CourtListener /parties/ access (emailed 2026-04-02)
Auction Lister ACTIVE
Re-engage Steve Lade. Pricing TBD post-beta.
Instantly Docs (Nexuscai) ACTIVE
Build OOO handler (ooo_handler.py + sub-campaign)
Builder Block ACTIVE
Directory listings audit (Phase 1 pro bono)
Alberta Independence ACTIVE
Run full pipeline.py for FB + IG (Telegram approval)
Pro-Dosa ACTIVE
Confirm QC params, build Airtable + Make.com
Perry Responder SERVICE DOWN STOPPED
Deploy gmail_client.py fix + restart service on Hetzner
Content Pipeline ACTIVE
Run full pipeline.py for alberta-independence
Bookkeeper Agent (Cledge) DEPRIORITIZED
Resume after inbox rotation complete
Artista Drywall MAINTENANCE
GBP re-verification (5 days) + Netlify form detection
Pipeline Leads 6
Aperture (3)
Fayez — qualifying call, awaiting reply
Sufian — call scheduled 10am CST
Evan — week of Apr 6
Auction Lister (3)
Steve Lade — needs re-engagement
brady@lettucesell.com — open
hwy35storage@gmail.com — open
Pending Tasks
Task List
Format: `- [ ] [PROJECT] Task — deadline or context`
Mark done: `- [x]`
Claude reads and updates this file each session.
---
Pending
□ [OPS-CENTER] Add DNS A record: `ops.byzantiumai.com` → `46.62.244.138` (in domain registrar). Then run: `ssh hetzner "sudo certbot --nginx -d ops.byzantiumai.com"` to enable HTTPS.
□ [HETZNER] Install fail2ban: `ssh hetzner "sudo apt install fail2ban -y && sudo systemctl enable fail2ban"` — 17,000+ SSH brute force attempts per day
☑ [PAPERCLIP] Create Byzantium holding company at http://localhost:3100
☑ [PAPERCLIP] Write ~/projects/byzantium-paperclip/CONTEXT.md
☑ [PAPERCLIP] Build Byzantium CEO SOUL.md
☑ [PAPERCLIP] Build shared tools layer at ~/projects/tools/ (Instantly + AnyMailFinder clients)
☑ [PAPERCLIP] Phase 2 UI steps: create Cledge/Aperture/Auction Lister projects in Byzantium, hire Cledge CEO (instructionsFilePath + SOUL.md), set Byzantium CEO instructionsFilePath, run orientation issue
☑ [PAPERCLIP] Verify tools work: `python ~/projects/tools/instantly_client.py analytics`
☑ [PAPERCLIP] Install tool deps if needed: `pip install requests python-dotenv`
☑ [CLEDGE] Load Variant B copy into Instantly A/B test
☑ [CLEDGE] Upload clean batch 1 — done via Instantly UI (187 leads, 2026-03-26)
☑ [CLEDGE] Fix lead pipeline quality filter — filter.py tightened, enrich.py domain pre-flight added (2026-03-26 Session 5)
☑ [CLEDGE] Evaluate Vayne output — 2,500 leads filtered, 91 ready, enrichment 88/1200 done (2026-03-27)
☑ [CLEDGE] Restart Vayne enrichment: running in background (2026-03-27, aperture-scraper venv)
☑ [CLEDGE] Vayne enrichment complete — 858 leads at ~/projects/scratch/vayne_instantly_ready.csv
☑ [CLEDGE] Launch v2 campaign: duplicate v1 in Instantly → load 858 leads → swap in new A/B copy → activate
☑ [CLEDGE] Deploy to Hetzner — LIVE at https://audit.byzantiumai.com (2026-04-10)
□ [CLEDGE] Test Firecrawl discovery: `python firecrawl_discovery.py --state TX --max-pages 3`
□ [CLEDGE] Purchase cledge.ai or cledge.io (both available as of 2026-03-26)
☑ [PAPERCLIP] Create BYZ-4 — Byzantium CEO task: propose first 2 hires
□ [BYZANTIUM-LINKEDIN] Register corporation to unlock LinkedIn Community Management API — needed to enable company page posting + personal reshare automation
□ [BYZANTIUM-LINKEDIN] Once corp registered: create "Byzantium Org Publisher" LinkedIn app, add Community Management API, run `linkedin_org_auth.py` → pipeline auto-switches to company page posting
☑ [BYZANTIUM-SEO] Clutch profile created
☑ [BYZANTIUM-SEO] G2 profile created
☑ [BYZANTIUM-SEO] Capterra/G2/Gartner — skipped, requires off-the-shelf software product (not services)
☑ [PAPERCLIP] Optimize agent costs: right-size heartbeats + models, build ops RAG, rewrite SOUL.mds to query RAG (2026-03-27)
☑ [PAPERCLIP] Write SOUL.md for Aperture CRO (ab391d8e)
☑ [PAPERCLIP] Write SOUL.md for Aperture Research Director (4e586447) and AL Sales Director (76722bf6)
☑ [PAPERCLIP] Write SOUL.md for idle agents: Cledge CMO, Cledge CSO, Byzantium CFO, CTO, CLO, Chief of Staff
☑ [PAPERCLIP] Wire instructionsEntryFile for all 11 unconfigured agents via DB adapter_config UPDATE
☑ [PAPERCLIP] Set heartbeats + model config for new active agents (Aperture CRO — 7200s set 2026-03-27)
☑ [PAPERCLIP] Add `threads` command reference to Cledge CRO AGENTS.md (2026-03-27)
☑ [PAPERCLIP] Update models: o4-mini (strategic), gpt-4o-mini (all others). gpt-5.4-mini/nano were fake — fixed 2026-03-29.
☑ [PAPERCLIP] Wire instructionsFilePath for 5 agents missing it: Chief of Staff, Aperture CRO, AL CEO, Cledge CMO, Byzantium CLO
☑ [PAPERCLIP] Fix Personal Director workspace CWD → Personal Affairs project (06628297) created
☑ [PAPERCLIP] Add explicit blocking protocol to Personal Director SOUL.md (false-success bug)
□ [PAPERCLIP] Formalize recurring agent tasks as scheduled TASK.md files (CLO weekly cycle, CFO weekly P&L, CRO daily Instantly check) using AgentCompanies v1 schedule format — see SKILL at .agents/skills/company-creator/ in paperclipai/paperclip repo
□ [PAPERCLIP] Create digital marketing subsidiary — operational container for one-off client projects (web dev, design, SEO, social media). No outreach arm yet. Active projects to slot in: Builder Block Expo, House of Gaia (Instagram management/shadow operator). Needs: CEO + Service Director (delivery). Add to Byzantium org. Write context file covering active projects and service scope.
☑ [BUILDER-BLOCK] Post-call: deal confirmed March 30. Website stays as-is. Equity anchor 30%.
□ [NEXUSCAI] Upload output/new_*.csv to campaigns via Instantly UI (815 leads ready)
□ [NEXUSCAI] Mark 5 unsubscribes in Instantly UI: don@fullertonelectric.net, bob@redwoodmoving.com, etuan@trseinc.com, c.richter@quorex.ca, shaune@ledbetterelectric.com
□ [NEXUSCAI] Reconnect nataliecross@nexuscaihub.com in Instantly UI (status=-1, not sending)
□ [NEXUSCAI] Sales Nav scrape running (nexuscai-trades campaign, ~425 leads, resume with: cd ~/projects/aperture-scraper && source venv/bin/activate && python scraper.py --campaign "nexuscai-trades")
☑ [CLEDGE] Nuke V1: 1,259 leads removed via ~/projects/scratch/nuke_v1.py (2026-03-30)
☑ [CLEDGE] cpa_canonical.csv (239 leads) already in V2 — confirmed via export analysis (2026-03-30)
☑ [CLEDGE] Upload ~/projects/scratch/cpa_batch1_net_new.csv (237 Google Maps leads not in V2) to V2 via Instantly UI — done 2026-03-30, V2 now ~1,381 leads
☑ [CLEDGE] Consolidate all vayne_*.csv intermediates → cledge_master.csv (1,333 leads, 2026-03-30)
☑ [APERTURE] Update outreach email copy: add "vs. Octus / vs. 9fin / vs. Debtwire" framing — done in pitch deck + call brief (2026-04-06)
☑ [APERTURE] Change Render branch from claude/restructuring-alert-system-zA1w2 → main (Settings → Branch in Render dashboard)
☑ [APERTURE] Reply to Rob Baynes: "Rob, a walkthrough takes 15 min and saves you the navigation. Thursday at 2pm CST?"
☑ [APERTURE] Send credentials to "booked until May" lead + open channel message
☑ [APERTURE] Free Law Project follow-up — Apr 7. Email info@free.law: "Following up on my request for /parties/ endpoint access sent Apr 2. We're building a mid-market restructuring intelligence platform on top of CourtListener data. Any update on the access request?"
☑ [APERTURE] Create Evan Adonailo (A&M) beta account — eadonailo@alvarezandmarsal.com, temp pw: Aperture2026! — done Apr 7
□ [APERTURE] Email Evan login credentials — **PAUSED INDEFINITELY** until Alfiero explicitly says
☑ [APERTURE] News feed homepage: Dashboard → reverse-chronological signal feed with cursor pagination, infinite scroll, watchlist tab, distress scores, quick actions (session 21, 2026-04-10)
☑ [APERTURE] Home page (morning briefing): /home as post-login landing with top movers, watchlist deltas, matched news, outcomes, data freshness. companyScoreHistory table + lastLoginAt + snapshotScores in ingest (session 22, 2026-04-10)
☑ [APERTURE] Dashboard Analytics redesign: replace signal feed with macro analytics view (Market Pulse, Unadvised Pipeline, Convergence Alerts, Sector Stress, Signal Category chart). Plan approved: ~/.claude/plans/bubbly-chasing-pnueli.md — IMPLEMENTED session 23 (2026-04-11)
□ [APERTURE] Commit + push session 22 + 23 changes (Home page + Dashboard Analytics) to main
☑ [APERTURE] Add key financial metrics to CompanyDetail: total debt, revenue, EBITDA, company description, ownership — source: SEC EDGAR XBRL API (public cos) + submissions API — deployed 2026-04-07
☑ [APERTURE] Wire alternative advisor data source by midweek Apr 9 — DONE: EDGAR 8-K scan (fetchAdvisorRetentions in secEdgar.ts, 26 firms, "Check EDGAR" button live)
□ [APERTURE] WHEN FREE LAW GRANTS /parties/ ACCESS: (1) run `python scripts/backfill_case_parties.py --run` to populate case_parties from existing 57 ch11 signals, (2) run `python scripts/enrich_case_parties.py` for AnyMailFinder enrichment on contacts without email, (3) re-enable Check CourtListener button in CompanyDetail.tsx, (4) set up Instantly case-party campaign shell (4 dedicated inboxes, 160/day, copy in CLAUDE.md CASE-PARTY OUTREACH section)
☑ [APERTURE] Fix EDGAR same-day signal clustering: sameDayCount map in dataIngestion.ts, caps 2 signals/company/date/run — deployed 2026-04-06
☑ [APERTURE] Purge BDC contamination: SIC 6726 added to isExcludedFiler(), 25 signals + 3 companies deleted — deployed 2026-04-06
☑ [APERTURE] Outcome logging expanded — 5 detection passes (ch11_filed/restructured_oot/acquired/advisor_retained/recovered) + 56 historical ch11_filed backfilled (session 13, 2026-04-09)
☑ [APERTURE] Manual advisor backfill: scripts/backfill-advisor-outcomes.ts — 29 advisor_retained rows inserted across 11 companies (session 14, 2026-04-09). Uncovered + fixed 3 compounding bugs in fetchAdvisorRetentions/fetchFilingSnippet that had silently broken the scanner since session 12.
☑ [APERTURE] Advisor scan false-positive purge (session 15, 2026-04-09): added ADVISOR_ITEM_GATE (1.03/7.01/8.01) + 2000-char proximity gate vs distress keywords in fetchAdvisorRetentions. Created test-advisor-scan.ts (11/11 pass) + debug-advisor-scan.ts. Purged 29 dirty rows, re-backfilled at min-score=40 → 13 clean rows across 4 companies (Beasley, WW International, EchoStar, TPI Composites). Committed d5b8d4b, pushed to main.
□ [APERTURE] Free Law Project call April 14 — pitch use case for /parties/ access
☑ [APERTURE] BDC/credit fund cleanup: 110 junk entities purged, isExcludedFiler expanded to 31 patterns (session 19, 2026-04-10)
☑ [APERTURE] Auth hardening + TOTP 2FA: Zod validation, password strength (10 chars), account lockout (5/15min), auth rate limiter (10/15min), audit logging, TOTP 2FA with recovery codes, CORS PATCH fix (session 20, 2026-04-10)
□ [APERTURE] Write "Crash Course" lead magnet: "How Boutique Restructuring Advisors Find Mid-Market Mandates Before Competitors" — free PDF, email capture.
☑ [APERTURE] Whitepaper plan approved session 16 (2026-04-09): `~/.claude/plans/dreamy-munching-galaxy.md` — Q1 2026 Mid-Market Restructuring Advisory Activity, 7-stage verification gate, CourtListener historical pull + UniCourt fallback.
☑ [APERTURE-WHITEPAPER] Phase 0.5: write `scripts/research/q1-2026-methodology.md` — DONE session 17, locked before data pull
☑ [APERTURE-WHITEPAPER] Phase 0.1: build + run `scripts/research/pull-dockets.ts` — DONE session 17. 3,110 raw, 1,984 included. Monthly windowing to bypass 2000-result CL pagination cap.
☑ [APERTURE-WHITEPAPER] Phase 0.2: build + run `scripts/research/filter-q1-mid-market.ts` — DONE session 17. 1,982 mid-market (dropped Bread Financial $4.3B, Cumulus Media $642M).
☑ [APERTURE-WHITEPAPER] Phase 0.3: scaffold ResearchPublication.tsx (public page), /api/research/:slug route, researchPublication.ts service — DONE session 18
☑ [APERTURE-WHITEPAPER] Phase 0.4: `CREATE TABLE research_publications` via psql + Drizzle schema — DONE session 18
☑ [APERTURE-WHITEPAPER] Phase 0.6: build `scripts/research/generate-pdf.ts` (headless Chrome) — DONE session 18
□ [APERTURE-WHITEPAPER] Phase 1 (unlocks on /parties/ grant): enrich-q1-parties.ts + aggregate-q1-leaguetable.ts. Manual review gate before status='draft'→'published'.
□ [APERTURE-WHITEPAPER] Phase 1.5 verification gate (ALL 7 must pass before publishing): 1.5.1 internal cross-check vs company_outcomes, 1.5.2 first-day declaration spot-check (15 stratified cases), 1.5.3 EDGAR 8-K cross-check per public debtor, 1.5.4 firm announcement check (top 15 firms), 1.5.5 peer review from ≥2 ICP pros (Evan + 1 TMA reply), 1.5.6 methodology disclosure of coverage rate + corrections link, 1.5.7 third-party benchmark comparison vs ABI/Epiq (±5%)/Octus/Law360/Debtwire (zero overlap on large-cap lists).
□ [APERTURE-WHITEPAPER] Phase 2 publish: flip status, generate PDF, SEO (canonical URL, OG image, JSON-LD schema.org/Report, sitemap.xml).
□ [APERTURE-WHITEPAPER] Phase 3 distribute: Instantly blast to 3,963 TMA leads (1-email campaign, no FU), LinkedIn post from Alfiero personal with methodology thread, warm re-engagement to open leads.
□ [NEXUSCAI] Build OOO handler: ooo_handler.py + "Nexuscai OOO Reengagement" campaign. Parse return date → enroll day before. 10-day default if no date. Cron entry in briefing.py.
□ [BUILDER-BLOCK] Email Brianna: request contact list + site access (form embed + schema markup)
□ [BUILDER-BLOCK] Directory listings audit + fix — 25 platforms, 68% wrong. Start here, no dependency on Brianna.
□ [BUILDER-BLOCK] Set up Brevo account + list structure (Past Exhibitors / Builders / Prospects)
□ [BUILDER-BLOCK] Build automated sequences: booth inquiry, registration confirmation, post-show follow-up
□ [BUILDER-BLOCK] Write + launch Builder Block Briefing issue #1 (target: end of April)
☑ [ARTISTA] Enable Netlify form detection + add info@artistadrywall.ca as notification recipient
☑ [ARTISTA] Wait for GBP re-verification — DONE (email routing confirmed working)
☑ [ARTISTA] GA4 installed (G-42V9GG7F7Y) + UTM on GBP + GSC verified + sitemap submitted
☑ [ARTISTA] FAQ section (20 questions) + FAQPage schema (AEO play)
☑ [ARTISTA] 9 service/location landing pages built and deployed
☑ [ARTISTA] 25 WordPress 404s resolved via _redirects
ARTISTA SEO/AEO — Phase 1: Authority (NOW → Apr 26)
Note: today is Sunday Apr 5. Day 1 = Monday Apr 6. Do not surface Day 1 tasks before Apr 6.
### Completed before Day 1
☑ [ARTISTA] HomeStars: signed up Apr 5 — free listing, service area Calgary + surroundings
☑ [ARTISTA] Code: BreadcrumbList schema added to all 9 service pages (Apr 5)
☑ [ARTISTA] Code: AggregateRating schema already present in homepage LocalBusiness schema (23 reviews / 5.0 stars)
### Day 1 (Monday Apr 6) — YOU
□ [ARTISTA] GBP Messaging: go to business.google.com → your listing → Messages → Turn on. Lets customers text you from Google Search/Maps instead of needing your phone number. You'll get notified via the GBP app on your phone.
□ [ARTISTA] GA4 Conversion event: go to analytics.google.com → Admin (gear, bottom left) → Data Display → Events → find "generate_lead" → toggle "Mark as conversion" ON. This makes GA4 count every form submission as a tracked goal so you can see lead volume by traffic source.
□ [ARTISTA] Yelp: go to biz.yelp.ca → "Claim your business" → search "Artista Drywall Calgary" → claim or create → fill name, category "Drywall Contractor", email info@artistadrywall.ca, website artistadrywall.ca, service area Calgary AB. Yelp ranks above most contractor sites for local queries.
### Day 2 (Tuesday Apr 7) — YOU
□ [ARTISTA] Yellow Pages Canada: go to yp.ca → "Add your business" → fill NAP: Artista Drywall, Calgary AB, info@artistadrywall.ca, artistadrywall.ca. YP Canada listings rank in Google independently and count as a trusted Canadian citation.
### Day 3 (Wednesday Apr 8) — YOU
□ [ARTISTA] BBB Canada: go to bbb.org/ca → "Get Accredited" → choose free basic listing (decline paid accreditation) → fill NAP. BBB backlinks carry unusually high trust weight for local contractors.
### Day 4 (Thursday Apr 9) — YOU
□ [ARTISTA] Houzz: go to houzz.com/pro → create contractor profile → category "Drywall & Insulation" → fill NAP. Houzz dominates renovation-related local searches in Canada and gets you in front of homeowners actively planning projects.
### Day 5 (Friday Apr 10) — YOU
□ [ARTISTA] Kijiji Services: go to kijiji.ca → post a Services ad under Home Renovation > Drywall → title "Artista Drywall — Calgary Drywall Contractor" → include website artistadrywall.ca in description. Free, shows up in Google.
□ [ARTISTA] Canpages: go to canpages.ca → "Add your business" → fill NAP. Quick 5-min listing, minor citation signal.
### Day 6-14 (Apr 11-18) — YOU (flexible, do when you have phone photos)
□ [ARTISTA] GBP photos: go to business.google.com → Photos → Add photos. Upload 10+ before/after pairs from real jobs. Phone photos are fine. More photos = higher engagement score in Google's local ranking algo. Before/after pairs showing finish quality are the most effective.
ARTISTA SEO/AEO — Mid-Phase Check (Apr 19-20)
### Apr 19 (Saturday) — YOU, 5 min
□ [ARTISTA] GSC first look: go to search.google.com/search-console → Performance → Pages tab. Two weeks have passed since service pages were deployed. Check if any pages are showing impressions. Don't expect rankings yet — you're just confirming Google has crawled and indexed them. If pages show 0 impressions, no action needed, check again at Phase 2 start.
---
ARTISTA SEO/AEO — Phase 2: Content Expansion (START Apr 26)
### Apr 26 (Sunday) — CLAUDE CODE SESSION
□ [ARTISTA] Code: build /drywall-cost-calgary/ — standalone informational page answering "How much does drywall cost in Calgary?" with pricing by project type. High-volume mid-funnel query with almost no local competition from contractor sites. Captures homeowners before they've chosen who to call.
□ [ARTISTA] Code: build /popcorn-ceiling-asbestos-calgary/ — answers "does popcorn ceiling contain asbestos Calgary?" Evergreen high-anxiety query. Homeowners searching this are ready to book.
□ [ARTISTA] Code: build /level-5-finish-calgary/ — answers "what is level 5 drywall finish." Educates and pre-qualifies premium leads.
### Apr 27 (Monday) — CLAUDE CODE SESSION
□ [ARTISTA] Code: add 4 location pages using the same ServicePage template: /drywall-contractors-strathmore/, /drywall-contractors-high-river/, /drywall-contractors-canmore/, /drywall-crossfield/. Expands geographic footprint to communities with zero current coverage.
□ [ARTISTA] Code: update public/sitemap.xml to include all new pages and redeploy to Netlify.
### Apr 28 (Tuesday) — YOU, 5 min
□ [ARTISTA] GSC sitemap resubmit: go to search.google.com/search-console → Sitemaps → type "sitemap.xml" → Submit. This tells Google to re-crawl and discover the new pages. Do this after the Apr 27 deploy.
### May 3 (Saturday) — YOU, 10 min
□ [ARTISTA] GSC Phase 2 index check: Performance → Pages tab. Confirm new pages (cost, asbestos, level-5, new location pages) are appearing with at least some impressions. If a page is completely absent after 1 week, it may not have been indexed — check Coverage tab for errors.
---
ARTISTA SEO/AEO — Phase 3: AEO / AI Search (START May 25)
### May 25 (Monday) — CLAUDE CODE SESSION
□ [ARTISTA] Code: add Speakable schema to key FAQ answers on homepage and service pages. Speakable tells Google and AI assistants which content is authoritative enough to read aloud or cite. Increases chances of appearing in AI Overviews and voice search results.
□ [ARTISTA] Code: add HowTo schema to informational pages (/drywall-cost-calgary/, /level-5-finish-calgary/). HowTo schema can trigger step-by-step rich results in Google and is frequently cited by AI engines like Perplexity and ChatGPT.
### May 26 (Tuesday) — CLAUDE CODE SESSION
□ [ARTISTA] Code: expand homepage FAQ from 20 to 30+ questions. Target questions pulled from GSC "Queries" tab — any question-format queries with impressions but no top-3 ranking are the ones to add. Full topic cluster coverage is what gets AI tools to cite Artista as the authoritative local source.
### May 27 (Wednesday) — YOU, 15 min
□ [ARTISTA] Bing Webmaster Tools: go to webmaster.microsoft.com → "Get started" → add site artistadrywall.ca → verify ownership (use the meta tag method — paste the tag into index.html, Claude Code will help if needed) → submit sitemap. Bing feeds the Microsoft Copilot and ChatGPT browse index. Takes 15 min one-time.
### May 31 (Sunday) — YOU, 10 min
□ [ARTISTA] GSC CTR audit: Performance → Pages → sort by Impressions descending. Flag any page with more than 100 impressions and CTR under 2%. Those pages are ranking but not getting clicked — the title tag is weak. Note which pages and bring to next Claude Code session for title tag rewrites.
□ [ARTISTA] GSC CTR audit: also check the Queries tab — look for question-format queries driving impressions. Any question we haven't answered yet on the site should get added to Phase 3 FAQ expansion.
---
ARTISTA SEO/AEO — Phase 4: Ongoing Monitoring (June+)
□ [ARTISTA] Monthly: check GBP Insights — profile views and direction requests. If views drop month-over-month, add a new GBP post or photo batch to re-engage the listing.
□ [ARTISTA] Monthly: GA4 → Reports → Acquisition → Traffic acquisition. Track whether organic search share is growing month over month. Goal: organic becomes the dominant lead source by August.
□ [ARTISTA] Monthly: if any service page breaks into top 3 average position in GSC, add a Claude Code session to deepen that page (more FAQs, more content) to hold the position.
☑ [PRO-DOSA] Build Airtable base (7 tables) + import 116 distributors
☑ [PRO-DOSA] Delete Carbone templates (per Dr. Hills request 2026-04-08)
☑ [PRO-DOSA] Build src/fill_acvm78.py (python-docx, 30 cells + 45 checkboxes mapped)
☑ [PRO-DOSA] Build src/demo_runner.py (simulated Airtable → fill → Word auto-open)
☑ [PRO-DOSA] Write RECORDING.md screencast plan + demo framework
☑ [PRO-DOSA] Verify sample output via Word PDF conversion (4 pages, layout preserved)
☑ [PRO-DOSA] Confirm ACVM 78 July 2024 is current MPI version
☑ [PRO-DOSA] Reframe positioning from "MPI automation" to "audit-ready compliance" (2026-04-09)
☑ [PRO-DOSA] Add Water Culture Tests + Air Culture Tests tables to Airtable base
☑ [PRO-DOSA] Build Airtable Interface Home dashboard + 5 form pages (Log Batch Production, Log Inwards Goods, Log Outwards Goods, Log Water Culture Test, Log Air Culture Test)
☑ [PRO-DOSA] Build Batch Detail (Record Review) with 6 groups: Overview, Inwards Goods, Microbial Testing, Environmental Monitoring, Outwards Goods, QC Details
☑ [PRO-DOSA] Build Shipment Detail (Record Review) with 4 groups + mock "Generate MPI 78 Form" button
☑ [PRO-DOSA] Finish Home dashboard: title, subtitle, Recent Batches list, Shipments in Flight list, Released Batches Count
☑ [PRO-DOSA] Seed realistic demo data (1 Batch Released, 4 Raw Materials, 2 Water + 2 Air Culture Tests, 1 Shipment Al Asayel Bahrain) via Omni AI
☑ [PRO-DOSA] Interface polish: red theme (on-brand), nav order, form pages hidden, published
☑ [PRO-DOSA] Smoke test demo flow in Preview mode — all groups populated, button working
☑ [PRO-DOSA] Rewrote RECORDING.md v2 (5 scenes, 90-120s, Interface-first, tab-click flow)
□ [PRO-DOSA] Fix data: Batch Size=2400, move Deviations/Notes+QC Documents into QC Details group, re-publish
□ [PRO-DOSA] Record Loom demo with audit-readiness framing (soft single ask at end)
□ [PRO-DOSA] Send Loom to Corinne via text/WhatsApp — DO NOT send discovery questions first
□ [PRO-DOSA] After Corinne buys in: request sample logs → rebuild schema → wire webhook automation
□ [NEXUSCAI] Upload output/new_general_trades.csv (751) + new_general_trades_classified.csv (55) to General Trades campaign
□ [BYZANTIUM-WEBSITE] Execute pSEO + organic traffic plan: data model, 250-300 pages, 3 pillar pages, enrichment, sitemap, deploy — plan at ~/.claude/plans/validated-crunching-bentley.md
□ [BYZANTIUM-WEBSITE] Directory submissions: Clutch, G2, DesignRush, UpCity, Crunchbase, GoodFirms — prepare content + submit
□ [BYZANTIUM-WEBSITE] Google Business Profile: prepare listing content + submit
□ [BYZANTIUM-WEBSITE] Medium cross-posting: create byzantiumai publication, add medium_publisher.py to pipeline
□ [BYZANTIUM-WEBSITE] LinkedIn Articles: extend linkedin_publisher.py to publish full articles
□ [BYZANTIUM-WEBSITE] Featured.com workflow: 2-3 answers/week, draft → humanizer → GPTZero → submit
□ [BYZANTIUM-WEBSITE] Particle animation: tune density/timing on feature/magnetic-particle-text, test mobile
□ [OBSIDIAN] Optional: install Obsidian Local REST API plugin → add to ~/.mcp.json for richer vault querying
☑ [CONTENT-PIPELINE] Get fresh Meta User Token with instagram_basic + instagram_content_publish
☑ [CONTENT-PIPELINE] Get IG account ID (17841436793066351) and save to .env
☑ [CONTENT-PIPELINE] Run first live Facebook publish — confirmed working (Telegram + FB post)
☑ [CONTENT-PIPELINE] Generate permanent Page Access Token via app secret exchange
☑ [CONTENT-PIPELINE] Add source fetching to pipeline.py (URL/RSS/static_facts)
☑ [CONTENT-PIPELINE] Create client skeletons: builder-block, house-of-gaia, artista-drywall
☑ [CONTENT-PIPELINE] Wire Instagram node in n8n — done via Python direct publisher (catbox.moe → Meta IG API)
☑ [CONTENT-PIPELINE] Run live Instagram publish test — confirmed live: https://www.instagram.com/p/DWzTyuVFCCY/
☑ [CONTENT-PIPELINE] Run full pipeline.py --type static for alberta-independence (FB + IG with Telegram approval) — CONFIRMED 2026-04-06
☑ [CONTENT-PIPELINE] Fix IG publisher (container status polling, code 9007)
☑ [CONTENT-PIPELINE] Rewrite telegram_approver.py (raw getUpdates, no PTB Application hang)
□ [CONTENT-PIPELINE] Add real page/IG IDs to builder-block, house-of-gaia, artista-drywall configs
□ [CONTENT-PIPELINE] Multi-client credential routing (META_PAGE_ID + META_IG_ACCOUNT_ID hardcoded in .env)
□ [CONTENT-PIPELINE] Implement algorithm-aware post type system (plan: ~/.claude/plans/gleaming-twirling-willow.md)
---
Completed
---
Pending — Personal Accounting
☑ [PERSONAL-ACCOUNTING] Get Wave FY2025 export → reconcile revenue + customer payments (partial — Wave only has Oct 2024–Mar 2025, $85,990 revenue confirmed)
□ [PERSONAL-ACCOUNTING] **BLOCKED: Resubscribe to QBO** → pull Apr–Sep 2024 records to complete FY2025 revenue picture (missing ~$57K vs bank deposits)
□ [PERSONAL-ACCOUNTING] Classify Wave Uncategorized Income ($11,126): flag inter-account TFRs ($1,079 non-income), match ATM DEPs to Kevin Lim invoices (possible double-count in Wave)
□ [PERSONAL-ACCOUNTING] Classify LOAN entries (Jackie truck vs draw, worker advances) + look up Apr 15 $600 in TD online
□ [PERSONAL-ACCOUNTING] Add 5241971 statements to ~/bank-analyzer/data/ → re-run pdf_to_csv.py → complete FY2025 shareholder loan calc
□ [PERSONAL-ACCOUNTING] File GST $8,369.83 via CRA My Business Account
□ [PERSONAL-ACCOUNTING] Pay March 15 CRA instalment ($1,285 PAST DUE)
□ [PERSONAL-ACCOUNTING] Build FY2025 P&L + shareholder loan schedule → file T2 (blocked on QBO + LOAN classification)
□ [PERSONAL-ACCOUNTING] Build Scotia + TD Visa parsers in pdf_to_csv.py
☑ [PERSONAL-ACCOUNTING] Set up Personal Accountant agent in Paperclip (ec5bd13c — external mode, personal-accountant-spec.md)
☑ [PERSONAL-ACCOUNTING] Process crypto.com CSV: $8,485.47 net capital loss saved to personal-accounting/
☑ [PERSONAL-ACCOUNTING] Process Questrade T5008: -$97 CAD options loss. T1135 not required.
☑ [PERSONAL-ACCOUNTING] Update bookkeeper spec + SOUL.md: AI classification workflow, T778 childcare, data gap protocol
□ [PERSONAL-ACCOUNTING] Drop 2025 TD personal chequing PDFs into ~/bank-analyzer/data/ → trigger bookkeeper classification run
□ [PERSONAL-ACCOUNTING] Confirm Mar 15 CRA instalment ($1,285) paid or not
Hetzner Services 3/5 up
openclaw
INACTIVE
carbone
INACTIVE
perry-responder
ACTIVE
bookkeeper-agent
ACTIVE
nginx
ACTIVE
System Vitals
Disk Usage
31%
11G / 38G
Memory
57%
2201MB / 3819MB
CPU Load
0.16
1m / 5m / 15m
0.16 / 0.05 / 0.01
Server Info
Uptime
39d 17h
IP Address
46.62.244.138
Location
Helsinki, FI
RAM
4 GB
Security Score
65 / 100
NEEDS ATTENTION
Deductions
openclaw is inactive
carbone is inactive
16521 failed SSH attempts (24h)
Key Metrics
Failed SSH (24h)
16521
SSL Cert Expiry
89 days
Firewall (UFW)
ACTIVE
Open Ports
7
Port Audit
Port Service Auth Risk Status
22 SSH key-based LOW ✓ Expected
68 DHCP client system LOW ✓ Expected
80 HTTP (nginx) redirect to 443 LOW ✓ Expected
443 HTTPS (nginx) Let's Encrypt LOW ✓ Expected
5353 mDNS (Avahi) system LOW ✓ Expected
8001 Bookkeeper Agent none MEDIUM ✓ Expected
18789 OpenClaw (Telegram) config-based LOW ✓ Expected
4000 Carbone (PDF) none N/A ⚠ Not listening
53 DNS (systemd-resolved) system N/A ⚠ Not listening
Recommendations
!
No auth on bookkeeper-agent
Port 8001 (audit.byzantiumai.com) has no application-level authentication. Anyone with the URL can trigger API calls and burn Anthropic credits. Add API key validation or IP whitelist.
i
High SSH login failures
16521 failed SSH login attempts in the last 24 hours. Consider installing fail2ban to automatically block repeat offenders.