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:
39
marketing/community-posts/bookkeeper/01-story.md
Normal file
39
marketing/community-posts/bookkeeper/01-story.md
Normal 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}}
|
||||
27
marketing/community-posts/bookkeeper/02-tip.md
Normal file
27
marketing/community-posts/bookkeeper/02-tip.md
Normal 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}}
|
||||
39
marketing/community-posts/bookkeeper/03-soft-offer.md
Normal file
39
marketing/community-posts/bookkeeper/03-soft-offer.md
Normal 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}}
|
||||
Reference in New Issue
Block a user