• Blog
  • Docs
  • Pricing
  • We’re hiring!
Log inSign up
charmaine

charmaine

blog-aug-7

Remix of valdottown/blog
Public
Like
blog-aug-7
Home
Code
9
components
12
posts
9
routes
6
styles
1
utils
8
IMAGES.md
README.md
TODOs.md
H
index.ts
Branches
1
Pull requests
Remixes
History
Environment variables
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.
Sign up now
Code
/
posts
/
2025-08-07-clay-api.md
Code
/
posts
/
2025-08-07-clay-api.md
Search
8/7/2025
Viewing readonly version of main branch: v49
View latest version
2025-08-07-clay-api.md
title:
How we are calling Clay as an enrichment API (and you can too)
description:
User enrichments for startups
pubDate:
2025-08-07T00:00:00.000Z
author:
Charmaine Lee

This is for our fellow engineers doing sales

I used to think enrichment was for big companies. Then we set a goal: find 10 pre‑sales customers before launching Val Town for Teams. My day became dashboards, Google, and DMs. We even piped new users from Clerk into Discord and did the “scroll a long feed of emails and hope you recognize someone” routine. It didn’t scale.

Clearbit used to be the obvious answer, but post‑Twilio acquisition, it wasn’t really an option for new customers. Clay was great, but we wanted to use it like an API so anyone on our team could use it programatically. We asked on X, the CEO replied, and that nudged us to build an API proxy ourselves.

CleanShot 2025-08-07 at 16.41.52@2x.png

We turned Clay into an API / SDK on Val Town: Clay API Proxy.

How it works

Your val calls clay() with an email or GitHub username. We verify your identity, generate a request id, and forward the payload to Clay with that id. Clay enriches and POSTs the result back using the same id. While your request is open, we poll for it. When it returns, we give you the JSON back as if it's a normal request/response.

Enriching emails with Clay is now as simple as

import { clay } from "https://esm.town/v/charmaine/clay-proxy/sdk.ts";

const result = await clay({
  email: "charmainekmlee@gmail.com",
  source: "user_signup"
});

We then started piping this new enriched data directly into our Discord (TODO: example here). We were no longer wasting time combing through dashboards. We were able to invest time into interacting with our ICP (Ideal Customer Profile) users as soon as they sign up.

What this changed for us

This is a big part of how we found our first 10 pre-sales customers.

  • We see who joined today and whether they look like our ICP
  • Anyone can start a thread, tag the right person, or notify everyone else that they've already reached out image.png
  • Warm intros were easy to track
  • The basics get answered intuitively without dashboards: how many new users joined, are we attracting ICP, who owns follow‑ups.

Then what?

Once you have this data, there's lots you can do.

Here are some examples:

  • For fellow devtool companies, we reach out with an auto‑generated Val that runs their SDK so the first touch includes a working demo. Screenshot 2025-08-07 at 4.36.15 PM.png

  • Get Townie to build people custom demos etc. based on their profile - Patrick Spychalski has a great example post with a similar workflow.

Call Clay with a single line of code: Clay API Proxy.

FeaturesVersion controlCode intelligenceCLIMCP
Use cases
TeamsAI agentsSlackGTM
DocsShowcaseTemplatesNewestTrendingAPI examplesNPM packages
PricingNewsletterBlogAboutCareers
We’re hiring!
Brandhi@val.townStatus
X (Twitter)
Discord community
GitHub discussions
YouTube channel
Bluesky
Open Source Pledge
Terms of usePrivacy policyAbuse contact
© 2025 Val Town, Inc.