Pre-Black Friday: 20% off, for as long as you stayEARLYBFon Solo and AgencyEnds Nov 28Start free

Role playbook

How to Sell to a VP of Engineering (and Count the List by Region)

What a VP of Engineering buys, who else is in the deal, how many are mailable by region, and four first lines you can send today.

Get your free API key →Free to start. No credit card. 1,000 records to spend whenever you like.

TL;DR

  • A VP of Engineering owns delivery, headcount and the engineering budget. Sell a result they can defend to the CEO, and name it in the first line.
  • Count first, send second. On 2026-10-21 LeadOcean showed 41,702 mailable VPs with an engineering job function worldwide, 25,784 of them in the US.
  • The recipe takes about 25 minutes and spends about 26 LeadOcean records. Every count is free.

Prerequisites

  • A free LeadOcean account and an API key from app.leadocean.io. Free gives you 1,000 records for life, no card, 5 requests a second.
  • The key in your shell as $LEADOCEAN_API_KEY.
  • curl and jq.
  • Optional: Claude or any MCP client connected to https://api.leadocean.io/mcp, which has 13 tools including free counts.

What a VP of Engineering actually cares about

A VP of Engineering runs the whole engineering function. Directors and managers report to them, and they answer to the CTO or the CEO.

They care about five things, roughly in this order.

  1. Delivery against the roadmap. Did engineering ship what the company promised. Slips get explained in the board deck.
  2. Headcount and cost. They own hiring plans and the cloud and tooling bill. A tool that cuts either is worth a meeting.
  3. Reliability and security. An outage or a breach lands on their desk. They remember the vendor involved.
  4. Retention. Losing a senior engineer costs months. Anything that removes toil for the team earns attention.
  5. Fewer vendors. They carry a long tool list already. A new one has to replace something or save real time.

They do not read marketing pages. They read a short note from someone who knows the job, and they forward it to a director to check.

What kills the deal

VPs of Engineering say no for predictable reasons. Answer them before they ask.

  • "We will build it ourselves." Often true. Give the build cost in engineer-weeks, then the price. Do not argue the point.
  • "Security has to review it." Send the data you touch, the auth method and the endpoint list in the first email.
  • "Not this quarter." Ask what the quarter is for, and tie the tool to that goal.
  • "Talk to my director." Good. Give them one paragraph to forward, with the count, the use case and the cost.
  • "Another vendor to manage." Name what the tool replaces, and by when.

Where a VP of Engineering sits in the buying committee

A VP of Engineering is usually the approver. Managers and engineers evaluate, and the VP signs when spend crosses a team threshold.

  • Engineering managers run the trial and report back. See how to sell to an engineering manager.
  • Senior engineers try the tool. One negative comment can end the deal.
  • The CTO joins when the choice affects architecture or large spend. At smaller companies the VP and the CTO are one conversation.
  • IT or security reviews access and data handling.
  • Finance or procurement handles terms, often with a vendor list you must be on.

A VP in a 200-person company may buy alone. A VP in a 10,000-person company hands the case to procurement. Check the headcount before you pick the first line.

Step 1: Count VPs of Engineering by region (free)

Start with a count. It spends zero records and tells you whether the segment is worth a campaign.

leadocean_count_leads counts mailable people by default: verified, catch_all_valid and catch_all addresses. This count filters on level and function, not on title text. It matches people at VP level whose job function is Engineering, so it includes VPs of Engineering and also VPs of Product Engineering, Platform and similar. Run it from any MCP client.

json
{
  "tool": "leadocean_count_leads",
  "arguments": {
    "jobLevel": ["VP"],
    "jobFunction": ["Engineering"],
    "salesRegion": ["NORAM"],
    "facets": false
  }
}

Swap salesRegion for EMEA, APAC or LATAM. Leave it out for the worldwide figure. Use country instead for a single market.

Step 2: Read the count for each region

Put the counts in one table before you pick a market. These ran on 2026-10-21 with jobLevel: ["VP"], jobFunction: ["Engineering"] and the default mailable email statuses.

RegionMailableEmployers coveredAll matches (any email status)
Worldwide41,70218,83598,787
NORAM26,86212,50056,832
EMEA4,2172,3889,370
APAC4,5032,0289,207
LATAM356246749

The four regions add up to 35,938, short of the 41,702 worldwide figure. The gap is people with no sales region on file. Use the worldwide row for the total and the region rows for planning.

Country counts for the same filters:

CountryMailableEmployers coveredAll matches (any email status)
US25,78411,89654,103
IN2,8871,2845,777
GB1,3566512,861
CA1,0597582,692
DE392272983

Read three things from this. NORAM is about two thirds of the worldwide mailable list (26,862 of 41,702), and the US alone is 25,784. APAC (4,503) is slightly ahead of EMEA (4,217), and India carries most of it. And the last column shows how much you would mail blind: worldwide, 98,787 people match but only 41,702 are mailable.

Company size changes the buyer. Add employeeRange: ["201-500", "501-1000"] and the worldwide count drops to 5,781 mailable VPs across 3,664 employers. At that size the VP is more likely to sign alone. Start here if you sell a tool a team can adopt in a week.

Step 3: Pull a sample from your best region

Pull 25 rows from the region you picked. This spends 25 records. Search is a flat JSON body, filters are arrays, and limit runs from 1 to 100.

bash
curl -s -X POST https://api.leadocean.io/v1/people/search \
  -H "x-api-key: $LEADOCEAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "jobLevel": ["VP"],
    "jobFunction": ["Engineering"],
    "country": ["GB"],
    "emailStatus": ["verified"],
    "limit": 25
  }' | jq '{rows: (.data | length), next: .meta.nextCursor}'

