feat: Tier B operator scaffolding — bundle, copy SoT, posts, emails

Pick up and finish yesterday's cut-off Tier B pass.

- build/: PyInstaller scaffold (datatools.spec + launcher.py +
  hook-streamlit.py + README) — folder-mode bundle, locked
  127.0.0.1, per-OS recipe
- marketing/COPY.md: single source of truth for every customer-facing
  string — landing H1/sub/CTAs, demo CTAs, email subjects, Gumroad
  listing, banned phrases
- marketing/community-posts/: 9 drafts (3 posts × 3 niches:
  bookkeeper, revops, shopify-pet) — story / tip / soft-offer
- marketing/emails/: 18 drafts (Gumroad delivery + 5-touch
  onboarding × 3 niches), per-niche segmentation guidance
- docs/NEXT-STEPS.md: flip 2.2 / 2.4 / 3.1 / 3.4 to done with
  pointers to the new assets; add Phase 0 inventory rows
- .gitignore: narrow `build/` ignore so PyInstaller spec + launcher
  + hooks get tracked, only generated artifacts (build/build/,
  build/__pycache__/, build/dist/) stay ignored

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-02 14:04:37 +00:00
parent 966af8ef94
commit e1f364f010
36 changed files with 1741 additions and 15 deletions

View File

@@ -0,0 +1,39 @@
# Bookkeeper · Post 1 — Story
**Where to post:** r/Bookkeeping, r/QuickBooks, AAT forums, ICB
member groups, Bookkeeping Slacks/Discords.
**Format:** longish post, ~400 words. Subject line / title goes
first; everything below is the body.
**Tone:** "fellow bookkeeper venting + sharing what worked" — not
salesy, not preachy.
---
## Title
How I cut my month-end bank reconciliation from 4 hours to 30 minutes (the boring 3-step version)
## Body
I've been doing month-end reconciliation for {{your-client-count}} clients for {{your-years}} years and the part I hated most was the bank export cleanup. Not the reconciliation itself — the *cleanup before* the reconciliation.
You know the drill: client sends you a CSV from their bank. Half the dates are `MM/DD/YYYY`, the other half `DD-MM-YY`. The merchant column has trailing whitespace, weird unicode hyphens, and the same vendor spelled four ways ("Amzn Mktp", "AMAZON MARKETPLACE", "Amazon.com*1A2B3", "AMZN Mktplace"). QuickBooks chokes on the import, so you fix it by hand. Every. Single. Month.
Last quarter I sat down and wrote out the steps I do every single time. There were 11. I automated the 8 that were deterministic. Here are the 3 that matter most — you can do these with built-in tools, no purchase required:
**1. Normalize dates first, before anything else.**
Excel's `TEXT(DATEVALUE(A2), "yyyy-mm-dd")` works for ~80% of bank exports. The other 20% have at least one row with a value Excel parses wrong (it'll silently swap day/month). Sort by date afterwards and *visually scan* for any row that's now in the wrong year — that's your tell.
**2. Standardize merchant names with a fuzzy match, not a regex.**
A regex won't catch "Amzn Mktp" → "Amazon". A fuzzy-match function (Excel doesn't have one natively; Google Sheets has `=FUZZYMATCH` via add-ons) will. The threshold I use is 0.85 — high enough to avoid false positives, low enough to catch the spelling drift.
**3. Keep an audit trail of every change.**
This is the one most bookkeepers skip and then regret 6 months later when the client asks "wait, why did you re-classify that?". Add a sidecar CSV: `original_value, new_value, rule_applied, timestamp`. Five columns, append-only, never delete.
Doing those three turned a 4-hour job into roughly 30 minutes for me. The rest I eventually wrapped into a desktop tool I built called DataTools (the audit trail thing was the bit I needed and couldn't find anywhere — figured other bookkeepers might want it too). It's $49 if you want to skip the spreadsheet wrangling, but the 3 steps above will get you most of the way without it.
Happy to share the audit-trail CSV template if anyone wants it — just reply.
— {{your-name}}

View File

@@ -0,0 +1,27 @@
# Bookkeeper · Post 2 — Tip
**Where to post:** LinkedIn (your own feed), AAT/ICB Facebook
groups, accountancy newsletters' "tip submission" inboxes.
**Format:** short, ~150 words. Practical. Reads as "thing I learned"
not "thing I'm selling".
---
## Title
The 30-second check that catches 90% of bank-export errors before they hit QuickBooks
## Body
If you do client bank reconciliations, do this once before every import:
Open the export. Sort by amount. Scroll to the bottom. Look at the totals row.
Most banks add a totals row at the bottom of the CSV that *isn't* a transaction. If you import it, QuickBooks treats it as a real entry and your books are off by exactly the value of the totals row — usually a five-figure number that takes you 40 minutes to track down.
Same trick catches blank rows the bank inserts as section breaks (especially Wells Fargo, Chase, and most UK challenger banks). One sort, one scroll, two seconds of looking — saves the rest of your evening.
If you're doing this for 20+ clients a month and want to automate the whole pre-import scrub (this trick + ~10 others), I built a $49 desktop tool called DataTools that does it: datatools.gumroad.com. No subscription, runs locally so client data stays on your machine.
— {{your-name}}

View File

@@ -0,0 +1,39 @@
# Bookkeeper · Post 3 — Soft offer
**Where to post:** IndieHackers "show what you're working on", r/SideProject,
r/Bookkeeping (only in monthly "self-promo" threads — read each
sub's rules), bookkeeping newsletter "tools" sections.
**Format:** ~250 words. Pitches the product but leads with the
problem and is honest about the scope.
---
## Title
I built a desktop CSV cleanup tool for bookkeepers who hate the bank-export reconciliation grind
## Body
Quick context: I do {{your-context — e.g., "books for 12 small clients" or "side-bookkeeping for a few non-profits"}} and the part I dreaded most every month was cleaning bank exports before importing them to QuickBooks. Different bank, different format, every time.
I built **DataTools** — a desktop app (Mac/Win/Linux) that runs the same six cleanup steps every export needs:
- Normalizes dates, currencies, account-number formats
- Fuzzy-matches merchant-name variants ("Amzn Mktp" = "Amazon")
- Flags duplicate transactions across re-exported date ranges
- Strips trailing whitespace, hidden chars, BOM markers — the stuff QuickBooks chokes on silently
- Generates a per-file audit trail your client can open in Excel: every change, every rule that fired, timestamped
- Splits oversized exports for tools with row limits
It runs **locally** — your client's bank data never goes to a server. (This was the whole reason I built it instead of using one of the cloud "data cleaning" SaaS tools.)
It's **$49 one-time**, no subscription, no per-client license. v1.x updates included.
If you want to try before you buy: there's a hosted demo with sample bank exports at the link below. The demo is identical to the desktop app — same UI, same six tools, just running in your browser on synthetic data.
→ datatools.gumroad.com (or the bookkeeper landing page: datatools.app/bookkeeper)
Happy to answer questions in the thread.
— {{your-name}}