← Free GTM Hacks

The Public Data Layer

Score and sort a list of target accounts into act, watch, or drop, using only free public sources, before a single paid enrichment credit gets spent.

Works in
Google Sheets · Clay · HubSpot · Airtable
Format
markdown + CSV template
Time
45 min
For
RevOps, SDRs and AEs doing their own research, founders running outbound before hiring for it, GTM engineers building a scoring pipeline
Job
account research and prioritisation

This is the layer you run before you pay for anything. Most account-research tools sell the enrichment step and skip the two steps that make enrichment worth buying: a disciplined order for where you look, and a rule for what happens when the answer is genuinely unknown. Both are free. Neither takes more than an evening for a first batch.

The output isn't a lead list. It's a sheet with three live states — act, watch, drop — and a paper trail behind every point on the score. If you can't point to the URL and the date behind a number, the number doesn't go in the sheet.

Free sources answer most of this before a paid one gets a turn

Work this list top to bottom. Each row is free — no key, no card, no trial clock.

Source What it proves How to pull it Signal weight
Company careers page + ATS JSON A dated, provable open role Greenhouse: boards-api.greenhouse.io/v1/boards/{token}/jobs?content=truefirst_published. Lever: api.lever.co/v0/postings/{slug}?mode=jsoncreatedAt. Ashby: api.ashbyhq.com/posting-api/job-board/{boardName}publishedAt. Paste the URL in a browser tab — it's plain JSON, no auth. Primary
SEC EDGAR full-text search A recent funding round (Form D) efts.sec.gov full-text search, or the EDGAR company search, by company name Corroborator
Wayback Machine (web.archive.org) A date on a page that shows no timestamp itself Paste the exact job or pricing-page URL, compare snapshot dates. If the same posting shows up across 45+ days of snapshots, that's dated, citable proof it's been open that long. Dating tool for any row above
LinkedIn People tab, checked by hand Someone left a relevant seat, or a new leader started A human-run, curated check on a short account list — not a scraper, not an automated alert Corroborator / timing
G2 / Capterra reviews (dated) A tool was bought but never fully rolled out Search company + tool name, read the dated review text for "inherited," "messy," "never fully implemented" Corroborator
Company website, pricing page, demo form A funnel that can't route its own inbound Visit it yourself Weakest — season with this, never lead on it
Google Alerts / RSS on the company name Leadership hires, press, funding announcements Free alert, arrives on its own Corroborator / timing

Climb past this list only when a specific record clears the score below and still has no name attached to it — that's the one job worth paying for. Apollo or Hunter for a verified email, Clearbit or ZoomInfo for firmographic depth, in that order, and only after the free pass. Cache whatever you buy by domain so the same account never gets paid for twice.

Every account gets the same columns, win or lose

Field What goes in it Where it comes from
domain The dedupe key — one row per domain, always The company's own site
company_name Display name Site or filing
signal_type open_req / funding / personnel_departure / leadership_change / tool_review / website Matches the source table above
source_class ats_api / sec_edgar / wayback / linkedin_manual / review_site / press / own_site Which row of the source table fired
signal_date The real date behind the signal — never today's date ATS first_published/createdAt/publishedAt, filing date, or Wayback snapshot date
source_url The exact link Copy it, don't summarize it
evidence_quote The exact sentence you're relying on, pasted verbatim The source page itself
company_size_band, department, seniority, business_model, geography_tier The five firmographic facts the rubric below scores Site, LinkedIn, filing

One hundred points, six factors, and a column for what you don't know

Score every account the same way, in the same order. Each factor states what earns points and — separately — what happens when you genuinely cannot find the answer. "Genuinely cannot find" is not the same as "found and it's low." A known junior title scores its stated points, not a flag.

