Higher education is a committee sale. You rarely close one person, so the list you need is a set of roles at the same institutions. This guide builds that list with the LeadOcean API and spends almost nothing to size it.
TL;DR
- Sizing is free. A count on 2026-10-21 found 8,279 mailable US IT leaders (C-Team, VP, Director) in the Higher Education industry, across 2,329 institutions.
- The whole recipe takes about 25 minutes and spends about 100 records on a first pull. The Free plan has 1,000 records for life.
- Pull by role, not by institution: one search per committee seat, then enrich only the people you will contact.
Prerequisites
- A LeadOcean account on the free plan:
https://app.leadocean.io/register. No card. - An API key, exported as
$LEADOCEAN_API_KEY. curlandjq. Any HTTP client works.- A rough idea of who signs for your product (see Step 1).
Step 1: Map the buying committee
Pick the seats before you pick filters. A university purchase usually touches four groups.
| Seat | Why they matter | Title keywords to search |
|---|---|---|
| Budget owner | Signs or releases funds | CFO, Vice President for Finance, Controller |
| Academic sponsor | Decides if it fits teaching and research | Provost, Dean, Associate Dean |
| Technical buyer | Owns integration and security review | CIO, CISO, Director of IT |
| Student-facing owner | Feels the outcome | Director of Admissions, Registrar, Student Affairs |
Small colleges collapse these seats into two or three people. Large research universities spread them over several offices, so expect longer cycles there.
Three habits keep a higher education list useful.
- Count institutions, not just people.
distinctCompaniestells you how many accounts you cover. 8,279 people across 2,329 institutions is about 3.6 leaders per account, which is enough for multi-threading. - Split public and private by hand. Public institutions buy through procurement rules, bids and consortium contracts. Private ones often decide faster. LeadOcean has no public or private flag, and
companyTypedoes not separate them: 7,232 of the 8,279 IT leaders sit at companies typed Educational Institution or Educational (count on 2026-10-21). UsecompanyNamephrases such as "community college" or "state university" instead. - Respect the academic calendar. August to October and January to February are the busy weeks for IT and admissions. Finance owners are easiest to reach before budget season, and hardest during commencement.
Step 2: Size the list for free
Counting spends no records. Send count=true as a query parameter with limit=1. The industry value is an exact string, so check it first.
curl -s -G "https://api.leadocean.io/v1/enums/industry" \
--data-urlencode "q=education" \
-H "x-api-key: $LEADOCEAN_API_KEY" | jq -r '.data.values[]'The industry list has 534 values. "Higher Education" is one of them, and "Education Management" and "Education Administration Programs" sit beside it. Run the count for the technical buyer seat:
curl -s -X POST "https://api.leadocean.io/v1/people/search?count=true" \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"industry": ["Higher Education"],
"country": ["US"],
"jobLevel": ["C-Team", "VP", "Director"],
"jobFunction": ["Information Technology"],
"limit": 1
}'Read meta.total and meta.distinctCompanies. The first is the people, the second is how many institutions they span. For market size at the institution level, use the company count, which is also free:
curl -s "https://api.leadocean.io/v1/companies/count?industry=Higher%20Education&hqCountry=US" \
-H "x-api-key: $LEADOCEAN_API_KEY"On 2026-10-21 that returned 84,377 US companies filed under Higher Education. 51,260 of them have 1-10 employees and only 3,822 have more than 1,000, so add employeeRange before you treat it as a target list. The facets.hq_state breakdown shows where they sit: California led with 12,641, then New York with 5,672.
Step 3: Narrow to institutions you can win
A raw industry filter includes tutoring shops, small training schools and departments filed as their own company. Cut by size and type.
curl -s -X POST "https://api.leadocean.io/v1/people/search?count=true" \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"industry": ["Higher Education"],
"country": ["US"],
"employeeRange": ["1001-5000", "5001-10000", "10001+"],
"jobLevel": ["C-Team", "VP", "Director"],
"limit": 1
}'On 2026-10-21 this count returned 514,831 mailable people across 2,096 institutions. That is far too broad: in a university, jobLevel Director covers lab, program and center directors as well as administrators. Add a job function or a title array for each seat.
Rerun with each seat's job function (Finance & Accounting, Education, Information Technology) and note each total. On the same date, Finance & Accounting at C-Team, VP and Director level in US higher education counted 13,930 mailable people at 2,897 institutions, with no size filter. If a total is under a few hundred, widen the size bands. If it is over 10,000, narrow by hqState or title, because one search pages to 10,000 rows.
Splitting by institution type
Community colleges buy differently from research universities. Budgets are smaller, and IT teams are often a handful of people who run everything. A companyName phrase separates them.
curl -s -X POST "https://api.leadocean.io/v1/people/search?count=true" \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"industry": ["Higher Education"],
"country": ["US"],
"jobLevel": ["C-Team", "VP", "Director"],
"jobFunction": ["Information Technology"],
"companyName": ["community college"],
"limit": 1
}'On 2026-10-21 that counted 752 mailable IT leaders at 252 community colleges. Pull them as their own segment, with copy about small teams and limited staff time. Use excludeCompanyName with the same phrase to keep them out of your university segment.
Step 4: Pull one seat at a time
Now spend records. Start small and look at the rows before you pull the rest.
curl -s -X POST "https://api.leadocean.io/v1/people/search" \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"industry": ["Higher Education"],
"country": ["US"],
"title": ["Chief Information Officer", "Chief Information Security Officer"],
"employeeRange": ["1001-5000", "5001-10000", "10001+"],
"limit": 25
}' | jq '.data[].profile_data | {profile_full_name, profile_headline}'Each person returned is one record. Search rows carry no contact points, only contact_data.has_email and email_status. Page with meta.nextCursor passed back as cursor, up to 100 rows a page. Do the same for the provost, finance and student-facing seats with their own title arrays.
For a full list, use a bulk export instead of paging. Exports take up to 50,000 rows a request and 500,000 a day, and they are not on the Free plan. The app at app.leadocean.io has an Exports page with a filter builder and a price preview if you prefer clicking.
Step 5: Enrich only the people you will contact
Search returns the profile. Contact data comes from enrichment, one person at a time, by person_id.
curl -s -X POST "https://api.leadocean.io/v1/people/enrich" \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"person_id": "PERSON_ID_FROM_SEARCH", "reveal_email": true}'Enrichment also returns career history: past roles, education and certifications. In higher education that is useful. A new CIO who came from a vendor, or a dean who was a faculty member for 15 years, wants a different pitch. Past employers have no company_id yet, so match them by name.
An enrichment that finds nobody costs nothing. Check email_status before you send, because bounced emails are not credited back.
Step 6: Write one message per seat
Match the first line to the seat's problem, and keep each email under 90 words.
- Technical buyer: lead with integration and security review time. "Does this pass your vendor review without a custom contract?" is the question they are already asking.
- Academic sponsor: lead with teaching or research outcome. Name the course, program or lab type, not a feature.
- Budget owner: lead with cost against a line they already fund. Fiscal years often start July 1 for US public institutions, so a spring send lands before budgets lock. Confirm your target institutions' calendars.
- Student-facing owner: lead with enrollment, retention or response time, and one number you can defend.
Send to two or three seats at one institution in the same week, with different first lines. Do not CC them on one email.
Step 7: Rank institutions before you send
A list of 8,279 IT leaders is too many to write by hand. Rank the institutions and send to the top group first.
- Count people per institution in your test pull. An institution where you hold the CIO, a director of IT and a finance lead is a committee you can reach from three sides.
- Prefer a work email marked
verified. It bounces less than a catch-all address. - Use
GET /v1/companies/{domain}/peoplefor your top 20 institutions. It lists the other people at one domain, so you can fill the empty seats. - Drop institutions where the only match is a Staff or Other level title.
Send in batches of 50 to 100 and read the replies. If replies cluster on one seat, move effort toward it. Keep a note of which segment each reply came from, so the next pull drops the weaker one.
What you get
Free count run on 2026-10-21 with the LeadOcean MCP tool leadocean_count_leads. Filters: industry Higher Education, country US, jobLevel C-Team, VP or Director, jobFunction Information Technology. The count is mailable people (verified, catch_all_valid or catch_all email), not everyone matching.
{
"total": 8279,
"totalIsExact": true,
"totalAll": 14432,
"distinctCompanies": 2329
}totalAll is the same filters with no email condition. The gap of 6,153 people is the part you cannot mail yet.
A search row has this shape (response shape from the API reference, placeholder values):
{
"success": true,
"data": [
{
"profile_data": {
"profile_full_name": "Jane Doe",
"profile_headline": "Chief Information Officer at Acme University",
"profile_url": "https://www.linkedin.com/in/jane-doe"
},
"contact_data": {
"has_email": true,
"has_phone": false,
"email_status": "verified",
"email_type": "work"
},
"meta": { "source_ids": { "person_id": "1234567890" } }
}
],
"meta": { "count": 1, "credits": 1, "nextCursor": "CURSOR" }
}Troubleshooting
| Error | Cause | Fix |
|---|---|---|
| 401 | Missing or wrong x-api-key header | Check $LEADOCEAN_API_KEY is exported and sent as x-api-key. |
| 429 | More than the plan's rate limit (5 requests a second on Free, 200 on Agency) | Honor Retry-After, or slow the loop. |
| 402 | Records are spent (1,000 for life on Free) | Add a paid plan, or narrow the pull. See /pricing. |
| Empty results | Industry or job level is not an exact enum string | Check values with /v1/enums/industry?q=education. Use "Higher Education", "C-Team", "VP". |
meta.depthCapped is true | One search stops at 10,000 rows | Split the pull by state, size band or title. |
| Export refused | Over 50,000 rows a request or 500,000 a day, or on the Free plan | Split the export, or move to a plan with bulk CSV. |
FAQ
How many people can I reach at one university?
Size decides it. A small college may show two or three leaders. A large research university can show dozens across IT, finance, academics and student services. Count with distinctCompanies to see the spread.
Which industry value should I use?
Start with "Higher Education". Run the enum lookup for "Education" and decide whether "Education Management", "Education Administration Programs" or "Technical and Vocational Training" belong in your market. Each is a separate string.
Is the free count the same as a mailable list?
No. The default count includes only verified, catch_all_valid and catch_all emails. A count with hasPhone or hasEmail filters is a different number again. Label every count by what you filtered.
How fresh is the data?
The dataset refreshes monthly, and each record carries its own fetched_at date. Faculty and staff turnover is steady in higher education, so check fetched_at before a big send.
Where do I start without writing code?
Use the Exports page in the app at app.leadocean.io. It has a filter builder, a column picker and a record price before you download.
Related
- Hub: B2B lead generation by industry
- Lead generation for web3
- Lead generation for travel
- Lead generation for telecom
- Pricing
Build your higher education list with a free API key
Free to start. No credit card. 1,000 records to spend whenever you like.
Get your free API key →