GTM plays/Play 31
Play 31 · Outbound · ABM

Qualifying from Public Filings

Qualifying from Public Filings is a six-step outbound and ABM play for your CRM, from “Name the fact that actually qualifies” to “Audit, then load to the CRM”. It uses HubSpot, SEC EDGAR, Claude, Exa and Firecrawl.

Motion
Outbound, ABM
Channel
CRM
Steps
6
Tools
5

The workflow

Play 31

Qualifying from Public Filings

1Name the fact that qualifies
The qualifying question
FootprintOwned vs leasedWho maintains it

The fact that decides fit, which firmographic databases do not carry. Every field allows unknown.

2Route public and private
Target accounts, pulled into a Clay tableName, domain, country, CRM id
Public filerThe filing is the answer
10-K Item 220-FFiscal year

Pin the run to one named filing.

Source
SEC EDGAR
Read
Claude
Private companyNo filing
Published totalsStore countFormat sizes

Published totals first, then a build-up per format, flagged as an estimate.

Search
ExaFirecrawl
Read
Claude
3Record only what is disclosed
The source disclosesThe record gets
Square footage split by tenure→Owned and leased records
Split counts, one total→One record, counts as fields
Store count, no size→Build-up per format, estimate
Nothing usable→Unknown, with the reason
Never apportion a total by a site-count ratio
4Guard in code, not in the prompt
Gate1
No blanks

Every field returns a value, or unknown with a reason.

× Blank fieldRe-run
Gate2
No hidden estimates

Arithmetic in the method forces the estimate flag on.

× Unflagged mathFlagged as estimate
Gate3
Source attached

Each field carries its filing, fiscal year and URL.

× No sourceHeld back
5Audit, then load
Check against the filing

Open a sample of rows and match each value to the page it cites. Report coverage per field.

Write to the CRM

Value, source and estimate flag land together. Unknown becomes the rep's first question.

Write
HubSpot
Accounts qualified on cited facts
The stackHubSpotSEC EDGARClaudeExaFirecrawl
Oriel · GTM plays libraryOriel
Open full size
The diagram as text
  1. 1

    Name the fact that qualifies

    The qualifying question: Footprint, Owned vs leased and Who maintains it. The fact that decides fit, which firmographic databases do not carry. Every field allows unknown..

  2. 2

    Route public and private

    Target accounts, pulled into a Clay table (name, domain, country, crm id): Tool: HubSpot.

    Public filer (the filing is the answer): 10-K Item 2, 20-F and Fiscal year. Pin the run to one named filing. Source: SEC EDGAR. Read: Claude. Tool: SEC EDGAR.

    Private company (no filing): Published totals, Store count and Format sizes. Published totals first, then a build-up per format, flagged as an estimate. Search: Exa and Firecrawl. Read: Claude.

  3. 3

    Record only what is disclosed

    The source discloses → The record gets

    • Square footage split by tenure → Owned and leased records
    • Split counts, one total → One record, counts as fields
    • Store count, no size → Build-up per format, estimate
    • Nothing usable → Unknown, with the reason

    Never apportion a total by a site-count ratio

  4. 4

    Guard in code, not in the prompt

    Gate 1: No blanks. Every field returns a value, or unknown with a reason. Rejected: Blank field, Re-run.

    Gate 2: No hidden estimates. Arithmetic in the method forces the estimate flag on. Rejected: Unflagged math, Flagged as estimate.

    Gate 3: Source attached. Each field carries its filing, fiscal year and URL. Rejected: No source, Held back.

  5. 5

    Audit, then load

    Check against the filing: Open a sample of rows and match each value to the page it cites. Report coverage per field..

    Write to the CRM: Value, source and estimate flag land together. Unknown becomes the rep's first question. Write: HubSpot. Tool: HubSpot.

    Outcome: Accounts qualified on cited facts. Tools: HubSpot.

The stack: HubSpot, SEC EDGAR, Claude, Exa and Firecrawl.

Open the diagram full size (1180 px wide)

