Clay workflow · Technical case study

Job hunting, engineered like a GTM motion

How I built a two-table enrichment and signal-scoring system in Clay to run warm outreach to potential employers — treating myself as the product, AI-native B2B SaaS companies as the ICP, and hiring signals as buying intent.

28target companies enriched
193GTM & marketing contacts mapped
76columns across 2 linked tables
5custom AI columns (prompts included)

⚙️ Built entirely on Clay's Free plan — limited credits, deliberate prioritization

01 · Overview

The problem: cold applications don't convert

Applying through job portals is the equivalent of cold outbound with no enrichment: low context, low personalization, low reply rate. I had already done the ICP work — a research-backed list of ~40 AI-native B2B SaaS companies built in Notion with Claude. What was missing was the GTM infrastructure to turn that list into prioritized, personalized warm outreach.

So I built the same system a GTM Engineer would build for a sales team, with one twist: the "product" is me, and the "buying signals" are hiring signals.

🎯 ICP

AI-native B2B SaaS companies (Anthropic, Vercel, Cursor, Clay-adjacent tools…) that hire GTM Engineering, Growth and Marketing Ops roles.

📈 Priority signal

Employee growth over the last 3 and 6 months. Teams that are growing headcount are the ones opening roles — that's my "intent data".

✉️ Outcome

A ranked contact list with human-verified work emails and an AI-generated first line grounded in each company's real GTM pain points.

Stack

Clay — enrichment, waterfalls, Claygent & AI columns Notion — ICP research (built with Claude) Native Clay integrations — domain & firmographics Multi-provider waterfalls — funding stage & verified emails

02 · Architecture

Two linked tables, one pipeline

The workbook is structured as a pipeline: a CSV import feeds a Companies table (the research layer), which feeds a People table (the outreach layer). The tables are linked, so every person row automatically inherits the key data of their company — enrichment runs once per company, never 193 times.

📄
Notion ICP list~40 target companies researched with Claude, imported via CSV
🏢
Companies table28 rows · 33 columns
Firmographics, funding stage, growth %, recent news
🔎
Find People sourceClay people providers filtered by target GTM roles
👥
People table193 rows · 43 columns
Verified emails, fit score, pain points, first line
Why this shape

Companies are the unit of research; people are the unit of outreach. Splitting them keeps credits cheap (company-level AI runs 28 times, not 193), keeps data consistent across contacts at the same company, and mirrors how a real account-based GTM motion is modeled.

03 · Companies table

The research layer: from a name to a signal-rich account

  1. Import from Notion (CSV)

    The curated ICP list enters Clay as company names — nothing else. Everything downstream is derived.

  2. Domain URL via native integration

    The domain is the join key for everything that follows. When you don't have a CRM record ID, the domain is the most reliable enrichment input there is.

  3. Firmographic enrichment

    From the domain: Employee Count, company LinkedIn URL, Industry, Description, Total Funding Amount Range (USD), Annual Revenue — plus the target role I can realistically aim for at each company.

  4. Funding Stage — AI waterfall

    Built on Domain URL + company LinkedIn URL. A waterfall means multiple sources are tried in order until one returns a confident answer — Series A/B/C/D/E or "Venture – Series Unknown" instead of blanks.

  5. Employee Growth % (3 & 6 months) — AI

    Computed from Employee Count data. This is the priority signal of the whole system: Cursor at +208% over 6 months tells me more about open roles than any job board.

  6. Recent News — Claygent web research

    An AI agent scrapes the web for post-Jan-2025 news across six signal categories (campaigns/rebrands, market expansion, fundraising, marketing leadership changes, awards, partnerships) and returns only links.

  7. News Summary — AI distillation

    A second AI column reads only the URL slugs of those links and extracts the 2 most interesting signals as one-sentence summaries.

Clay Companies table with base enrichment columns
1
2
3
4

Companies table, 28/28 rows · base firmographic enrichment from the domain.

Funding stage waterfall and employee growth columns
1
2
3
4

Signal columns: funding stage, headcount growth, and recent news running at 54% completion.

The prompts

🤖 Prompt — Recent News (Claygent)
Scrape the web to find recent news article for the company, only consider information after January 1st 2025 and only return the link to the page and nothing else:

Marketing Campaigns and Rebranding Initiatives: Brands launching new marketing campaigns or undergoing rebranding are keen to measure the impact of their efforts and understand changes in brand perception. Look for press releases, social media announcements, or news articles about new advertising campaigns, rebranding, or product launches.

Expansion into New Markets: Companies expanding into new geographical markets or targeting new customer segments need to track brand awareness and sentiment in these areas. Monitor business news for announcements about market expansions, international growth, or new store openings, stores in progress or completed (into other states or countries).

Fundraising and Investment Rounds: Brands that have recently secured funding are often looking to scale their marketing efforts and will be interested in tools that can demonstrate ROI and brand growth. Keep an eye on financial news, investment websites, and press releases about venture capital funding, Series A/B/C rounds, or private equity investments.

