Nick Lafferty built a tool to compare LinkedIn posts with sales leads while sitting in an airport lounge. It took about an hour. He used Claude Code to put social media performance next to Profound's customer records in HubSpot.
"This took me like an hour in the airport lounge when I was flying back from Europe last week."
At GTM as Code, Nick showed that tool alongside the other software he had built as Profound's founding marketing engineer. He had an agent that reviewed Google Ads, a way to make ads from Figma templates, and a website that updated itself using Profound's research.
Video not loading in LinkedIn or your in-app browser? Watch it on YouTube.
What a marketing engineer does
Nick opened by explaining his job title.
"I'm a marketing engineer. We kind of just made this up, to be honest with y'all. Turns out you can just invent a job title and people just go with it if you're persuasive enough."
Nick came from paid advertising, but he had also kept a personal code repository on GitHub for eight years. He already used GitHub and Cloudflare Pages to publish his website. At Profound, he began applying those skills to the team's marketing work.
"Of everyone on my team, I was kind of the most natural person to adopt AI tools and AI systems."
The projects he brought to the talk show what that job means in practice. He uses them to review campaigns, make ads, and update the research on his website.
Finding out whether LinkedIn posts lead to sales
Profound's team posts on LinkedIn, but a successful post does not tell Nick whether it led to a sales conversation. He wanted to compare the social activity with what happened in HubSpot.
The tool he built in the airport lounge put LinkedIn and Twitter metrics next to HubSpot records. He could compare when posts attracted attention with when leads arrived. The charts included posts by Profound's CEO and CTO, and his own post about not wanting to be a head of marketing, which received 133,000 impressions.
Tracking links explained only part of the story. Nick said 20% of the LinkedIn leads clicked a link with UTM parameters, the tags that record where a website visitor came from. The other 80% told the team about LinkedIn on the sales form.
Nick's Default form requires an answer to "How'd you hear about us?" It is an open-text field with a five-character minimum, so visitors have to write an answer. People type "LinkedIn."
"I force you to fill this out. This is a required, five-character minimum limit open text and you tell me LinkedIn."
Nick also reported a 3x increase in the meeting booked rate after switching the webinar form to Default.
Reviewing Google Ads without giving the agent control
Profound uses an agency for Google Ads. Nick joked that he wants to replace it, partly so he can write a LinkedIn post about it.
For now, Nick has an agent review the campaigns on a schedule. It reads search terms and ad copy, checks performance by location and device, and looks at keywords, schedules, and competitor information. GitHub Actions runs the scheduled job.
The agent sends recommendations to Slack with buttons to approve them. Nick still decides which changes to make.
"None of this takes action on my behalf in the platform. Mostly because I just don't trust it to fully have like a fully automated loop. I still do deeply believe in a human-in-the-loop element."
That choice limits what the agent can do to a live campaign. It can finish the analysis while Nick keeps control of the changes.
Making new ads from five Figma templates
Profound's designers focus on the product. Nick uses five Figma templates for marketing ads, changing the text for each campaign. He connected Claude Code to Figma through MCP, a way for the agent to use another app's tools, so it could fill in the templates.
In the demo, he asked Claude to write LinkedIn ad copy using lyrics from the Grateful Dead's "Althea," then place the copy in his Figma templates.
"You can just make ads as long as you have the visual template. Everything else — CTA, text — you can change in Claude Code."
He said he would not run the Grateful Dead ads. The demo showed how he could try different copy in an existing design without asking someone to make each version by hand.
Keeping his website research up to date
Nick tests ideas on his personal website before trying them at Profound. He builds its pages with Hugo, stores the code on GitHub, and publishes the site through Cloudflare Pages.
He wanted the site to show how often AI search answers linked to his pages. Profound counts those citations across ChatGPT, Gemini, Perplexity, and Google AI Mode. Nick set up a weekly job in GitHub Actions to request the counts from Profound's API and update the numbers on his site. The API is the connection that lets his code read Profound's data.
Keeping the research itself current was another job. Profound publishes its findings about sites cited in AI search in a Google Slides deck. Nick wanted his website to use those findings without having to copy each update by hand.
"I gave this to Claude and I was like, hey, I have this publicly sharable URL, can you turn this into markdown?"
Claude converted the Google Slides data to Markdown, a plain-text format he could keep with his website's code. A weekly GitHub Actions job updates that file with Profound's research and marks entries older than 180 days as outdated.
"Research gets old and stale in my industry very quickly. I don't want to cite a piece of research from a year ago because it's quite literally very out of date and often incorrect."
The agents that write and update his website read this file. Updating the research in one place gives them the same current material to work from.
How his website earned citations
Nick reported around 500K AI search citations for his personal site. An attendee asked how he had earned them.
"Every tech company I work at, I build a backlink to my website. Make a domain, write blogs for your company, and then just link back to your website and do that for 10 years and you get really good domain authority."
He linked to his personal site from work published at companies including Loom and Profound, using author bios and relevant inline links.
Figures from the talk
Nick reported the following figures in the talk.
| Metric | Value |
|---|---|
| LinkedIn attribution tool build time | ~1 hour (airport lounge) |
| Meeting booked rate improvement (Default form) | 3x after switching to Default |
| LinkedIn UTM-tracked leads | 20% click directly |
| Self-reported LinkedIn leads | ~80% (open text form field) |
| AI search citations (personal site) | ~500K |
| Figma ad templates | 5 (swappable text) |
| Research deprecation window | 180 days |
| GitHub repo tenure | 8 years |
Nick Lafferty on LinkedIn · @LaffertyN on X · nicklafferty.com · Profound
Watch the full GTM as Code event · Nandika Jhunjhunwala on account scoring for GTM agents · Hunter Rosenblume on RFP automation · Kathleen Booth on building competitive intelligence without engineers