Page by sending meta.nextCursor back as cursor. One search pages to 10,000 rows, so narrow the filters instead of walking the whole index.

Step 4: Enrich one record to read the career history

Before you write, read one profile. Person enrich returns career history: past roles, education, certifications and awards. Past employers carry no company_id yet.

Enrich takes exactly one of linkedin_url, email, phone or person_id. Each search row carries its id at meta.source_ids.person_id.

bash
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": "1234567890", "reveal_email": true}' \
  | jq '.data.resume_data.experiences[0:3]'

This costs one record. A person we hold nothing for returns a 404 and costs nothing.

Look for the path. A VP who rose from the codebase cares how the tool works. One who came from a product or operations role cares about cost and risk. One who joined in the last six months is resetting the stack and open to a short note.

Step 5: Write the first line

Open with their problem, not your product. Keep the email under 90 words. Here are four first lines, each tied to a fact you can check before you send.

text
1. Hiring plan:    "Acme is hiring {N} engineers. Here is how {Product} cuts ramp time without adding a tool."
2. New in role:    "Congrats on the VP role at Acme. If you are reviewing the stack this quarter, {Product} is worth ten minutes."
3. Cost:           "Is Acme's cloud bill a line you get asked about? {Product} cut one part of it by {X} for {customer type}."
4. Reliability:    "If an outage at Acme costs an hour of three teams, this takes ten minutes to check."

Replace the placeholders with facts from the record. Never claim a number you cannot source. Send the full email only after the first line reads like a note from one engineer to another.

Step 6: Pick the VPs worth a first send

Do not mail all 41,702. Rank the list by fit, then send in small batches and read the replies. Size the first batch with a free count:

json
{
  "tool": "leadocean_count_leads",
  "arguments": {
    "jobLevel": ["VP"],
    "jobFunction": ["Engineering"],
    "employeeRange": ["201-500", "501-1000"],
    "facets": false
  }
}

On 2026-10-21 that returned 5,781 mailable VPs across 3,664 employers.

  • Start where fewer people decide. Companies of 201 to 1000 people, where the VP is more likely to sign alone.
  • Prefer a signal over a title. A new role, a hiring plan or a recent funding round gives you a reason to write now.
  • Split by region. Send in the VP's morning. NORAM and EMEA need separate batches and separate time zones.
  • Keep batches under 200. Read the first replies, fix the first line, then send the next batch.

Check email_status on every row before you send. Verified addresses first, catch-all after. A bounce is not refunded, and a high bounce rate hurts the next batch.

What you get

The count below is the real output of leadocean_count_leads on 2026-10-21 for the worldwide filter. It spent no records.

json
{
  "total": 41702,
  "totalIsExact": true,
  "totalAll": 98787,
  "distinctCompanies": 18835,
  "credits": 0,
  "defaults": "Counted only addresses worth sending to (emailStatus: verified or catch_all_valid or catch_all)"
}

A person record from step 3 has this shape (response shape from the API reference, placeholder values):

json
{
  "success": true,
  "data": [
    {
      "profile_data": { "profile_full_name": "Jane Doe" },
      "contact_data": {
        "has_email": true,
        "email_status": "verified",
        "contact_current_experiences": [
          { "job_title": "VP of Engineering", "company_name": "Acme", "company_domain": "acme.com" }
        ]
      },
      "meta": { "source_ids": { "person_id": "1234567890" } }
    }
  ],
  "meta": { "count": 1, "credits": 1, "nextCursor": "..." }
}

Troubleshooting

ErrorCauseFix
401Missing or wrong x-api-key headerCheck $LEADOCEAN_API_KEY is exported and has no stray space.
429Above the plan's rate limit (5 a second on Free, 200 on Agency)Wait for Retry-After, then slow the loop.
402Out of records. Free is 1,000 for lifeUpgrade to Solo ($97) or Agency ($497), or narrow the pull.
Empty resultsA bad enum value, such as jobLevel: "vp"Enum values are exact strings. Use VP, and check leadocean_list_enum_values.
404 on enrichLeadOcean holds nothing for that personCosts nothing. Try another person_id or a linkedin_url.
Export stopsOver 50,000 rows a request or 500,000 a daySplit the export by country, or wait for the daily window.

FAQ

Who is above a VP of Engineering?

The CTO or the CEO. At smaller companies the VP of Engineering is the top engineering role and holds the budget.

Is a VP of Engineering the same as a CTO?

No. The CTO sets technical direction and architecture. The VP runs delivery, hiring and process. Sell cost and delivery to the VP, and architecture to the CTO. See how to sell to a CTO.

How many VPs of Engineering can I email?

On 2026-10-21 the filter above counted 41,702 mailable people worldwide. Narrow by region, country or headcount before you send. Read email_status first, because bounced emails are not refunded.

Should I write to the VP or the engineering manager?

Write to the manager when the tool changes daily work, and the VP when it changes cost or risk. Most deals need both. See how to sell to an engineering manager.

How much does this cost on LeadOcean?

The counts are free. The recipe spends about 26 records, well inside the 1,000 on the Free plan. See pricing for Solo and Agency.

More role playbooks are in the blog. Related: how to sell to a VP of Marketing and how to sell to a recruiter.

Count the VPs of Engineering in your market before you write a word

Free to start. No credit card. 1,000 records to spend whenever you like.

Get your free API key →