The play in six steps

  1. 01

    Step 1: Name the fact that actually qualifies

    Data vendors sell industry and headcount. The fact that decides fit, such as footprint, tenure or who carries the maintenance, usually lives only in filings.

    • Write down the question the buyer would ask on a first call, then the field that would answer it.
    • Test the obvious proxy on real accounts before trusting it. Owning buildings is not the same as maintaining them: a net-lease landlord owns everything and fixes nothing.
    • Give every field a closed set of answers, and make unknown one of them.
    • Unknown is an acceptable answer. Blank is not.
  2. 02

    Step 2: Route public filers and private companies

    Public and private companies need different research methods, so every account is routed before anything is read.

    • Pull target accounts from HubSpot into a Clay table: name, domain, country and CRM id.
    • Route each one: public filer, private operator, private landlord, or not relevant to the question.
    • Public filers go to the filing. Private companies go to published totals and a build-up.
    • Tag out-of-scope segments instead of deleting them, so reopening one later costs nothing.
  3. 03

    Step 3: Read the filing for public companies

    For a listed company the annual filing already holds the answer, so the research starts at SEC EDGAR, not a search engine.

    • Name SEC EDGAR as the first source and the latest 10-K as the document. Item 2, Properties, holds site counts, owned versus leased and total square footage.
    • For foreign filers, use the 20-F or the annual report and say which one was used.
    • Claude reads the section and returns structured fields, each with the filing, fiscal year and sec.gov URL behind it.
    • Pin each run to one named filing. Without it, the same company returns different numbers on different runs.
    • Split records only where the filing splits them.
  4. 04

    Step 4: Research private companies without guessing

    Private companies file nothing, so the method changes and every estimate has to say it is one.

    • Use Exa and Firecrawl to find published totals: press releases, investor pages, landlord tenant lists.
    • With no published total, build one up: store count times typical size, per format, with the working shown.
    • Never apportion a total by a site-count ratio. Owned and leased sites are rarely the same size.
    • A labeled estimate beats a blank. An unlabeled estimate is worse than both.
  5. 05

    Step 5: Enforce the rules in code

    A rule in the prompt loses to the model often enough to matter. A check that runs after the model does not.

    • Reject any row with a blank field. Unknown must come with a reason.
    • If the method text contains arithmetic, force the estimate flag on, whatever the model returned.
    • Mark any ratio-based figure as apportioned and keep it out of the CRM.
    • Hold back any field with no source attached.
    • Cache every raw response so a parse failure can be re-read without paying for the research twice.
  6. 06

    Step 6: Audit, then load to the CRM

    Coverage and accuracy are measured before a single field reaches a rep, because a wrong cited number is worse than no number.

    • Open a sample of rows and check each value against the filing it cites.
    • Report coverage per field, on the in-scope accounts and on the full list separately.
    • Write the fields to HubSpot with their source and estimate flag beside them.
    • Every unknown becomes a qualifying question the rep asks on the first call.

Tools used

The five tools this play names. Each links to the other plays that use it.

Related plays

Play 30

Public Records Signals

1Pull public records on a schedule
Government APIsFree, read-only
Disaster declarationsWeather eventsSEC filings

Daily for declarations, weekly for filing phrase searches.

Pull
Plain GET on a schedule
Portals with no APIReal browser
Court docketsPermits

Throttled, sessions recycled. Portals behind a CAPTCHA are out.

Drive
BrowserbaseFirecrawl
One row per recordDate, source URL, verbatim excerpt
2Match each record to an account
Entity resolutionThe hard part

A record names a legal entity or a place, not your CRM account.

Name
Strip Inc, Corp, LLC, The
Place
County or address to known sites
Against
HubSpotSalesforce
MatchConfidence
Name and location agree→High: routes on its own
Name only→Medium: review queue
Fuzzy or alias→Low: review queue
3Qualify in two gates
Gate1
Not suppressed

Customers, open deals and competitors come out first.

× Customer or open deal
Gate2
Actually relevant

Claude reads the excerpt and gives a one-line reason.

× Not relevant
4Tier what the record allows
Act aloneThe event is the reason
Owner alertThis week

Record link, excerpt and matched sites, straight to the owner.

Alert
Slack
Log
HubSpot
One more factPerson or site first
Find the person

The right contact, then a checked email.

Find
AI Ark
Email
ProspeoFindymail
Verify
BounceBan
Rank onlyContext, no message
Score only

Adds weight to the account score. Never opens a message.

On
HubSpot
5Reach out with the record as evidence
State the public fact plainly

Something the buyer can check for themselves, with the source link at hand.