Leadership Changes in Marketing: New CMOs, marketing directors, or brand managers often bring fresh perspectives and are more likely to invest in new tools to measure and improve brand performance. Follow industry publications and company websites for announcements of new hires or changes in the marketing leadership team.

Industry Awards and Recognition: Brands that have won industry awards or received recognition for their marketing efforts are likely to continue investing in brand tracking to maintain and build on their success. Track industry awards, such as marketing awards, brand excellence awards, or advertising accolades.

Partnerships: Considering if the company is owned by a group or if the group has one of their companies mentioned, include them.

Finally, keep your search simple and don't add quotes to google searches so you can maximize the chances of finding several links to analyze, so for example, use the following formats, if one doesn't work try the other: (company name + recent news) OR (company name + news 2025) OR (Company name + news after January 1st 2025) OR (company name + 2025 brand campaign OR product release OR collaboration OR partnership OR expansion OR fundraise)

If you cannot find any links then output "Not found" and nothing else.
🤖 Prompt — News Summary (slug-only distillation)
Below are several news URLs about the company. You cannot visit the links, but you can read their URL slugs to infer what each article is about.

URLs: {Recent News Link}

Your task:
1. Read each URL slug carefully
2. Identify the 2 most interesting or recent signals (expansion, funding, rebrand, leadership change, new product, new market)
3. Return a short summary of each signal in plain text, max 1 sentence each

Format:
- [Signal 1]: one sentence describing what happened
- [Signal 2]: one sentence describing what happened

If the URLs don't contain enough information to infer a clear signal, return: "No clear signal found."

Do not invent information. Only use what the URL slugs suggest.
Anti-hallucination design

Both prompts have an explicit escape hatch ("Not found" / "No clear signal found") and a hard rule against inventing information. The News Summary deliberately reads only URL slugs — it can't fabricate article content it never saw, and it keeps the column fast and cheap. A "Not found" cell is a feature: it tells me honestly that there's no recency hook for that account.

04 · People table

The outreach layer: who to talk to, and what to say

  1. Find people at the 28 companies

    Clay's people providers, filtered to growth, marketing and GTM roles, returned 193 contacts. The breadth of providers here is exactly why Clay is the right tool for this step.

  2. Person-level enrichment

    Full Name, Job Title, target role match, Location, LinkedIn Profile — everything needed to qualify the contact and personalize the touch.

  3. Inherit company context via linked tables

    A "Company Table Data" column links each person to their company row: funding stage, growth %, news summary, salary band and target role flow in automatically. Zero duplicated enrichment.

  4. Human-verified work emails — waterfall

    Multiple email providers tried in sequence, keeping only human-verified results — deliverability over volume.

  5. The AI chain: Score → Pain → Line

    Three AI columns where each consumes the previous one's output: Employer Fit Score classifies the contact (High/Medium/Low) against my real profile; GTM Pain Points researches each company's website for operations gaps; Personalized First Line turns those pain points into one human-sounding opening sentence.

People table linked to Companies table with inherited cell data
1
2
3

Linked tables in action — company intelligence flows into every contact row automatically.

People enrichment columns: role, location, LinkedIn
1
2
3
4

Person-level enrichment on top of inherited company data.

AI scoring columns: fit score, pain points, personalized first line
1
2
3
4

The AI chain mid-run. On the Free plan, Claygent columns only run where the fit score — and my own shortlist — justify the credits.

⚙️ Free-plan constraint, by design

This entire case study was built on Clay's Free plan, so AI credits were a hard constraint. Instead of running Claygent across all 193 contacts, I ran the expensive columns (GTM Pain Points and Personalized First Line) only on contacts with a HIGH Employer Fit Score — plus the companies I personally cared about most. That's why those completion bars sit at 4% and 3%: every credit spent was a deliberate prioritization decision, the same way you'd manage enrichment budget in a real GTM system.

The prompts

🤖 Prompt — Employer Fit Score
You are helping a job seeker evaluate whether a specific person at a company is the right contact to reach out to for a job opportunity.

Candidate profile:
- Name: Agustina Santos
- Role pivot: B2B Growth Marketer → GTM Engineer + SEO/AEO Specialist
- Core skills: Clay workflows, n8n automations, Apollo, HubSpot, lifecycle email, AEO/SEO audits, LLM-optimized content
- Target roles: GTM Engineer, Marketing Ops, Growth, AI GTM Specialist
- Prefers: remote-first, USD-denominated, AI-native or AI-forward culture

CONTACT TO EVALUATE:
- Name: {Full Name}
- Job Title: {Job Title}
- Company: {Company}
- LinkedIn profile: {LinkedIn Profile}

EVALUATE TWO THINGS:

