Your 1,000 signups · re-run Oct 26Filter before you enrich

Only enrich the signups you'd actually score.

Plenty of Render's personal-email signups aren't the professional developers BigQuery is looking for. So we went back to the 1,000 emails Render sent and ran the India, students and interns filter on them. 306 matched a profile, 126 drop out on the identify call itself, and only the 180 left get a full enrichment.

Counts are real, from your 1,000 emails · Oct 26, 2026 · the job view is illustrative
41%
of the 306 matches never reach the full enrichment call
13
developers at companies with 1,000+ people, for sales
14
founders, CEOs and CTOs, for the startup program
22
developers who list cloud or container skills
What I heard

Find the developers. Skip the rest early.

We need something to enrich these that costs much less and that works.
Crustdata finds more data for us than other options, but a lot of it we don't need.
All this data is meant to flow into BigQuery... where we would score it.
This could reduce this down by as much as half or more.
What it has to do

Four things the setup has to get right for Render.

A Gmail address says nothing on its own. The job is turning it into a yes or no on "professional developer", for as little work as possible.

01

Filter before the full enrichment

India, students and interns come out before anyone gets fully enriched. So location and title have to come back on the very first call.

02

Find the professional developers

The match has to say whether a working developer is behind the signup, in whatever language their title is written.

03

Flow straight into BigQuery

Scoring happens in Render's own warehouse, so the data arrives as rows Render's code writes, not inside another tool.

04

Sit first in Render's own waterfall

An API key Render owns. Misses come back clearly marked, so they move straight to the next provider.

What the 1,000 already show

Four things your own signups can tell Render.

Everything here comes from the 1,000 emails Render sent, run again on Oct 26. Play 01 is the India, students and interns filter, ready to run this week. We show titles and company sizes; names stay out.

01

Filter India, students and interns before the full enrichment

The askRun it this week

The identify call already returns each match's location, headline and current title. So the filter is a few lines in Render's own pipeline, and only the profiles that pass get the full enrichment. On the 1,000 emails: 306 matched, 110 are based in India, and 16 more are students or interns elsewhere. That leaves 180.

How it runs
  1. Send the day's personal-email signups to /batch/person/identify.
  2. Drop any match where basic_profile.location.country is India, or the headline or current title says student, intern or internship.
  3. Send the rest to /person/enrich, then write them to BigQuery.

126 of 306 matches never reach the enrichment call. That's 41% of the enrichment work gone before it starts.

→ BigQueryEvery signup batchNew personal-email signup
Your 1,000 · the filter, step by stepOct 26, 2026
Emails Render sent1,000
Matched to a profileidentify306
Based in Indiaskip110
Student or intern, elsewhereskip16
Worth a full enrichmentenrich180
24 of the 110 in India are also students or interns; each person counts once. Add estudiante and estágio to the word list and 2 more drop out. Swap the country list whenever Render's focus changes.
02

Flag the professional developers before you score

Your scoring input

58 of the 180 build software for a living, going by their own title or headline: software engineers, backend, frontend and mobile developers, DevOps and SRE, data and ML engineers, QA, and a CTO. Six write it in Portuguese or Spanish (desenvolvedor, ingeniero de software), so the match can't be English-only. That flag is the first column Render's BigQuery score needs.

How it runs
  1. Read basic_profile.current_title and headline from the same identify response.
  2. Match engineering titles in English, Portuguese and Spanish.
  3. Write is_developer next to the signup in BigQuery, with employer size from /person/enrich.

The developer flag uses the same fields as the filter, so BigQuery knows who's a developer before the full enrichment even runs.

→ BigQuery columnEvery signup batchTitle or headline match
A sample of the 58 · titles as writtenOct 26, 2026
TitleEmployer sizeCountry
Senior Software Engineer10,001+Indonesia
Forward Deployed Data Scientist II1,001 to 5,000United Kingdom
Senior Backend Developer1,001 to 5,000Germany
Mobile Developer5,001 to 10,000Brazil
DevOps Engineer51 to 200Nepal
Frontend Developer51 to 200Nigeria
Principal Engineer, Team Lead11 to 50Nepal
Desenvolvedor de back end2 to 10Brazil
35 of the 58 are entry level. The other 122 include analysts, marketers, operators and owners, plus 24 with no current title on their profile.
03

Route each signup by the team behind it

Only Render can run this one

The full enrichment returns each person's current employer and its size. On the 180, that splits two groups out of the pile. 13 developers work at companies with 1,000+ people, including Amazon, Apple, Wells Fargo, Capgemini Engineering and Braze. 14 are founders, CEOs or CTOs, and the 10 with a known team size are all at companies of 50 people or fewer. One is a sales conversation, the other is exactly who Render's startup program is for.

How it runs
  1. /person/enrich returns company_headcount_latest and the employer for each of the 180.
  2. Developer at a 1,000+ person company goes to the sales queue. Founder, CEO or CTO at 50 or fewer goes to the startup program.
  3. Everyone else stays in marketing nurture, scored in BigQuery as today.

A developer signing up from inside a 10,000-person company can be the first seat of a team account. Without the employer, that signup looks like any other Gmail address.

