| title: | How we used Clay as an API for enrichments (and you can too) |
|---|---|
| description: | User enrichments for startups |
| pubDate: | 2025-08-07T00:00:00.000Z |
| author: | Charmaine Lee |
We’re a tiny team. I used to think user enrichment was for big companies. Then we set a goal: find 10 pre‑sales customers before launching Val Town for Teams. My day turned into dashboards, Google, and DMs. We even piped new users into Discord and did the “scroll a long feed of emails and hope you spot someone important” routine. It didn’t scale. Great users were joining, but finding the right ones felt like digging for treasure.
Clearbit used to be the obvious answer, but after the Twilio acquisition it wasn’t really an option for net‑new customers. Clay was great, but we wanted to use it like an API so anyone on our team can make calls to it directly and programmatically do custom things on top. Unfortunately, this isn't something they offer.
We tweeted about it and Clay responded with a way to do it! So we did it. We turned Clay into an API in Val Town: https://www.val.town/x/charmaine/clay-proxy/branch/main/code/README.md.
This is for our fellow engineers doing sales!
Your app POSTs to /enrich with an email or GitHub username and a Val bearer token. We verify you, generate a request id, and forward the payload to Clay with that id. Clay enriches and POSTs the result back to /clay-webhook using the same id. We stash the result under that id and, while your request is open, 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 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"
});
You can get started here: https://www.val.town/x/charmaine/clay-proxy.
We then started piping this new enriched data directly into our Discord / Slack channel (we use both). We were no longer wasting time combing through dashboards. We were able to invest time into (Ideal Customer Profile) users.
This is a big part of how we found our first 10 pre-sales customers because:
- We see who joined today and whether they look like ICP
- Anyone can start a thread, tag the right person, or notify everyone else that they've already reached out
- Warm intros surface naturally
- The basic questions get answered without dashboards: how many joined, are we attracting our ICP, who owns follow‑ups
Once you have this data, there's lots you can do. Here are some examples:
- For users at devtool companies, we could reach out with autogenerated vals with their SDK to show how quick it was to get their SDK example up and running in Val Town
- Get Townie to build people custom demos etc. based on their profile - Patrick has a great post about this