1. CONTACT FIT [High / Medium / Low]
Is this person likely to be involved in hiring decisions for GTM, Growth, or Marketing Ops roles? Consider their seniority, department, and title. A Head of Growth, VP Marketing, CMO, or Founder is High. A junior IC in an unrelated department is Low.

2. OUTREACH ANGLE (1 sentence)
Given their role, what's the most relevant angle for Agustina to mention when reaching out? Example: if they're Head of Growth, mention Clay workflows and GTM automation. If they're a Founder, lead with business impact and ROI.

Be concise. Output format:
CONTACT FIT: [High/Medium/Low]
WHY: [1 sentence]
OUTREACH ANGLE: [1 sentence]
🤖 Prompt — GTM Pain Points
Visit the website {Domain URL} and look for signals about how this company runs their GTM and marketing operations.

Look specifically at:
1. Their homepage and product messaging
2. Their careers page (if accessible) — what GTM/marketing/ops roles are open or recently filled
3. Any blog, resources, or case studies section

Based on what you find, identify 2-3 GTM pain points or gaps this company likely has. Think about:
- Are they scaling fast without enough GTM infrastructure?
- Do they seem to rely heavily on manual outbound with no automation signals?
- Is their marketing team thin relative to their growth stage?
- Do they talk about AI in their GTM or is it absent from their messaging?
- Are they hiring many SDRs but no Marketing Ops or RevOps?

Output format:
- [Pain Point 1]: one sentence
- [Pain Point 2]: one sentence
- [Pain Point 3]: one sentence (if found)

If you cannot access the website or find enough information, return: "No GTM signals found."

Do not invent information. Only use what you find on the site.
🤖 Prompt — Personalized First Line
You are writing a personalized first line for a warm outreach message from Agustina Santos, a B2B growth marketer pivoting into GTM Engineering and AEO/AI Search, reaching out to {Full Name} at {Company} about a potential job opportunity.

CONTACT:
- Name: {Full Name}
- Job Title: {Job Title}
- Company: {Company}

GTM PAIN POINTS:
{GTM Pain Points}

RULES:
- Write ONLY the first line. Nothing else.
- Prioritize GTM pain points
- If GTM pain points are empty or said "No signal found", write a role-specific opener using {Job Title} and {Company} only
- It must feel human and specific, not like a template. With a conversational style and warm tone.
- It must create a natural bridge to GTM, growth, or marketing automation topics
- Max 1 sentence, max 25 words
- Write in English
- Always start with a "Hi," and never with an "I", or a compliment

EXAMPLES OF GOOD FIRST LINES:
- "Hi {first name}, saw the Series B announcement, that's usually when GTM systems either scale or become the first bottleneck."
- "Hi {first name}, I understand that heavy SDR hiring with no Marketing Ops roles suggests the pipeline might be running on manual for now."
- "Hi {first name}, the rebrand at {company} caught my eye, those transitions usually expose gaps in how lead data is structured downstream."

OUTPUT: Just the first line. No labels, no explanation.
Why the chain matters

The first line never starts from zero. By the time that prompt runs, the system already knows the contact's seniority and angle (Fit Score), and the company's researched operations gaps (Pain Points). The output isn't "AI-generated flattery" — it's a hypothesis about their GTM stack, written in 25 words or less, with few-shot examples enforcing the voice and hard rules ("never start with I, never a compliment") killing the most common cold-email tells.

05 · Design decisions

Seven decisions that shaped the build

1Two linked tables, not one mega-table

Companies = research unit, people = outreach unit. Company-level AI runs 28×, not 193×. Cheaper, faster, and every contact at the same company sees identical company data.

2Domain as the join key

With no CRM record ID available, the domain is the most reliable enrichment input. Every downstream column traces back to it.

3Waterfalls where quality matters

Funding stage and work emails fall through multiple providers before giving up. For emails, only human-verified results survive — deliverability beats volume in warm outreach.

4Anti-hallucination by default

Every AI column has an explicit "Not found / No clear signal" escape hatch and a "do not invent information" rule. The News Summary only reads URL slugs, so it physically can't fabricate article content.

5Growth % as the priority signal

3- and 6-month headcount growth identifies who is actually expanding their team — the closest public proxy to "this company is about to open the role I want".

6Chained AI: Score → Pain → Line

Each AI column consumes the previous one's output. On Clay's Free plan credits are scarce, so the expensive personalization steps ran only on HIGH-fit, personally prioritized contacts — visible in the 4%/3% completion bars: prioritization, not failure.

7Prompts engineered like specs

Explicit output formats, hard constraints (max 25 words, never start with "I"), few-shot examples, and conditional fallbacks. Every prompt is reproducible and auditable — documented in full above.

What I'd improve next

Push high-fit contacts into a sequencing tool with reply tracking, add a job-postings column as a second intent signal, and version the prompts in GitHub so iterations are measurable instead of vibes-based.