→ Sales and startup queuesDailyEmployer size + title
The 180 enriched signups split three ways: 13 developers at 1,000+ person companies go to sales, 14 founders, CEOs or CTOs go to the startup program, and the rest stay in nurture. 180 ENRICHED SALES · 13 dev at 1,000+ people STARTUPS · 14 founder, CEO or CTO NURTURE scored as today
Where the 13 developers workOct 26, 2026
AmazonAppleWells FargoCognizantBank Rakyat IndonesiaCapgemini EngineeringAmdocsRestaurant Brands InternationalDC GovernmentPositivo TecnologiaDEPTBrazeAmerican Specialty Health
Some of these may already be Render customers. For those, a new developer signup is an expansion signal.
04

Talk migration with developers who already run on a cloud

Built for your migration offer

22 of the 58 developers list Docker, AWS, Azure, Google Cloud, Kubernetes, Firebase or Netlify on their profile. None name Heroku, Vercel or Railway, so a search on platform names alone would have found nobody. Skills come back on the full enrichment, so Render's migration message can go to the developers most likely to be running something somewhere else.

How it runs
  1. /person/enrich returns skills for each of the 180.
  2. Tag developers whose skills include a cloud or container platform.
  3. Send that segment Render's migration message from BigQuery, through the marketing tools Render already uses.

Platform names found none of them. Skills found 22.

→ Lifecycle emailOn enrichCloud skill on profile
Cloud skills across the 58 developersOct 26, 2026
Docker13
Azure8
AWS7
Google Cloud6
Kubernetes5
Heroku, Vercel or Railway0
Bars are out of the 22. Some list more than one. A skill says what someone has worked with, not where their app runs today, so treat it as a reason to send the message, not a fact about their stack.
Where it plugs in

Your pipeline, with Crustdata first in the waterfall.

Render's own code calls the API. There's no orchestration layer in between and nothing new to log into. Anything we don't match comes back marked not found and moves to the next provider in your waterfall.

Already yours

Signups

Personal-email signups as they arrive, plus the backlog.

Crustdata

Identify

Email in, profile out: location, headline, current title.

/batch/person/identify
Your code

Filter

A few lines. India, students and interns stop here.

Crustdata

Enrich

Employer, team size, seniority, skills and history for the ones that pass.

/person/enrich
Already yours

BigQuery

Where the score happens. Misses go on to your next provider.

The filter · Python sketchfield names from the identify response
# identify(), enrich() and next_provider() are your own thin wrappers
import re

SKIP_COUNTRIES = {"India"}                          # swap any time
EARLY_CAREER = re.compile(r"\b(student|intern|internship)\b", re.I)

def worth_enriching(person):
    p = person["basic_profile"]
    country = (p.get("location") or {}).get("country")
    words = f'{p.get("headline") or ""} {p.get("current_title") or ""}'
    return country not in SKIP_COUNTRIES and not EARLY_CAREER.search(words)

matches, misses = identify(new_signup_emails)          # /batch/person/identify
keep = [m for m in matches if worth_enriching(m)]
profiles = enrich(keep)                                # /person/enrich, only the ones that pass
bigquery.insert_rows("signups_enriched", profiles)
next_provider(misses)                                  # the rest of your waterfall
On your 1,000, this keeps 180 of 306 matches. The table name is a placeholder.
How to compare

Same 1,000 emails. Score the outputs.

Run the list through whatever Render is testing today and put the results side by side with ours. Four counts settle it.

Ask 01Matches

How many of the 1,000 match a professional profile?

Count rows with a profile attached, nothing else.

Ours today: 306
Ask 02Skip early

How many can you drop before the full enrichment?

Using only what the first call returns. If location and title don't come back, the answer is zero.

Ours today: 126 skipped, 180 left
Ask 03Developers

How many signups can you flag as developers?

Titles and headlines in any language count.

Ours today: 58
Ask 04Current

Are the titles and employers still right?

Pick 10 matches at random and check them against each person's live profile.

Ours: check it on the re-run

If another setup matches more of the same 1,000 and lets Render skip as many before the full enrichment, it should win. We'd just like the re-run in the comparison.

Straight answers

The questions so far.

Q1Can we filter out India, students and interns before the full enrichment?

Yes. The identify call returns each match's location, headline and current title, so your pipeline checks them and only calls enrich on the ones that pass. On your 1,000, that left 180 of 306.

Q2Can we run Crustdata in our own waterfall, with our own API key?

Yes. Your code calls identify first. Anything we don't match comes back marked not found and moves to your next provider. There's no orchestration layer to set up on our side.

Q3Is the enrichment a one-time pull, or does it assume a yearly refresh?

One pull per signup. Re-enrich someone only if and when Render chooses to.

Q4What's Crustdata best at?

Fresh, deep professional data: current title and employer, work history, skills, and the company behind each person (team size, industry, growth). It's a data layer your own code calls directly, through the API or MCP.

What happens next

One more run, on the same list.

No dates we didn't agree to, and nothing here needs an answer today.

The short version

Filter on the first call. Enrich the 180. Score the developers.

Want the re-run when it's ready? Reply to Doug, or grab a few minutes.