Featured project: Collins OS
Collins OS is the firm's marketing and intake console. It pulls nine data feeds into one place, so the managing partner and marketing director can see what their ad spend produces before they change it.
It replaced a spread of vendor dashboards and a Friday spreadsheet with one server-rendered app that states each number's source, window and freshness next to it.
Who uses it
The managing partner and marketing director use it to set Local Services Ads budget by office. Intake leadership uses the weekly report, and I use the admin console to keep the pipelines healthy.
How LSA Watch works
- A timer fires four scan blocks a day.
- A single-file queue runs them, so manual scans never collide with scheduled ones.
- Each of 45 queries (15 offices, three search terms) is run against Google's ad block.
- Every scan and every advertiser's position is stored.
- Scoring computes top-2 rate, appearance and share of ad voice per market.
- Rules flag new competitors, dropouts and review surges.
- The health check fails loudly if any market goes 12 hours without a good scan.
Attribution without tracking IDs
The CRM stores no click IDs, so the engine uses three models that are not expected to agree: the intake source, a phone match between ad leads and new matters, and a monthly spend cohort. Cost per hire is published as a range, and seven checks count every record that fails to join, so the gaps are visible instead of hidden.
Built with
- Next.js 16
- React 19
- Tailwind CSS
- Recharts
- nginx
- systemd workers
- Ubuntu VPS
- Google Ads and LSA APIs
- Lawmatics
- Rocket Matter
- Google Business Profile
- MCP tools for AI agents
100% to 0%
The share of app pages open to anyone on the internet, before and after I put the console behind a login.
- Baseline
- 4 Sep 2026: all 63 pages, including the admin controls, loaded with no login.
- Result
- 23 Sep 2026: all 69 paths tested refuse access until the user logs in.
- How I know
- The same anonymous request was run before and after. Only the login gate in front of the app can produce the new response.
- Also
- Server backups went from none to weekly in the same period.
Experience
Current
Marketing, Collins Family & Estate Law Group
Own marketing operations and analytics for 15 offices across North and South Carolina. Built and run Collins OS, covering LSA tracking, attribution, AI visibility and local SEO.
What I work on
Paid local search (Google Local Services Ads), marketing attribution without click IDs, CRM data quality, local SEO and Google Business Profiles, AI answer visibility, and the automation that keeps these running.