Email
Smartlead
Call
Nooks
A dated reason to call this week
The stackSEC EDGARBrowserbaseFirecrawlClayHubSpotSalesforceClaudeSlackAI ArkProspeoFindymailBounceBanSmartleadNooks
Oriel · GTM plays libraryOriel
Play 30Outbound · ABM

Public Records Signals

5 steps · Email, Call, CRM

+8 more
Play 23

HubSpot Account Tiering & Scoring

1Learn from the deals you already closed
Closed won and closed lost, last 12 to 24 months
Closed wonWhat good looks like
ACVSales cycleExpansion

Start with the highest revenue customers. Look for patterns in industry, size and geography.

Closed lostWhat to rule out
Poor-fit industrySize mismatch

The disqualification reasons that keep coming back.

2Define segments and scoring logic
SegmentsOne per account
Company sizeIndustryBusiness model
Scoring inputWhat it checks
Firmographics→Size, industry, location
Technographics→Tech stack
Signals→Recent activity at the account
3Build the Clay model and tier
Core fields
CompanyDomainLinkedIn URL
Enrichment fields
EmployeesRevenueIndustryTech stack
Logic fields
SegmentTierLast enriched
Clay formulas assign the tier
Tier 1Strong fit
Tier 2Good fit
Tier 3Low fit
4Sync tiers into HubSpot
New HubSpot properties
Account tierSegmentKey firmographics

Company and contact data mapped field by field, so the sync never creates duplicates.

Data
Clay
Emails
Findymail
Verify
BounceBan
Write
HubSpot
5Keep tiers live with workflows
Tier workflowsProperty trigger

Company workflows with re-enrollment on, so the tier changes when the data does.

FallbackMissing tier

Accounts without a tier are flagged, not left to slip through.

FreshnessQuarterly

Re-enrich any account last enriched over 90 days ago, and re-check its contacts for job changes.

Job
LinkedIn
Monthly data review, quarterly strategy update
Every account tiered in HubSpot
The stackHubSpotClayFindymailBounceBanLinkedIn
Oriel · GTM plays libraryOriel
Play 23ABM · Outbound

HubSpot Account Tiering & Scoring

7 steps · CRM

Play 21

Pain-Qualified Segments from Calls

1Gather calls and customers
Sales callsBuyer side
DiscoveryDemoClosing

What was true for the buyer when they chose to talk.

From
Fathom
Closed won and lostBacktest set
Close dateReasonAccount

The customers every segment is checked against.

From
HubSpot
2Mine the buying situations
One schema per call
SituationWhy nowAlready triedVerbatim painOutside-in fingerprint

Every situation is counted across calls. The buyers' exact phrases go into a language bank.

Read
Claude
3Situation plus tension
Segment anatomyTwo facts pulling apart
Doing
The thing they are doing
Hurts
The thing that makes it hurt
Now
A deadline, target or season
Number
The figure that costs the quarter
4Membership test, field by field
Condition isUse it as
Public: the field states it→Filter and copy
Proxy: the field suggests it→Score and ask, never assert
Not public→A question for the call
5Measure before building
Gate1
Count it

Free counts, with the query and the date recorded.

× Too small or too broad
Gate2
Eyeball five rows

Open the evidence. Two of five wrong means the test is wrong.

× Fix the test
Gate3
Backtest for lift

Customers in the 90 days before they bought, against a TAM sample.

× Low lift
6Build the list and the opener
Refreshable list

Discover on one filter, score on the rest. Unknown never passes. Emails re-verified on every refresh.

Find
Explorium
Evidence
Exa
Build
Clay
Verify
BounceBan
Opener in their words

Names the situation, says where you saw it, asks if the read is right.

Email
Smartlead
LinkedIn
HeyReach
Segments with measured lift, in the buyers' own words
The stackFathomHubSpotClaudeExploriumExaClayBounceBanSmartleadHeyReach
Oriel · GTM plays libraryOriel
Play 21Outbound

Pain-Qualified Segments from Calls

6 steps · Email, LinkedIn

+3 more

All GTM plays

Work with us

Have us run this play

Tell us what you are trying to hit this quarter, and we will suggest where to start.

Oriel

Oriel runs the go-to-market work behind growing B2B tech teams.

Talk with an operator

Find your next pipeline opportunity.

Explore
Resources
Services
Get in touch
Founder of Oriel
Ashwanth SFounder
Book a call
Explore AI summary