Edtech sells to three different buyers: schools and districts, universities, and companies that train their own staff. Each has its own committee, calendar and budget, so you build one list per buyer.
This guide picks the committee, finds it with LeadOcean filters, sizes the list with a free count and drafts the first message for each role.
TL;DR
- Split the market into K-12 and districts, higher education, and corporate learning. Never write one message for all three.
- Size first with a free count. On 2026-10-21, the two e-learning industries held 43,905 mailable VPs, directors and C-level people across 12,608 companies.
- The recipe takes about 45 minutes and spends about 30 records, so it fits inside the Free plan's 1,000.
Prerequisites
- A LeadOcean account on the Free plan. Sign up at app.leadocean.io, no card.
- An API key exported as
$LEADOCEAN_API_KEY. curlandjq, or any HTTP client.- Optional: the hosted MCP server at https://api.leadocean.io/mcp if you would rather run the counts from Claude.
Step 1: Pick the buying committee
Edtech deals are rarely signed by the person who wants the product. Name the roles before you touch a filter.
| Buyer | Economic buyer | Champion | Gatekeeper |
|---|---|---|---|
| School or district | Superintendent, CFO, chief academic officer | Director of curriculum or instructional technology | IT director, procurement, data privacy lead |
| University or college | Provost, CIO, VP of student success | Dean, director of online learning | IT security, procurement |
| Corporate learning | CHRO, VP People | Head of learning and development | IT, finance |
Public buyers run on fiscal years and board meetings. Corporate buyers run on quarters. Check each district's or university's fiscal year on its own site and reach out well before the budget is set.
LeadOcean has no "edtech" industry value, and it files schools under industries like Higher Education and Primary and Secondary Education. The vendors that sell to them sit mostly under E-Learning Providers and E-learning. Look up the exact strings before you use them.
curl -s "https://api.leadocean.io/v1/enums/industry?limit=500" \
-H "x-api-key: $LEADOCEAN_API_KEY" | jq -r '.data.values[]' | grep -iE "learn|educat|school|training"Enum values are exact strings. The same lookup is free through the MCP tool leadocean_list_enum_values.
Step 2: Turn the committee into filters
Write the filters as flat JSON. Every filter is an array, even with one value.
This first set targets the buyers of other edtech vendors: the e-learning companies themselves, useful if you sell a tool to edtech teams.
{
"industry": ["E-Learning Providers", "E-learning"],
"jobLevel": ["C-Team", "VP", "Director"],
"employeeRange": ["51-200", "201-500", "501-1000"],
"country": ["US"]
}If you sell to schools, swap the industry. Use Higher Education for universities and Primary and Secondary Education for districts, and add the function filter.
{
"industry": ["Higher Education"],
"jobFunction": ["Education", "Information Technology"],
"jobLevel": ["C-Team", "VP", "Director"],
"country": ["US"]
}Keep the three segments in separate lists. The pitch, the title mix and the buying calendar all differ.
Step 3: Size the list with a free count
Count before you pull. A count costs no records and can run as often as you like.
curl -s "https://api.leadocean.io/v1/people/search?count=true" \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-H "content-type: application/json" \
-d '{
"industry": ["E-Learning Providers", "E-learning"],
"jobLevel": ["C-Team", "VP", "Director"],
"limit": 1
}' | jq '.meta'count=true goes in the query string. The JSON body rejects unknown fields. The response has no rows, only meta.total (capped at 100,000) and meta.countOnly: true, plus meta.distinctCompanies.
For the company side, GET /v1/companies/count takes the company-search filters and returns an exact total with breakdowns by industry, headcount band, HQ country and HQ state. Use it to see where the accounts sit before you pick a region.
Step 4: Pull a 25-row test batch
Pull a small batch first. Read the titles. If half are the wrong role, tighten the filters before you spend more.
curl -s "https://api.leadocean.io/v1/people/search" \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-H "content-type: application/json" \
-d '{
"industry": ["E-Learning Providers", "E-learning"],
"jobLevel": ["C-Team", "VP", "Director"],
"employeeRange": ["51-200", "201-500"],
"country": ["US"],
"limit": 25
}' > batch.json
jq '.data | length' batch.jsonA page of 25 is 25 records. Page with cursor from meta.nextCursor when you want more. One search pages to 10,000 rows, and the last page carries meta.depthCapped: true. Narrow the filters instead of walking further.
Send to verified and catch_all_valid addresses first. LeadOcean does not credit back bounces, so read email_status before you send.
Step 5: Enrich the champions you will contact
Enrich only the people you will contact. Enrich takes exactly one of linkedin_url, email, phone or 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}'Enrich also returns career history in resume_data: past roles, education and certifications. A director of instructional technology who used to teach is a better opener than a job title. Past employers carry no company_id yet. An enrichment that finds nothing is a 404 and costs nothing.
For a phone number, call GET /v2/people/phone. A v2 contact call costs one record even when it finds nothing.
Step 6: Write messages that fit the buyer
Education buyers answer to outcomes, budgets and privacy review, not features. Open with the problem they have this term.
| Buyer | Their pressure | First line angle |
|---|---|---|
| District CFO | Budget cycles, funding expiry | Cost per student and when the line item renews |
| Curriculum director | Teacher adoption, standards | A pilot that fits one grade or course |
| University provost | Retention, enrollment | One retention metric for one program |
| L&D head | Completion, time to skill | Hours saved per employee |
| IT or privacy lead | Data handling, integrations | Plain answers on data use and SSO |
Keep the email under 80 words. Say who else in education uses the product only if you have an approved reference.
Plain example for a curriculum director:
Subject: One course pilot for spring
Hi Jane,
Acme Learning helps instructional teams pilot a tool in one course before
a district decision. Setup takes a week and needs no new rostering.
Open to a 15-minute call before the budget meeting?Names, domain and subject are placeholders. Use your own product and a claim you can back up.
Step 7: Split the list into three campaigns
Do not send one message to the whole list. Run each buyer type on its own copy.
- Schools and districts. Industry
Primary and Secondary Education. Target superintendents, CFOs, curriculum and IT directors. Send ahead of budget season. - Colleges and universities. Industry
Higher Education. Target provosts, deans, CIOs and online-learning directors. Lead with a program-level result. - Corporate learning and edtech vendors. Industry
E-Learning ProvidersandE-learning, plus the L&D function. Budgets follow the company's own planning cycle.
Run the count again for each segment. The totals will not add up to the combined list, because a person can match more than one filter set. Use the combined count for planning and the segment counts for sending.
To sell outside the US, swap country for another ISO code, such as GB or AU, and count again. Industry labels are the same worldwide, but school systems are not, so check titles on a test batch before you write copy.
Step 8: Rank accounts before you send
A list of thousands is too many to write by hand. Rank accounts and send to the top group first.
- Count people per company in the test batch. An account with three matching titles is a committee you can reach from several sides.
- Prefer a work email marked
verified. It bounces less than a catch-all address. - Use
GET /v1/companies/{domain}/peoplefor your top accounts. It lists the other people at one domain, so you can fill the missing roles in a committee. - Drop accounts 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 role, shift the next batch toward it.
What you get
Output of leadocean_count_leads on 2026-10-21 for the industries E-Learning Providers and E-learning with jobLevel C-Team, VP and Director. The count includes only people whose best email is verified, catch_all_valid or catch_all.
{
"total": 43905,
"totalIsExact": true,
"totalAll": 161183,
"distinctCompanies": 12608,
"unsupportedFilters": []
}Add employeeRange of 51-200, 201-500 and 501-1000 and country US. The same count on the same date narrows to this:
{
"total": 6130,
"totalIsExact": true,
"totalAll": 15230,
"distinctCompanies": 735
}That is a 6,130-person mailable list at 735 mid-sized US companies. The free company count for US-headquartered companies in the same industries and size bands returned 1,805 on 2026-10-21, led by California (320), New York (137) and Texas (119).
The buyer segments from Step 7 were counted the same way on 2026-10-21. Filters: US, jobFunction Education or Information Technology, jobLevel C-Team, VP or Director, default mailable counting. The vendor row has no function filter.
| Segment | Industry | Mailable people | Organizations | All people, no email condition |
|---|---|---|---|---|
| Colleges and universities | Higher Education | 81,110 | 5,203 | 139,645 |
| Schools and districts | Primary and Secondary Education | 22,227 | 5,695 | 51,249 |
| Edtech vendors, mid-size | E-Learning Providers, E-learning | 6,130 | 735 | 15,230 |
Universities average about 16 mailable leaders per organization in this count. Schools and districts average about 4. Plan for several contacts per account in higher education, and one or two per account for schools.
Two cautions on these numbers. Primary and Secondary Education covers private schools and school groups as well as public districts, so read the first 25 rows before you write district copy. Higher Education includes community colleges and for-profit schools, which buy on different terms from research universities. Neither label tells you which is which, so tag the accounts by hand after the test batch.
Record shape, from the API reference (placeholder values):
{
"success": true,
"data": [
{
"profile_data": {
"profile_full_name": "Jane Doe",
"profile_headline": "Director of Instructional Technology at Acme Learning"
},
"contact_data": {
"has_email": true,
"has_phone": false,
"email_status": "verified",
"contact_current_experiences": [
{ "company_name": "Acme Learning", "company_domain": "acme.com", "job_title": "Director of Instructional Technology" }
]
},
"meta": { "source_ids": { "person_id": "PERSON_ID" } }
}
],
"meta": { "nextCursor": "CURSOR", "depthCapped": false }
}Troubleshooting
| Error | Cause | Fix |
|---|---|---|
| 401 | Missing or wrong x-api-key header | Check $LEADOCEAN_API_KEY is exported and sent in the x-api-key header |
| 429 | More than the plan's rate limit (5 requests a second on Free, 200 on Agency) | Wait for the Retry-After seconds, then retry slower |
| 402 | The 1,000 Free records are spent | Move to a paid plan or reduce the pull; counts still work |
| Empty results | An enum value is not an exact string, such as "Education" for industry | Resolve the value with list_enum_values first |
unsupported_filters on a count | A filter like fundingType or hqCity is not supported in people counts | Drop it and count without it |
meta.depthCapped: true | One search stops at 10,000 rows | Split by country or headcount band |
FAQ
Is there an edtech industry filter?
No. LeadOcean has 534 industry values and none is called edtech. Use E-Learning Providers and E-learning for vendors, Higher Education and Primary and Secondary Education for buyers, then check the title mix on a 25-row batch.
Which segment should I start with?
Start with the one you already close. Districts and universities buy on a fiscal year, so begin outreach well before their budget decisions.
How many records does this cost?
About 30: 25 for the test batch and a handful of enrichments. Counts, enum lookups and GET /v1/companies/count are free.
Why is the mailable count so much lower than totalAll?
The default count keeps only people whose best email is verified, catch_all_valid or catch_all. totalAll is the same filters with no email condition. In higher education the gap is wide: 81,110 mailable against 139,645 in all on 2026-10-21. The rest have no address worth sending to, or none on file. Do not pad the list with them. Write to the mailable people first, and reach the rest another way if the account matters.
Can I download the whole list as a CSV?
Yes, on a paid plan. Bulk CSV export is not on Free. Solo is $97 a month and Agency is $497 a month, both with a fair-use pace instead of credits. See pricing.
Related
- Hub: all lead generation guides
- Lead generation for web3
- Lead generation for travel
- Lead generation for telecom
Count your edtech buyers free, then pull only the ones you will email
Free to start. No credit card. 1,000 records to spend whenever you like.
Get your free API key →