A course is worth paying for only if it teaches something you can't build yourself in an afternoon. This guide gives you that afternoon: a free test build of the pipeline most AI GTM engineer courses center on.
TL;DR
- Build the core pipeline yourself: size an audience, search it, enrich a few rows, score them. It takes about 2 hours.
- It spends about 30 LeadOcean records of the 1,000 on the Free plan. Sizing the market and counting are free.
- If you finish the build, a course should sell you judgment and feedback, not tutorials. If you stall, you know exactly which module you need.
Prerequisites
- A free LeadOcean key from app.leadocean.io/register. No card. Export it as
$LEADOCEAN_API_KEY. curlandjq, or any HTTP client you already use.- Python 3.10 or newer for the scoring step.
- The syllabus of the course you are considering, open in another tab.
Step 1: Turn the syllabus into a checklist
Write down every deliverable the course promises, then keep only the ones you can run. A deliverable is a thing that works: a table that fills itself, an agent that books a task, a webhook that routes a lead.
Drop "understand", "master" and "explore" lines. They are not testable. Your checklist might look like this:
[ ] Size a target audience without spending data credits
[ ] Pull 25 prospects with title, company and seniority
[ ] Enrich 5 of them from a LinkedIn URL
[ ] Score each row against an ICP and keep the top 3
[ ] Call the same data from an AI agent (MCP)This page covers the first four. The fifth is in Step 5.
Step 2: Size the audience for free
A free count tells you whether the job exists before you spend anything. The title GTM Engineer is the cleanest proxy for the role.
curl -s "https://api.leadocean.io/v1/people/search?count=true&limit=1" \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-H "content-type: application/json" \
-d '{"title": ["GTM Engineer"]}' | jq '.meta'count=true goes in the query string, not the body. The call returns meta.total (capped at 100,000) and an empty data array. It costs 0 records.
If you work in Claude or ChatGPT with the LeadOcean MCP server, the same question is one tool call to leadocean_count_leads. See what a GTM engineer does for the role itself.
Step 3: Pull a real sample
Search with the same filter and take one page of 25. This is the first thing most courses make you do, and it is one request.
curl -s https://api.leadocean.io/v1/people/search \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-H "content-type: application/json" \
-d '{
"title": ["GTM Engineer"],
"country": ["US"],
"limit": 25
}' > sample.json
jq '.meta' sample.jsonThe body is flat JSON and every filter is an array of strings. limit runs 1 to 100, and you page with the cursor value from meta.nextCursor. This call spends 25 records.
Step 4: Enrich five rows
Enrichment takes exactly one of linkedin_url, email, phone or person_id. There is no name plus domain lookup, so you search first and enrich by person_id.
for id in $(jq -r '.data[:5][].meta.source_ids.person_id' sample.json); do
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\": \"$id\"}" | jq -c . >> enriched.jsonl
doneAn enrichment that finds nothing returns 404 and costs nothing. Since October 2026 the response also carries resume_data: past roles, education and certifications, each when held. That is a cheap signal for scoring, because a prospect who held a RevOps role before is not the same as one who did not. Past employers carry no company_id yet.
Step 5: Hand the same job to an agent
Courses sell agents as the advanced module. The plumbing is smaller than the pitch: an agent needs a tool list and a sign-in. LeadOcean's hosted MCP server lives at https://api.leadocean.io/mcp and signs in with OAuth, so you paste no key.
{
"mcpServers": {
"leadocean": {
"url": "https://api.leadocean.io/mcp"
}
}
}The server exposes 13 tools. Seven cost nothing: leadocean_count_leads, leadocean_count_companies, leadocean_list_filters, leadocean_list_enum_values, leadocean_get_account, leadocean_get_export and leadocean_list_exports. Ask the agent:
Count GTM Engineers in the US, then tell me how many distinct
companies they span. Do not pull any records.Client config formats differ by tool, so check your client's own docs for where the block goes. The part a course should teach you is the prompt discipline around it: what the agent may spend, and when it must stop.
Step 6: Score the sample and judge the result
Scoring is where judgment enters. Keep it dull: a weighted sum you can read.
import json
lines = [json.loads(l) for l in open("enriched.jsonl") if l.strip()]
rows = [x["data"] for x in lines if x.get("data")] # a 404 line has no data
def score(p):
contact = p.get("contact_data") or {}
s = 0
if contact.get("has_email"): s += 2
if (p.get("resume_data") or {}).get("experiences"): s += 1
if contact.get("contact_current_experiences"): s += 1
return s
for p in sorted(rows, key=score, reverse=True)[:3]:
print(score(p), (p.get("profile_data") or {}).get("profile_full_name"))has_email, contact_current_experiences and resume_data.experiences are documented in the person schema.
Now grade yourself against the Step 1 checklist. Anything you built is not worth paying to learn. Anything you could not build is your buying list.
What you get
On 2026-10-21 the free leadocean_count_leads tool returned these counts for the title filter GTM Engineer:
| Filter | Mailable people | All matches | Distinct companies |
|---|---|---|---|
| title GTM Engineer, worldwide | 475 | 1,617 | 404 |
| title GTM Engineer, country US | 243 | 583 | 205 |
"Mailable" means verified, catch_all_valid or catch_all email status, the tool's default. It is not a count of people who will answer. Title matching is by keyword, so read it as the size of the labeled role, not of everyone who does the work.
The search response has this shape (response shape from the API reference, placeholder values):
{
"success": true,
"data": [
{
"profile_data": { "profile_full_name": "Jane Doe" },
"contact_data": {
"has_email": true,
"email_status": "verified",
"contact_current_experiences": [
{ "job_title": "GTM Engineer", "company_name": "Acme", "company_domain": "acme.com" }
]
},
"meta": { "source_ids": { "person_id": "PERSON_ID" } }
}
],
"meta": {
"count": 1,
"nextCursor": "CURSOR_FROM_API"
}
}One search pages to 10,000 rows. When it hits that, meta.depthCapped is true and nextCursor is gone, so narrow the filters instead of walking further.
Troubleshooting
| Error | Cause | Fix |
|---|---|---|
| 401 | Missing or wrong x-api-key header, or $LEADOCEAN_API_KEY not exported | Copy the key from the app again and export it in the same shell |
| 402 | The Free plan's 1,000 records are spent | Check GET /v1/account, or move to Solo at $97 a month |
| 429 | More than 5 requests a second on Free (200 on Agency) | Honor the Retry-After header and add a short sleep to the Step 4 loop |
Empty data | A bad enum value, such as "vp" where the filter wants "VP" | List exact strings with GET /v1/enums or leadocean_list_enum_values |
meta.depthCapped: true | One search reached 10,000 rows | Add filters such as country or jobLevel and search again |
| Count call returns rows | count=true sent in the JSON body | Move it to the query string and keep limit=1 |
FAQ
Is an AI GTM engineer course worth it?
It is worth it if it gives you feedback on real builds, a peer group or hiring access. It is not worth it for tutorials on APIs you can read yourself. Run the build above first. The gaps it exposes tell you which course, if any, to buy.
How much does it cost to run this test?
Counts are free. The test spends about 30 records, and the Free plan holds 1,000 for life with no card. Paid plans start at $97 a month on Solo, with a fair-use pace instead of credits. See pricing.
Can I learn GTM engineering without a course?
Yes, for the mechanics: APIs, filters, enrichment, webhooks and agents are all documented. A course helps with order and accountability. For the role and its stack, read what a GTM engineer is and the GTM engineer solutions page.
How do I compare specific courses?
Use the checklist from Step 1 on each syllabus and count deliverables you could not build. Our roundup of AI GTM engineering courses lists what each covers.
Build the pipeline before you buy the course
Free to start. No credit card. 1,000 records to spend whenever you like.
Get your free API key →