Bringing back my automated daily content engine. Full stack breakdown for anyone who wants to run this play in their own niche.
▲ 52 r/AiBuilders+3 crossposts

Bringing back my automated daily content engine. Full stack breakdown for anyone who wants to run this play in their own niche.

I'm relaunching Claude Code Daily this week. It's a daily blog post that writes, publishes, and promotes itself, and since this sub is about building GTM systems, the full stack is below. The pattern transfers to any niche with an active subreddit.

The stack, end to end:

  1. Collect. A launchd cron fires at midnight. Playwright opens old.reddit.com (the public JSON API blocks scrapers now, server-rendered HTML doesn't) and pulls every post from the target subs in the last 24 hours: scores, comments, timestamps, top replies.
  2. Analyze. A script computes velocity (upvotes per hour) and engagement ratios, then a claude CLI call scores the 10 best content angles from the data.
  3. Write. Another claude call gets my voice files, an anti-slop rule list, and the day's data, and writes the episode in a fixed segment format. A regex validator rejects em-dashes, hype words, and template phrases before anything ships. Continuity files track past award winners so it never repeats itself.
  4. Publish. The script commits the markdown to my site repo and pushes. Railway rebuilds, the post is live at midnight. A LinkedIn promo gets scheduled through the Typefully API for the next morning.

Cost per episode is whatever the claude subscription already costs me, so effectively zero marginal. Output is a daily piece of content in my voice that compounds SEO while I sleep.

Consistent daily publishing on a niche topic is the strongest awareness asset I've built. The same pipeline pointed at your ICP's subreddits gives you a daily industry digest with your name on it.

Episode from tonight if you want to see the output quality: https://shawnos.ai/claude-daily

Ask me anything about the build. The transport fix alone (headless Chromium vs blocked JSON) is worth stealing.

u/Shawntenam — 2 days ago
▲ 4 r/ClaudeGTM+2 crossposts

Claude for Terminal + Codex in the App: This Is My Founder's Journey (Ep...

Hey guys. I've been sharing my builds and creator experiments in here for a while, and I finally put it all on YouTube. Just dropped episode 1.

It's my actual GTM dev workflow.

Claude Code in the terminal, Codex in the app, running both so I never hit an API limit, plus context engineering, orchestrating sub-agents through Apollo, /effort max, and using SQLite as memory. I use all of it to build Clearbox (a Reddit opportunity inbox that reads intent, not keywords) in public.

straight up the audio and video editing is rough. I'm still figuring that side out, so please trash me on it. If you have tips on editing, pacing, thumbnails, whatever, I'm all ears.

I'll be honest, part of this is me promoting myself. But I genuinely love sharing this stuff and giving feedback back just as much. If any of it is useful to your own builds, that's the win. Ask me anything about the setup and I'll go deep.

youtube.com
u/Shawntenam — 5 days ago

My current GTM builder stack for turning actual work into content

Anyone can use AI to write content.
I think the better play is using AI to capture and distribute what you’re already doing.

Current stack:

OBS to record workflows while I’m building or testing stuff.

Open Shorts to clip longer recordings into usable short-form clips.

Deepgram as a backup transcript layer.

YT Dip for pulling YouTube clips when I’m doing marketing research or looking at how people package certain ideas.

Claude Code for building little tools, testing workflows, connecting APIs, and moving faster.
DaVinci Resolve for editing. Haven’t worked Higgs Field into the flow yet, but that’s next.

Buffer API + Supabase for distribution. This one is underrated. Buffer lets you connect up to 3 channels for free, so I’m starting to build a simple content posting system around it instead of manually posting everywhere.

Clearbox / Reddit for research. Reddit is especially useful because people say things in the exact language they actually use. I use it for inspiration, but also to sanity-check claims before I say something publicly.

RapidAPI for niche-specific research. Example: I have a client selling graphic design to churches, and that market has specific language. You can’t just throw generic marketing copy at it and hope it lands.

Super Whisper + Whisper Flow are probably the biggest unlock. I can talk through an idea, workflow, or client problem, then turn that into something structured without losing my actual voice.

Fireflies.ai recording my calls, python scripts in the background pulling them into discord in channels for different content distribution is probably what makes this whole thing

Shawn Tenam GTM ENGINEER & CO FOUNDER @ clearbox "your reddit opportunity inbox"

reddit.com
u/Shawntenam — 6 days ago

SQLite = GTM god mode ifyky. and if u dont i got you.

Yo, what's up, builders!! Dropping Founders Journey, my official YouTube series..

if you've been following so far, you might already know what this all is about. basically building in public, taking it to the next level where i actually share more than just the scripts from the claude code session i run. now you guys get to see them live.

this is also one of the Best Claude Code tip I have: hook it to a SQLite DB at your project root.

Store your context in columns. Now the agent reads columns instead of the whole folder.
That's how you stop blowing through your context window.

youtube.com
u/Shawntenam — 6 days ago
▲ 5 r/GTMbuilders+1 crossposts

33 domains. New ACS account. Building the moat in public.

Kicking off a new founder’s journey series: building Clearbox’s email infrastructure from the ground up.

33 domains. Isolated warming account. Full in-house orchestration. Dashboard visibility.

Showing the actual prompts and decisions in real time.

Follow for every step.

youtube.com
u/Shawntenam — 10 days ago
▲ 38 r/AI_Sales+3 crossposts

rebuilt a $70k market-scoring tool with claude code in an afternoon. here is the whole workflow.

TL;DR: a buddy got quoted $70K a year to score and enrich his market. Clay seat, enrichment credits, a partner to wire it together. I rebuilt it with Claude Code in an afternoon, same output, and I'm giving you the whole build. Ungated, links at the bottom.

It turns a raw market into a color-coded Google Sheet. Every account scored 1 to 5, ranked, dashboard on top. You own all of it. Next run is free. The sheet rebuilds in place so the link never changes.

The workflow, start to finish:

  1. Point Claude Code at your list (CSV, Apollo pull, scrape) and load it into a local SQLite table.

  2. Enrich on a waterfall: free web fingerprint first, then Apollo for the rows worth paying for, then verify the emails. Apollo for B2B SaaS, RapidAPI for local.

  3. Score every row 1 to 5 on fit, persona, and reachability. One-line reason on each.

  4. Render the color-coded sheet. Red to green, dashboard tab, rebuilds in place.

  5. Hand the recurring run to Deepline so it runs on a schedule.

Here's what you're actually learning to do: connect the Google Workspace CLI so you can drive Google Sheets programmatically and wire any API into it. That's the real skill. Once you can do that, you are not waiting on anyone's UI ever again.

And forget "free." That's not the point. Subscribe to the APIs, pull real contacts, and you have enough to actually work with. Build the list, send proposals to your clients, run your own outreach, land the job. People get hired for exactly this skill. This is not a toy.

Now the compliance thing, because someone always asks. Don't let it scare you. If you already pay for a seat at ZoomInfo, Lusha, Apollo, whatever, you are licensed to use that data. Pull it straight into your own system. And the big multi-provider "waterfall" these tools upsell you? It's a myth. One licensed source usually covers your ICP.

best part?

It's in your repo. It's versioned. You can read every line of how your market gets scored. A provider changes or your ICP shifts, you edit one file, not your whole stack.

I'm not telling you to rip out Clay. (but you sure can.) This isn't an open-source crusade.

It's just: don't buy blind. Build it once so you actually know what your market looks like and what you're paying for. Buying blind is how you wake up in tech debt you never understood, and nothing tanks a GTM career faster than that.

It's all yours, no gate:

- Notion SOP (full walkthrough): https://fierce-camelotia-1fa.notion.site/The-70K-Sheet-3881fb92bcd781d6b145fa4c50ebae53?pvs=74

- Repo: https://github.com/shawnla90/gtm-coding-agent

- Apollo, the data layer I run for B2B SaaS (referral, full disclosure): https://get.apollo.io/y3gtusoq4h9g

And straight up: yes, I build Clearbox. It reads where your buyers talk on Reddit and tells you who's in-market. Not hiding it.

We just crossed a thousand members in here, and I'm going to keep dropping the actual build, not a teaser, whether or not you ever touch my tool.

Take it. Run it on your market. Break it, fork it, whatever. Get stuck or build something cool, comment or DM me. I'd rather see you ship it than gate it.

Shawn Tenam GTM Engineer and co founder @ Clearbox "Your Reddit opportunity inbox."

u/Shawntenam — 12 days ago
▲ 4 r/ClaudeGTM+3 crossposts

I make Claude & Codex argue #buildinpublic #claudecode #codex

Sorry for the horrible audio, guys!! follow the series to not only see me share my builds but also the production up-skilling that goes into it

youtube.com
u/Shawntenam — 12 days ago
▲ 6 r/ClaudeGTM+1 crossposts

$70K clay proposal → $0 with Claude Code

Hey builders, I recorded myself building a whole workflow for a buddy who was quoted a pretty big number. I’m sharing the workflow and scripts you can use to build your own comparison proposals.

Everyone should have full transparency before going all in on a $70K deal that could make or break your career. Sharing more soon, but if you want to check out my YouTube and help support and subscribe, that’d be much appreciated.

youtube.com
u/Shawntenam — 13 days ago
▲ 29 r/ClaudeGTM+2 crossposts

10 Python scripts I run for GTM, and the exact prompt to build each one

you don't have to code. you have to know what to point a coding agent at. so I wrote each of these as a prompt you can paste straight into Claude Code or Codex and get a working first version.

everything in [brackets] is a swap. if you use Slack instead of Discord, Attio instead of HubSpot, or Otter instead of Fireflies, just change the bracket and the prompt still works.

these are written in plain language on purpose. you describe the job, the agent writes the Python. if you would rather read the finished code than write the prompt, all of these live in the repo at the bottom.

the shape under every one of them is the same. something happens, the data gets cleaned, a decision gets made, the output gets routed somewhere.

  1. newsletter follower scraper

turns new subscribers into scored leads while you sleep.
paste this into Claude

"Build a Python script that pulls my new [Substack] subscribers each morning, enriches each one with [Apollo], scores them against my ICP which is [describe your ideal customer], and writes the good ones to [a Google Sheet] and [HubSpot]. Store everyone it has already processed in a local SQLite file so it never repeats, and set it to run daily with cron or launchd."

  1. enrichment and scorer

turns a messy export into a ranked, CRM-ready list.
paste this into Claude

"Build a Python script that takes a CSV of names and companies, enriches each row with [Apollo], scores each one 1 to 5 against this ICP [describe it], and writes a new CSV sorted best to worst with a one-line reason per row. Cache every lookup in SQLite so re-running it is free."

  1. social signal scout

finds the threads where someone is describing your problem out loud.
paste this into Claude

"Build a Python script that checks [Reddit, X, and LinkedIn] every morning for posts matching [my keywords or topics], uses an LLM to score each one for buying intent, and drops the best ones into [Slack] with the link and a one-line reason it matters. Keep a SQLite list of IDs it has already sent so nothing shows up twice."

  1. meeting to content engine

turns every call into drafts, tasks, and searchable memory.
paste this into Claude

"Build a script that watches [Fireflies] for new call transcripts, and for each new one uses an LLM to write a blog draft, 3 social posts, a list of action items, and CRM notes in my voice. Save the drafts to [a folder] and post a summary to [Discord]. Match the tone in 2 of my own posts that I will paste below."

  1. CRM sync

keeps your CRM clean by writing back only the fields you choose.
paste this into Claude

"Build a Python script that reads a [Google Sheet] of accounts and writes them into [HubSpot], updating only these fields [list the fields]. Match existing records by [domain] so it updates instead of creating duplicates, and log every change to a file I can check."

  1. LinkedIn campaign pusher

moves LinkedIn outreach out of a dashboard and onto a schedule.
paste this into Claude

"Build a Python script that takes approved leads from [a Google Sheet] and pushes them into a [HeyReach] LinkedIn campaign using their CLI, then writes the acceptance and reply numbers back to the sheet each day. Add a daily cap so it never queues more than [20] per account."
(HeyReach just shipped their own CLI, which is what makes this one clean now. credit to them.)

  1. reply classifier

sorts every reply so you stop reading them just to triage.
paste this into Claude

"Build a Python script that reads new replies from [my Gmail], classifies each one as interested, objection, not now, or unsubscribe with an LLM, and routes each one. interested pings me in [Slack], unsubscribe gets pulled from [my list], everything else gets tagged in [the CRM]. Never process the same message twice."

  1. domain health monitor

warns you before a deliverability problem tanks your inbox.
paste this into Claude

"Build a Python script that checks my sending domains [list them] once a day for SPF, DKIM, and DMARC records, checks each one against common blocklists, and alerts me in [Slack] only when something is actually broken. Stay quiet when everything is fine."

  1. content and news scout

hands you daily angles instead of a blank page.
paste this into Claude

"Build a Python script that pulls the latest from [these subreddits and RSS feeds], uses an LLM to turn them into 5 content angles for [my audience], and drops them into [a Google Doc] every morning. Skip anything it already gave me in the last 14 days."

  1. daily GTM digest
    one morning post that tell

s you what happened overnight.
paste this into Claude

"Build a Python script that reads the output of my other scripts [point it at the logs or a SQLite db], summarizes the last 24 hours into one short update covering new leads, replies, signals, and anything broken, and sends it to [Slack] every morning at [8am]. Keep it to the numbers that matter."

one more. I had a daily newsletter called Code Daily that did the same thing for content. it scanned 5 subreddits, scored the best threads with Claude, wrote a 2 to 3 thousand word digest with Opus, ran it through a slop filter, and auto published. 44 days straight, then Reddit started 403ing the scraper and it died. nothing's perfect. about half my scripts are humming, a couple are broken right now, some need their auth refreshed. it still beats doing the work by hand.

if you want that one too, paste this into Claude

"Build a Python script that scans [5 subreddits] daily, scores the best threads with an LLM, writes a [2000 word] digest in [a late-night-show] voice, runs it through a filter that strips em-dashes and other AI tells, and publishes it to [my site]. Track what it covered so it never repeats a story."

the repo I keep updating has the GTM coding agents playbook and the scripts I have cleaned up and published so far, over at github.com/shawnla90/gtm-coding-agent. fork it if you would rather read code than write a prompt, and I add more as I go.

real ask for this sub. which one would you build first, and what would you want me to show next? I'm about to start dropping video in here too, so if you would rather watch me build one of these on camera than read about it, say the word and I'll record it.

Shawn Tenam: Go-to-market engineer and CEO @ Clearbox, "your Reddit opportunity inbox"

reddit.com
u/Shawntenam — 17 days ago
▲ 10 r/ClaudeGTM+2 crossposts

Claude Code vs Codex for GTM builders: which one are you actually shipping with?

im using both right now, but if I had to pick a side today, I’m still taking Claude Code.

Codex has been great for working inside the app, especially when I want quick iterations, planning, or help thinking through product/GTM workflows.

But when I’m actually in the terminal trying to build, debug, refactor, wire up APIs, or move fast on real GTM systems, Claude Code still feels like the go-to.

sowhere everyone else is landing?

Are you team Claude Code, team Codex, or using both depending on the job?

reddit.com
u/Shawntenam — 18 days ago
▲ 59 r/ClaudeGTM+2 crossposts

10 more repos I use in my actual GTM stack

These are repos I use to source data, scrape pages, build dashboards, connect tools, plan work, and give coding agents better context.

  1. PostHog

https://github.com/PostHog/posthog

PostHog tracks UTMs, visits, product events, and campaign attribution.

did anything happen after the click?

  1. Apify CLI

https://github.com/apify/apify-cli

Apify is the one I reach for when I need public data fast.

Use it for competitor followers, Reddit threads, Meta ads, public directories, and Y Combinator lists.

Turn that public data into tables before a campaign starts.

The CLI matters because the agent can run it from the terminal, fetch the dataset, and keep working.

  1. Playwright

https://github.com/microsoft/playwright

Playwright CLI headless is the browser layer.

Scraping, screenshots, QA checks, form tests, app verification. If an agent needs to read a real page or prove something worked, Playwright is usually the way in.

I use it for checking pages, verifying dashboards, grabbing screenshots, and confirming the API result actually looks right on screen.

  1. Supabase

https://github.com/supabase/supabase

Supabase is my cloud SQL.

When a GTM system needs to live beyond my Mac, this is where it goes. Campaign state, lead tables, product data, dashboards, auth, cloud Postgres.

Local-first works until another person or process needs the data too.

  1. better-sqlite3

https://github.com/WiseLibs/better-sqlite3

SQLite is my local SQL.

Fast, boring, inspectable. I use SQLite for local campaign state, intel databases, enrichment caches, and anything I want an agent to read without asking a SaaS dashboard for permission.

Cloud SQL plus local SQL is the pattern.

Supabase when it needs to be shared. SQLite when I need speed, git, and iteration.

  1. HubSpot CLI

https://github.com/HubSpot/hubspot-cli

I have my own HubSpot pattern here, but the official CLI and docs are still the place to start.

Private app token. Scoped permissions. Create the properties you need. Write enrichment back to the exact fields your team actually uses.

Use HubSpot as the CRM layer. Keep the operating system in the repo.

  1. Superpowers + Get Shit Done

https://github.com/obra/superpowers

https://github.com/gsd-build/get-shit-done

These are useful because they show different versions of agent orchestration.

Superpowers is more skill/methodology driven. GSD is more spec/context/planning driven.

Test both and keep only the parts that produce shipped work.

  1. Obsidian Nexus

https://github.com/ProfSynapse/nexus

I am a fan of Obsidian.

You should test your own note-taker and figure out what actually connects to your workflow, but Obsidian is a good choice if you care about local notes, backlinks, graph views, and long-term thinking.

Nexus connects Obsidian to agents. That means notes can become working context for agents.

  1. d3-force

https://github.com/d3/d3-force

d3-force is for when the data is actually a graph.

Competitors, followers, signals, accounts, posts, comments, tools, people. Sometimes the shape matters more than the table.

d3-force surfaces clusters and relationships that a normal table hides.

  1. xyflow

https://github.com/xyflow/xyflow

xyflow maps nodes, edges, decisions, and handoffs.

xyflow is great for connector maps, CRM flows, campaign systems, agent workflows, onboarding boards, and basically any GTM system where a paragraph would make the thing harder to understand.

bonus 3 from my own gh

  1. Recursive Drift

https://github.com/shawnla90/recursive-drift

This one is mine.

This repo shows how I structure recurring work across content, product, outbound, CRM, agents, handoffs, and long-running builds.

It gives the work a shape the agent can keep returning to.

  1. Context Handoff Engine

https://github.com/shawnla90/context-handoff-engine

Also mine.

This keeps context alive for Claude Code across sessions, terminals, and agents.

After a while the real constraint is whether the agent can find where the work actually lives.

Handoffs are how I keep sessions from becoming disposable.

  1. Website With Soul

https://github.com/shawnla90/website-with-soul

Also mine.

Memory, voice, personality, and a real system behind the site.

Good for anyone building a founder site, personal OS, content hub, or AI-native website that needs to feel like a person lives inside the work.

Special mention: GTM Coding Agents

https://github.com/shawnla90/gtm-coding-agent

This is still the main one.

It is up to Chapter 17 now and I keep updating it as I learn what actually works.

Next up is programmatic emails. I am still testing the workflow before I write the chapter, because I do not want to publish the pattern until I know where it breaks.

u/Shawntenam — 22 days ago
▲ 5 r/ClaudeGTM+3 crossposts

Has anyone run outbound from Claude Code/codex+ ACS?

I’ve been doing a weird little outbound experiment for Clearbox this week.

The stack right ACS as the sender, 12 domains I bought and warmed myself, Prospeo + Apollo for enrichment, ZeroBounce for validation, PostHog for traffic tracking, and Attio for interested replies/signups.

Claude Code (terminal)and Codex(app) are operating the campaign layer.

Codex is writing scripts, checking local SQLite, staging sequence queues, building the Sheets review surface, syncing to Supabase, and leaving handoffs so I can pick the campaign back up without guessing what happened.

I ran a smaller batch of around 250 contacts first. So far I’ve seen 0 bounces and 16 visitors tracked back to the campaign.

The YC batch is staged at ~2k contacts, split across three ACS domains and three copy branches. I’m planning to run the bigger batch Monday.

Deepline has been the nicest orchestration layer I’ve tried so far. Still early, but it feels very clean.

It connects through localhost, I can see the agent working, and it gives the workflow enough guardrails that outbound stays inside a controlled loop.

I tried Deepline waterfall, Prospeo, Apollo, ZeroBounce, etc. Useful, but no magic. Each one still needed custom gating rules on top.

Domain alignment, source-company matching, held-out identity review, and queue/copy audit before enrollment were the controls that mattered.

anyone here or reading this run a real programmatic email campaign this way.?

Claude Code/Codex as the operator.
ACS or another raw sender layer.
Own warmed domains.
Local DB + scripts.

I’ll update with what happens after the run. The agent-native workflow is making the campaign easier to audit and resume than my table UI flows.

reddit.com
u/Shawntenam — 23 days ago
▲ 19 r/ClaudeGTM+2 crossposts

10 repos you can copy, fork, and adapt right now.

These are repos I use to build faster GTM workflows, connect tools, ship internal apps, and give agents better context.

  1. Google Workspace CLI

https://github.com/googleworkspace/cli

not gonna lie I legit replace clay once I figure this one out

Run Gmail, Drive, Sheets, Docs, Calendar, and more from the terminal. Huge for agent workflows because tools become commandable.

  1. shadcn/ui

this one turned me into a react junkie overnight

https://github.com/shadcn-ui/ui

Clean UI components you actually own. Copy them into your app, customize them, and ship dashboards or internal tools faster.

  1. Recharts

https://github.com/recharts/recharts

Simple React charts for GTM dashboards, pipeline views, enrichment reports, and any workflow where tables need to become insight.

  1. OpenShorts

https://github.com/mutonby/openshorts

Open source AI video tooling for shorts and content workflows. Useful if you want to systematize content instead of editing every asset manually.

  1. Hermes Agent

https://github.com/NousResearch/hermes-agent

A self-improving agent framework. The interesting part is the skill, memory, and feedback loop, not just “agent can chat.”

  1. yt-dlp

Open shorts plus this one is actually insane
https://github.com/yt-dlp/yt-dlp

The command-line media tool everyone quietly depends on. Great for turning public videos into transcripts, research inputs, clips, and reusable context.

  1. DocuSeal

write and send proposals all from your terminal build your workflows and then add the context to your proposals and send in one session
https://github.com/docusealco/docuseal

Open source document signing and form filling. Proposals, agreements, intake forms, approvals, and client docs without another closed SaaS step.

  1. Awesome Design MD
    get real design in info so your vibe coded website doesn't look like AI slop
    https://github.com/VoltAgent/awesome-design-md

Design context files for popular systems. Give your coding agent taste before it starts generating random gray rectangles.

  1. CLI-Anything

https://github.com/HKUDS/CLI-Anything

Turn apps into programmable interfaces. Agents work better when they can run commands instead of clicking around like lost interns.

  1. GTM Coding Agents

https://github.com/shawnla90/gtm-coding-agent

This one is mine.

69 stars and growing.

Not a one-day repo shipped into a lead magnet funnel.

It is a living GTM coding agents skill tree with prompts, scripts, workflow patterns, and everything I am learning while building.

One hack inside it: version control your GTM database with SQLite in git.

Your database becomes a file.

Your changes become commits.

Your agent gets structured context.

Your experiments become inspectable.

Way more OP than people realize.

As I keep building Clearbox, I’ll keep updating this repo with what works, what breaks, and what I would not do again.

Fork them.

Steal the patterns.

Make them better

Shawn Tenam co founder and CEO @ clearbox "your reddit opportunity inbox"

reddit.com
u/Shawntenam — 26 days ago
▲ 15 r/ClaudeGTM+2 crossposts

Why I Built GTM Builders...Slight Rant + Value Drop

I think we all have a weird relationship with Reddit when it comes to marketing.

Some act like you can’t market here at all.

Other people think marketing means dropping a link, posting some generic AI-written fluff, and hoping people click.

Both are wrong. This is a builder’s community.

Marketing is not banned here. Lazy marketing is.

Sharing what you’re building is fine. Talking about your product is fine. Asking for feedback is fine.

Showing your GTM experiments is fine.

What is not fine is random AI slop with no context, no lesson, no real question, and no value for anyone else.

Use AI if it helps you think, write, organize, or get your voice out. Nobody cares. But actually say something.

Share the test. Share the mistake. Share the workflow. Share the positioning change. Share the thing that worked. Share the thing that completely flopped.

Share the prompt, process, repo, teardown, or lesson someone else can actually use.

That is the point of this subreddit.

I’ll also own that I slacked on building this community for a bit. But I’m starting to see more pickup now, and I want to be more intentional about what this place becomes.

So here’s a value drop.

Before I started building bigger GTM workflows, coding agents, transcript workflows, email workflows, and my broader knowledge base, I started with one simple thing:

Anti-slop. That file is what got me started on the path of building out my whole website-as-soul repo.

First came anti-slop. Then came Voice DNA. Then I started using the same structure to build GTM workflows, content systems, coding agents, and repeatable operating systems.

The anti-slop playbook is basically a checklist for spotting the patterns that make AI-assisted writing feel generic, fake, or over-polished.

Not because AI is bad. Because generic output is bad.

You can use it directly as a skill, a reference, or a starting point for your own content quality system:

https://github.com/shawnla90/website-with-soul/blob/main/playbook/02-content/02-anti-slop.md

And here’s the full repo if you want to dig into the broader build:

https://github.com/shawnla90/website-with-soul

That’s the standard I want this community to move toward.

And if you're here and you're reading this, drop, share what you're building in the comments.

u/Shawntenam — 19 days ago

To all my builders who are also NYK fans, let's fucking go. We are so cooking right now. thats the post

u/Shawntenam — 1 month ago

My prediction is that the go-to-market engineering role will evolve into a generalist position.

You’ll have a lead growth engineer (names subject to change) who knows everything and can handle the full stack. This person understands:

  • scraping
  • growth hacking
  • has been a go-to-market engineer since or even way before the role existed and has real experience that can't be built overnight

They have used all the tools and are the specialist. They have a full-stack and can build with Next.js and Vercel deployments. They can do:

  • scrapes
  • verifications
  • MX record checks
  • programmatic email sends

They can navigate everything with coding agents and adapt to any tools in the verse.

That’s your main guy, and that’s who everyone is looking for. They do exist, but they’re rare. Most of them are founders, building something, or working for Vercel, ChatGPT, or Anthropic right now. If I were building an org, I’d start with that role. The other two pillars are:

  1. the social growth engineer - locking this name in.
  2. the growth outreach engineer - name subject to change

The social growth engineer is the person who understands every platform and can distribute content that doesn’t suck.

They can get viewers to stick past the two-second mark and understand how to test the algorithm.

They know how to gain an audience, get indexed, and turn one lead into a thousand views.

They can go on Reddit, grab 10 threads asking for the solution your company can solve, and actually talk into those threads.

The growth outreach engineer is the person who understands cold outbound, emails, and how to test campaigns.

They can flex offerings, bounce off social sites, content, and use that as distribution for cold outreach.

The social growth engineer brings in inbound, understands your messaging, and creates your name so that when you call the growth outreach engineer, he can use the tools, test, iterate, and run the cold outreach to build a system like that.

that’s what I believe will be the new standard for how to grow and how to build. Those three guys will definitely outpace a team of 20 tab pushers or an agency, or whatever else you want to throw at the table right now. That’s my take. 

Shawn Tenam gtm Engineer and co-founder @ clearbox.to "Your Reddit opportunity mailbox that actually surfaces conversations you want to have without bot spamming. Powered by a proprietary engine called Aura that understands Reddit."

u/Shawntenam — 1 month ago
▲ 11 r/UseApolloIo+2 crossposts

My Claude code session just confirmed that Apollo is your first run engine.

For context, this is a scrape. x-followers running a new campaign can be a bit troublesome since the sourcing is from x.

Using Apollo for coverage with ClaudeCode is honestly the most clutch move right now, which is why I keep telling people not to sleep on Apollo, especially as your first source.

Sharing this because u/apollo, you guys are awesome, and ClaudeCode agrees too.

u/Shawntenam — 1 month ago
▲ 11 r/gtmengineering+1 crossposts

What's up builders, sharing my latest client workflow process with you guys. 20k deal, 60 day build + ongoing consulting. Week and a half in. Here's how it's going.

This week I walked a collaborator through a pipeline I built for a home services client and figured it was worth sharing the full breakdown.

The client needed to reach every company running Service Titan - that's the dominant software in home services.

Here's what the build actually looked like:

Layer 1 - TheirStack API: 5,296 companies identified. 16,000 API credits. Pulled programmatically into SQLite + Google Sheets. Cost: about $250 in credits Using API programmatically,

https://preview.redd.it/vk1e9tfuy45h1.png?width=713&format=png&auto=webp&s=2d8936445895c738116523f51968523217f1d5f5

Layer 2 - Apollo.io Search API: TheirStack only had domains for 60% of companies. Apollo's search API is basically free if you respect rate limits (50 requests every 5 minutes). Wrote a script in Claude Code, let it run for 30 minutes. Domain coverage went from 60% to 95%.

Layer 3 - Domain verification: Claude Code hit every URL. 4,189 came back live. 404 were dead. That's natural attrition - small businesses close. But now I know before I spend a dollar on outreach.

ayer 4 - Contact enrichment: 6,400 contacts across 3,000+ companies via Apollo. Still have a gap of ~1,500 companies with no contacts - that's what Prospeo fills next.

Layer 5 - MX analysis (the part most skip): Ran MX records on every verified domain BEFORE buying mailboxes.

Results: 40% Microsoft, 30% Google, 30% enterprise gateways (Barracuda, Mimecast, Proofpoint).

That gateway 30% is basically dead-end territory for cold email.

Most teams discover this after they've already purchased and warmed mailboxes for weeks.

total time: ~10 hours. 2 hours of me prompting and reviewing. 8 hours of Claude Code running in the background.

The key principle: every layer is determined by the data from the layer before.

I didn't tell my client to buy TheirStack until I confirmed 5,000+ companies were on Service Titan.

Didn't tell him which Prospeo tier until I knew Apollo's coverage gap.

Won't buy mailboxes until I have exact MX numbers for the Inbox Kit call tomorrow.

Most agencies and outbound teams do it backwards -pick tools, build lists, push into Instantly or SmartLead, then find out their infrastructure doesn't match their audience.

By then they're locked in.

Happy to answer questions on any layer.

you know where you can find me

Shawn Tenam gtm Engineer and co-founder @ clearbox.to "Your Reddit opportunity mailbox that actually surfaces conversations you want to have without bot spamming. Powered by a proprietary engine called Aura that understands Reddit."

reddit.com
u/Shawntenam — 1 month ago

Three Apollo API patterns across VC portfolio scrapes (a16z, YC, Sequoia) + gotchas

Been sharing my coding agent workflows here for a few weeks. Apollo piece comes up a lot, so here's how the API side actually works across the a16z, YC, and Sequoia scrapes... and the gotchas I've run into.

Three separate API patterns. Which one applies depends on what your scrape gives you coming in.

Pattern 1: Company domains first (every VC scrape gives you these)

organizations/enrich?domain= ... one call per domain, 0.8s sleep between calls. Returns industry, employee count, HQ, funding stage, LinkedIn URL, and the Apollo org ID you need for people discovery.

About 75 companies per minute running unattended in Python. 1,000 portfolio companies takes roughly 13 minutes. This is where the enrichment starts for every segment.

Pattern 2: People discovery once you have org IDs

mixed_people/api_search with organization_ids=[apollo_org_id] plus seniority and title filters. Returns redacted previews ... title visible, name obfuscated, person ID included. Then GET /people/<id> per chosen person for the full unredacted record: name, LinkedIn URL, current organization.

The gotcha worth knowing: organization_ids is the only filter in that search call that works reliably. Pass a domain or company name and you get random people from across Apollo's database with no connection to your target companies. I found this from a code comment written after hitting it. You need the org ID from the enrichment step first, which is why company enrichment runs before people discovery.

Pattern 3: People enrichment when you already have LinkedIn URLs

Some VC portfolio pages surface founder profiles directly ... YC and a16z do this. When you have LinkedIn URLs, people/bulk_match with LinkedIn URL plus first/last name plus org name. Ten per batch, hard cap per call. Returns email, email_status, seniority, function.

This path draws from your plan's data/export credit pool. Check your balance before kicking off a multi-segment run. Found out the hard way that it stalls mid-run without a credit check upfront.

Why the segments stay separate

The source of the scrape is the personalization layer for campaigns. A YC founder five months out of Demo Day is a different conversation than a Series B operator inside an a16z portfolio company.

If I merge the lists, I throw away the only signal that's actually unique per row ... where they came from. So a16z rows stay flagged a16z, YC stays YC, Sequoia stays Sequoia. The enriched fields write back in place to the same segment table.

Per-row reasoning

Any row that needs reasoning ... ICP fit, segment context, moved-flag if Apollo shows the person changed companies ... goes to a claude -p subprocess. Passes the enriched row, gets back a small JSON. Runs against my Max subscription so no API cost per row.

If you wire claude -p into a tight loop: session limits change June 15, 2026. Still works after. Plan for longer cooldowns between batches.

Happy to share the Python structure for any of these if useful.

Building this in the open at github.com/shawnla90/gtm-coding-agent. Clearbox (Reddit signal engine for GTM) soft-launches this week at clearbox.to dm me for early access.

reddit.com
u/Shawntenam — 1 month ago
▲ 8 r/UseApolloIo+1 crossposts

Apollo's API covers most of what teams spend Clay or ZoomInfo credits on. three steps, in order, across every VC portfolio scrape I run.

three steps. get the company's Apollo ID, use that ID to find people inside the company, then enrich only the rows that fit.

run it in this order and Apollo's API handles most of what RevOps teams reach for Clay or ZoomInfo to do. cheaper per row, faster to run unattended, and the data lands in your own database segment by segment.

here's how each step works and where the credit savings actually come from.

Step 1: turn a domain into a company record

every portfolio page gives you company domains. feed each domain into Apollo's company enrichment and it hands back industry, employee count, HQ, funding stage, LinkedIn URL, and (the important one) Apollo's internal company ID.

that ID is the thing that makes Steps 2 and 3 actually work.

speed is around 75 companies per minute running unattended. 1,000 domains runs in about 13 minutes. this is the cheapest step in the whole sequence.

Step 2: use the company ID to find people inside that company

this is the step most people get wrong.

Apollo's people search is free to run. you only spend credits when you actually pull the full record on someone. the search itself returns a redacted preview: title is visible, name is hidden, but each result has a person ID attached.

filter the search by company ID + seniority + title. scan the preview list. then go pull the full unredacted record only on the people who actually fit.

the gotcha that breaks this whole step: company ID is the only filter that works reliably here. if you try to search by domain or company name instead, Apollo returns random people from across the entire platform with no connection to your target accounts. you'll think the search is broken. it's not. it just needs the ID from Step 1.

this is why the order matters.

Step 3: bulk match when you already have LinkedIn URLs

some sources hand you LinkedIn profile URLs directly. YC and a16z portfolio pages do this for founders. when you've got URLs, Apollo's bulk match takes LinkedIn URL + first/last name + company name and returns email, email status, seniority, function. ten per batch.

heads up: this is the step that draws from your data/export credit pool, not the regular API budget. check your balance before running a multi-segment batch or the script stalls halfway through.

because you ran Steps 1 and 2 first, you already know which rows are worth enriching. you're only running bulk match on qualified targets, not the whole scrape. that's where the credit savings come from.

why Python instead of the UI

the UI is fine for campaigns and list building. the API via Python lets you do four things the UI can't:

… run the whole sequence in the background while you work on something else … write enriched fields back to your own database, segment by segment … control exactly which rows get credits spent on them … restart from wherever you left off if something breaks

each of my three VC segments stays in its own table. a16z rows stay flagged a16z. YC stays YC. Sequoia stays Sequoia.

source-of-scrape is the personalization layer for campaigns later. merge the segments and you lose the only signal that makes each row different from the next. a YC founder five months out of Demo Day is a completely different conversation than a Series B operator inside an a16z portfolio company.

the reasoning step

for anything that needs judgment (ICP fit score, a one-liner on segment context, a flag if Apollo shows the person moved to a new company), I'm running a small Claude call (claude -p) against each enriched row. runs against my Max subscription so no per-row cost.

heads up if you wire Claude into a tight loop: session limits change June 15, 2026. the pattern still works after the change, you just want longer cooldowns between batches so a long enrichment run doesn't stall mid-segment.

what's next

Apollo's Campaign Setter, one campaign per scrape source. copy that lives off the segment label. will share once the a16z and YC campaigns are running.

happy to share the Python structure for any of the three steps if it's useful. drop a comment and I'll send it over.

reddit.com
u/Shawntenam — 1 month ago