• 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: v34
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.

Screenshot 2025-08-07 at 4.05.51 PM.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 Val Town Bearer token, 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 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"
});

If you want to read more about how we built it and how to use it: https://www.val.town/x/charmaine/clay-proxy/branch/main/code/README.md

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 interacting with our ICP (Ideal Customer Profile) users.

What this changed for us

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 image.png
  • Warm intros surface naturally
  • The basic questions get answered without dashboards: how many joined, are we attracting our ICP, who owns follow‑ups

Then what?

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
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.