A real scraping project, start to finish

Map the entire US golf market in a night.

Every golf course in America, pulled from public data. Then, for each one, the kind of course it is and the exact software it runs to book tee times. No list bought from anyone.

Golf course
16,000courses in the US market
16booking platforms run the whole industry
1 in 4courses run foreUP

Step one · The list

A name and a website for every course in America.

16,000 courses, pulled from public data. Here are 1,000 of them fully built out: live site, course type, the booking system each one runs. Real names, real software. Scroll it, filter it, download it.

golf-market.csv previewing 1,000 of 16,000
CourseSTTypeBooking softwareReservations

Step two · The signal

The software each one runs gives away the business.

A flat list is just names. The signal is what each course's own website gives away. Here it's the booking software, and it turns out to map almost perfectly to the kind of course, and the kind of course is the revenue model. One scraped field, and the list becomes a ranked pipeline.

The platforms running the US golf market: foreUP ClubEssential Jonas Chronogolf MembersFirst EZLinks +10 more
Private clubs run member software
ClubEssential43%
Jonas29%
MembersFirst19%

91% run one of three member-management platforms. None of them take a public tee time.

Public courses run tee-sheet software
foreUP42%
Chronogolf15%
Club Caddie10%

foreUP also leads municipal (40%), semi-private (33%) and resort (22%). The public game is a foreUP game.

A course on ClubEssential is almost certainly private. A course on foreUP is almost certainly public-access. You can read the business model off one scraped field, across all 16,000 courses. That is the difference between a list and a market map.

Step three · The output

A pitch built for the business, not the name.

This is the payoff. A daily-fee course wants its empty Tuesdays filled. A private club doesn't take public tee times at all, it wants its event calendar full. The scrape filled in every colored field, so the pitch fits the business on its own.

To{{first_name}} <>
SegmentPublic / Daily-Fee on foreUP
Subjectfilling empty tee sheets at {{course_name}}

Hi {{first_name}},

{{course_name}} is a daily-fee course, and for courses like yours, Tuesday afternoon tee sheets are the hardest dollars to recover.

We help courses on foreUP fill last-minute cancellations automatically, without discounting your walk-up rate.

Want a 90-second video of it working on foreUP? No call needed.

To{{first_name}} <>
SegmentPrivate on MembersFirst
Subjectthe event calendar at {{course_name}}

Hi {{first_name}},

You're on MembersFirst, so member experience is already the priority. Public tee times aren't the lever here.

The private clubs we work with use us to keep the wedding and outing calendar full through the shoulder seasons. Members never see it.

Open to a quick look at how it runs alongside MembersFirst?

Two emails, one scrape. Every colored chip is a field the data filled in. The course type came from the site. The software came from the site. The pitch follows from both.

Run this on your market

This was golf. The playbook teaches the whole system.

Build the list. Find the signal. Feed the outbound. The same seven plays that mapped 16,000 golf courses work on any market you sell software into. If you're in B2B SaaS and your whole industry fits in a spreadsheet, the playbook shows you how to build it. It's free.

New plays land in your inbox as they ship. No spam.

Who's behind this

I'm Chris. I do marketing and GTM engineering, with over 10 years in B2B SaaS. I scrape with Claude every week: market maps, enriched lists, verified contacts for real campaigns. The golf project above is the kind of thing I build. So I wrote down how I actually do it.

@chris_as_is