Jolene Fernandes

Growth operator with range and taste

03 · Scale it

Outbound GTM triggered by government filings

Python · Supabase · Clay · n8n · Pipedrive · Claude Code

At a glance

Problem
Sales teams waste time on lists that are stale, wrong, or full of existing customers.
Build
An outbound system that spots buying signals in trustworthy public data, scores each account, finds the right contact, avoids spam and duplication, maintains a source of truth, and updates a CRM.
Result
Communication sent to the right candidate accounts, with no duplicate outreach, and every decision documented and the pipeline auditable.

How it works

  • Python and Supabase
  • Clay
  • n8n and Pipedrive
  • Out of the run
SEC EDGARdaily index, filings, historyStored whole in Supabasefilings_raw, entities_rawThree route outsfunds, location, no industryRouted outfunds, unserviceable, otherScore out of 10four inputs from the filingClay payload built13 columns per companyCandidates strippedmill and signer listsClay enrichesdomain, work email, the copyDedupe on returnagainst three tablesRemovedcustomer, inbound, emailedOutbound run, in n8norg, person, deal at EnrichedTest rowsends, deal moves to EmailedReal companytask drafted, nothing sendsReply catcher, in n8na reply moves it to Replied

Key decisions

Built for Mercury, the fintech for startups, based on its own ICP definition: startups that just raised.

I went looking for the best signal of the funding event and settled on the SEC's Form D.

  • Mandated by law within 15 days of the first sale, so it is timely and comprehensive
  • Non-optional fields carry the company's legal name, location, amount raised and key personnel, ripe for enrichments
  • It is machine-readable through a free public API for automation

20 days of filings produced an average of 41 targets a day after cleaning.

Scoring decides resource allocation, and I am proudest of the scoring system out of 10:

SignalPointsWhy
Cash on hand5A proxy for cash on hand, plotted on a log curve taken from Mercury's inbound form, on the logic that more money on hand means a more valuable customer.
Raise completed1For companies that have most of their raise completed and are presumably closer to their business banking decision. It also spreads the scores out, and it penalises a company in a good industry that announced a large round but has raised little of it.
Industry3Mapped to the SEC's own values, seeded by assumed lifetime value for the demo and drawn from real customer data in production. The assumption is that Mercury's offering suits some segments better than others.
Filing history1Penalises companies that have raised many times before, on the assumption that their banking question was settled long ago.

Other judgement calls

  • A signer who filed for several companies collapses into one email about their largest raise, and the rep sees how many they signed for, so nobody gets spammed
  • Clay's stock waterfall got domains wrong, so Claygent runs with ranked corroboration candidates and returns its evidence, a confidence score, and the candidates it rejected
  • Every enriched row is deduped against existing customers, inbound, and every address the campaign has written to, seeded for the demo
  • n8n creates the organisation, person and deal in Pipedrive, then writes all three IDs back to Supabase, which stays the source of truth.

2,953 companies ingested, 830 scored. Every decision is documented, so a client can run this without me.