Factor Points If you have the evidence If it's genuinely unknown
Company size 40 1,000+ = 40 · 200–999 = 30 · 50–199 = 20 · 10–49 = 10 0 + flag
Department match 15 Target department = 15 · adjacent = 7 0 + flag
Seniority 15 VP+ = 15 · Director = 10 · Manager = 5 · known IC = 0 0 + flag only if no name or title can be found at all
Business model 10 B2B = 10 · B2C = 0 0 + flag only if it's genuinely indeterminate
Geography 10 Tier-1 market = 10 · Tier-2 = 5 · known Tier-3 = 0 0 + flag only if the company can't be located at all
Signal type 10 Primary dated signal (open req, funding, confirmed departure) = 10 · secondary/corroborating mention only = 6 · pure firmographic prospecting, no specific trigger = 2 0 + flag if nothing at all was found

Thresholds:

  • ≥ 70 → Active. Enough here to spend an hour writing to this account.
  • 45–69 → Watch. Re-check in 2–4 weeks — the top-weighted factors (size, req age) are the ones most likely to still move.
  • < 45 → Drop. Doesn't clear the bar even generously.
  • Any record with 3 or more "0 + flag" cells → Abstain, regardless of what the point total says. See below.

An unknown scores zero, never the average

It's tempting to split the difference on a field you're not sure about — write 20 instead of 40, or 7 instead of 15, so the sheet feels less empty. Don't. An unknown that scores an average is a guess wearing a number, and every stage downstream treats it as if it were evidence.

Score it zero. Mark which factor was unscoreable in the flag column. Zero is honest about what you don't know; an average hides it. BoldGTM runs this same rule on its own scoring work and calls it the Abstention Rule — a record doesn't earn partial credit for a fact nobody could verify.

The record needs two kinds of source before it moves, and three flags ends it

Run this once a week, before anything moves from Watch or Active into outreach prep.

Check 1 — corroboration. Count distinct source_class values on the record, not distinct mentions.

  • One source class = LOW confidence. Don't act on it yet — one loud source is one source repeated.
  • Two distinct classes = MED confidence. Enough to draft.
  • Three or more distinct classes = HIGH confidence. Enough to lead a message with it.

Tie-break when two sources back one row. The row's source_class is the strongest one by the source table's Signal weight (Primary beats Corroborator beats Dating tool beats Weakest). The others don't disappear: paste each extra source's URL and quote into evidence_quote, one per line — they are what the corroboration count is made of.

This is the same logic BoldGTM's site calls the Convergence Gate: three citations of the same kind aren't three citations, they're an echo.

Check 2 — the flag count. Add up the "0 + flag" cells from the rubric. Three flags on one record, no matter what the other factors add up to, means the record leaves the funnel. Move it to an Archive/Unscoreable tab — not the trash. New evidence can bring it back later. A 90-point record with three unknowns is three unknowns wearing a 90; don't let the other factors talk you out of the exit.

Sheet: tab accounts, one row per domain — paste this into row one

Two tabs. accounts holds every scored record; archive is where a record goes at three flags — same columns, never the trash.

domain,company_name,signal_type,source_class,signal_date,source_url,evidence_quote,company_size_pts,department_pts,seniority_pts,business_model_pts,geography_pts,signal_type_pts,total_score,unknown_flags,confidence,tier,status,next_action,reviewed_by,review_date

One filled row, composite example — not a real company:

acmedata.io,Acme Data (composite),open_req,ats_api,2026-06-02,https://boards.greenhouse.io/acmedata/jobs/1234,"RevOps Manager — Remote, posted 2026-06-02",30,15,10,10,10,10,85,0,HIGH,Active,ready-for-review,draft outreach,,

Legend:

  • tier ∈ {Active, Watch, Drop, Abstain}
  • status ∈ {sourcing, scored, ready-for-review, ready-for-outreach, archived}
  • confidence ∈ {LOW, MED, HIGH} — set by the corroboration check, not the point total

Step 1 of 3

Where does the symptom keep returning?

Free 30 minutes. Bring the recurring symptom; we will test whether problem mapping is the right next move.