AI-agent-powered lead enrichment using Sixtyfour
GTM Enrichment — Deep (Sixtyfour AI Agent)

AI-agent-powered lead enrichment using Sixtyfour as primary source. Takes an email (+ optional name) and returns comprehensive person + company data with funding, AI/B2B classification, and full error visibility.
---
name: gtm-enrichment-deep
description: AI-agent-powered lead enrichment using Sixtyfour as primary source. Takes an email (+ optional name) and returns comprehensive person + company data with funding, AI/B2B classification, and full error visibility. Higher cost (~$0.20/lead) but simpler architecture.
source: orthogonal
---
# GTM Enrichment — Deep (Sixtyfour AI Agent)
## Setup
Read your credentials from ~/.gooseworks/credentials.json:
```bash
export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])")
export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))")
```
If ~/.gooseworks/credentials.json does not exist, tell the user to run: `npx gooseworks login`Overview
If ~/.gooseworks/credentials.json does not exist, tell the user to run: npx gooseworks login
Manual install (npx, ZIP)
npx skills add gooseworks-ai/goose-skills --skill gtm-enrichment-deep -g -a claude-codemkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/gooseworks-ai/goose-skills/tar.gz/615c685f34f8 \
| tar -xz -C ~/.claude/skills --strip-components=4 goose-skills-615c685f34f8/skills/lead-generation/capabilities/gtm-enrichment-deepNew-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/4a5b9d450a23ed030b21/gtm-enrichment-deep.zip" -OutFile "$env:TEMP\gtm-enrichment-deep.zip"; Expand-Archive "$env:TEMP\gtm-enrichment-deep.zip" -DestinationPath "$HOME\.claude\skills" -ForceConnects with Agent Alley MCP · agentalley.io/mcp
Files included
SKILL.md8.5 KBskill.meta.json294 B
Read the files here
gooseworks-ai/
Show the full text247 lines
GTM Enrichment — Deep (Sixtyfour AI Agent)
Setup
Read your credentials from ~/.gooseworks/credentials.json:
export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])")
export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))")
If ~/.gooseworks/credentials.json does not exist, tell the user to run: npx gooseworks login
All endpoints use Bearer auth: -H "Authorization: Bearer $GOOSEWORKS_API_KEY"
Enrich a lead from an email address (+ optional name) using Sixtyfour's AI agents as the primary enrichment source. Returns person data, company data, funding history, and AI/B2B classification.
Cost: ~$0.20-$0.22 per lead Latency: ~30-60s (Sixtyfour AI agents browse the web)
Input
Required:
- email — the lead's email address (e.g.,
[email protected])
Optional:
- name — full name if known (improves match rate)
Workflow
Step 1: Extract Domain
Extract the domain from the email address. Example: [email protected] -> domain: acme.com
Step 2: Run Sixtyfour Enrichment (parallel)
Fire both calls simultaneously. These are the primary data sources.
Enrich Lead ($0.10):
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"sixtyfour","path":"/enrich-lead"}'
"lead_info": {
"email": "{email}",
"first_name": "{first_name_if_known}",
"last_name": "{last_name_if_known}",
"company": "{company_name_if_known}",
"domain": "{domain}"
},
"struct": {
"full_name": "Full legal name of this person",
"first_name": "First name",
"last_name": "Last name",
"title": "Current job title at their company",
"linkedin_url": "LinkedIn profile URL (full URL starting with https://linkedin.com/in/)",
"city": "City where the person is located",
"state": "State or region where the person is located",
"country": "Country where the person is located"
}
}'
Enrich Company ($0.10):
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"sixtyfour","path":"/enrich-company"}'
"target_company": {
"domain": "{domain}"
},
"struct": {
"company_name": "Official company name",
"description": "One-paragraph description of what the company does",
"linkedin_url": "LinkedIn company page URL (full URL starting with https://linkedin.com/company/)",
"hq_city": "Headquarters city",
"hq_state": "Headquarters state or region",
"hq_country": "Headquarters country",
"employee_count": "Approximate number of employees (number only)",
"founded_year": "Year the company was founded (number only)",
"total_funding_amount_usd": "Total funding raised in USD (number only, no $ sign)",
"latest_funding_date": "Date of most recent funding round (YYYY-MM-DD format)",
"latest_funding_stage": "Stage of most recent funding round (e.g., Series A, Series B, Seed)",
"latest_funding_amount_usd": "Amount raised in most recent round in USD (number only)",
"is_ai_company": "true or false - does this company build or primarily use AI/ML technology?",
"ai_evidence": "Brief explanation of why this is or is not an AI company",
"is_b2b_saas": "true or false - is this a B2B SaaS company?",
"b2b_evidence": "Brief explanation of why this is or is not B2B SaaS"
}
}'
Record the status, latency, and any errors for both calls.
Step 3: Fallback — Apollo Person Match (conditional)
ONLY run if Sixtyfour /enrich-lead did NOT return a LinkedIn URL.
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"apollo","path":"/api/v1/people/match"}'
"email": "{email}",
"reveal_personal_emails": true
}'
Cost: $0.01. Extract linkedin_url, and also grab name, title, organization as cross-reference data.
Step 4: Fallback — Apollo Organization Enrich (conditional)
ONLY run if Sixtyfour /enrich-company did NOT return funding data (total_funding_amount_usd is null/empty).
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"apollo","path":"/api/v1/organizations/enrich","query":{"domain":"{domain}"}}'
Cost: $0.01. Extract funding events, total funding, latest funding stage, and latest funding amount.
Step 5: Compile Results
Merge all data into the output format below. Apply these rules:
- Sixtyfour is primary — use its data first for all fields
- Apollo is fallback — only used to fill gaps Sixtyfour missed
- Source tracking — for each field, note whether it came from
sixtyfourorapollo - Confidence:
high— Sixtyfour returned the field directlymedium— Apollo fallback provided the fieldlow— field was inferred or partially matched
Output Format
Present the results as a JSON code block:
{
"person": {
"full_name": "string",
"title": "string",
"linkedin_url": "string",
"location": {"city": "string", "state": "string", "country": "string"},
"email_verified": "unknown",
"confidence": "high | medium | low",
"source": "sixtyfour | apollo"
},
"company": {
"name": "string",
"domain": "string",
"linkedin_url": "string",
"description": "string",
"geo": {"city": "string", "state": "string", "country": "string"},
"employee_count": "number | null",
"founded_year": "number | null",
"funding": {
"total_amount": "number | null",
"total_amount_printed": "string | null",
"latest_round_date": "string | null",
"latest_round_stage": "string | null",
"latest_round_amount": "number | null",
"rounds": [],
"confidence": "high | medium | low"
},
"classification": {
"is_ai": {"value": true, "confidence": "high | medium | low", "evidence": ["string"]},
"is_b2b_saas": {"value": true, "confidence": "high | medium | low", "evidence": ["string"]}
},
"buying_signals": {
"has_enterprise_plan": null,
"has_self_serve": null,
"hiring_enterprise_reps": null,
"website_traffic_rank": null,
"github_stars": null,
"tech_stack": null
},
"confidence": "high | medium | low",
"source": "sixtyfour | apollo | merged"
},
"meta": {
"total_cost": "$0.XX",
"api_calls": [],
"phases_run": [1, 2],
"enrichment_timestamp": "ISO datetime"
}
}
Error Visibility
Track EVERY API call in the meta.api_calls array:
{
"api": "sixtyfour",
"endpoint": "/enrich-lead",
"status": "success | partial | error",
"cost": "$0.10",
"latency_ms": 35000,
"fields_returned": ["full_name", "title", "linkedin_url"],
"fields_missing": ["city"],
"error": null
}
If an API call fails, returns empty data, or times out, include it in the api_calls array with status='error' and a clear error message. Never silently skip failures.
Cost Tracking
Sum all API call costs and report in meta.total_cost:
- Sixtyfour /enrich-lead: $0.10
- Sixtyfour /enrich-company: $0.10
- Apollo /api/v1/people/match: $0.01 (only if used)
- Apollo /api/v1/organizations/enrich: $0.01 (only if used)
Example
Input: [email protected]
Expected flow:
- Extract domain:
acme.com - Fire Sixtyfour /enrich-lead and /enrich-company in parallel
- Check if LinkedIn URL returned — if not, call Apollo /people/match
- Check if funding data returned — if not, call Apollo /organizations/enrich
- Compile and output JSON with all fields, error visibility, and cost
Tips
- Sixtyfour takes 30-60s per call — be patient, do NOT timeout early
- If Sixtyfour returns partial data, still use what it returned and fill gaps with Apollo
- AI/B2B classification comes from Sixtyfour's web research — it reads the company website
- The
structfield in Sixtyfour tells the AI agent exactly what to research — modify fields there if you need different data points
| 1 | |
| 2 | name gtm-enrichment-deep |
| 3 | description AI-agent-powered lead enrichment using Sixtyfour as primary source. Takes an email (+ optional name) and returns comprehensive person + company data with funding, AI/B2B classification, and full error visibility. Higher cost (~$0.20/lead) but simpler architecture. |
| 4 | source orthogonal |
| 5 | |
| 6 | |
| 7 | |
| 8 | # GTM Enrichment — Deep (Sixtyfour AI Agent) |
| 9 | |
| 10 | ## Setup |
| 11 | |
| 12 | Read your credentials from ~/.gooseworks/credentials.json: |
| 13 | |
| 14 | export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])") |
| 15 | export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))") |
| 16 | |
| 17 | |
| 18 | If ~/.gooseworks/credentials.json does not exist, tell the user to run: `npx gooseworks login` |
| 19 | |
| 20 | All endpoints use Bearer auth: `-H "Authorization: Bearer $GOOSEWORKS_API_KEY"` |
| 21 | |
| 22 | |
| 23 | Enrich a lead from an email address (+ optional name) using Sixtyfour's AI agents as the primary enrichment source. Returns person data, company data, funding history, and AI/B2B classification. |
| 24 | |
| 25 | **Cost**: ~$0.20-$0.22 per lead |
| 26 | **Latency**: ~30-60s (Sixtyfour AI agents browse the web) |
| 27 | |
| 28 | ## Input |
| 29 | |
| 30 | Required: |
| 31 | **email** — the lead's email address (e.g., `[email protected]`) |
| 32 | |
| 33 | Optional: |
| 34 | **name** — full name if known (improves match rate) |
| 35 | |
| 36 | ## Workflow |
| 37 | |
| 38 | ### Step 1: Extract Domain |
| 39 | |
| 40 | Extract the domain from the email address. Example: `[email protected]` -> domain: `acme.com` |
| 41 | |
| 42 | ### Step 2: Run Sixtyfour Enrichment (parallel) |
| 43 | |
| 44 | Fire both calls simultaneously. These are the primary data sources. |
| 45 | |
| 46 | **Enrich Lead** ($0.10): |
| 47 | |
| 48 | |
| 49 | curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ |
| 50 | -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ |
| 51 | -H "Content-Type: application/json" \ |
| 52 | -d '{"api":"sixtyfour","path":"/enrich-lead"}' |
| 53 | "lead_info": { |
| 54 | "email": "{email}", |
| 55 | "first_name": "{first_name_if_known}", |
| 56 | "last_name": "{last_name_if_known}", |
| 57 | "company": "{company_name_if_known}", |
| 58 | "domain": "{domain}" |
| 59 | }, |
| 60 | "struct": { |
| 61 | "full_name": "Full legal name of this person", |
| 62 | "first_name": "First name", |
| 63 | "last_name": "Last name", |
| 64 | "title": "Current job title at their company", |
| 65 | "linkedin_url": "LinkedIn profile URL (full URL starting with https://linkedin.com/in/)", |
| 66 | "city": "City where the person is located", |
| 67 | "state": "State or region where the person is located", |
| 68 | "country": "Country where the person is located" |
| 69 | } |
| 70 | }' |
| 71 | |
| 72 | |
| 73 | **Enrich Company** ($0.10): |
| 74 | |
| 75 | |
| 76 | curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ |
| 77 | -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ |
| 78 | -H "Content-Type: application/json" \ |
| 79 | -d '{"api":"sixtyfour","path":"/enrich-company"}' |
| 80 | "target_company": { |
| 81 | "domain": "{domain}" |
| 82 | }, |
| 83 | "struct": { |
| 84 | "company_name": "Official company name", |
| 85 | "description": "One-paragraph description of what the company does", |
| 86 | "linkedin_url": "LinkedIn company page URL (full URL starting with https://linkedin.com/company/)", |
| 87 | "hq_city": "Headquarters city", |
| 88 | "hq_state": "Headquarters state or region", |
| 89 | "hq_country": "Headquarters country", |
| 90 | "employee_count": "Approximate number of employees (number only)", |
| 91 | "founded_year": "Year the company was founded (number only)", |
| 92 | "total_funding_amount_usd": "Total funding raised in USD (number only, no $ sign)", |
| 93 | "latest_funding_date": "Date of most recent funding round (YYYY-MM-DD format)", |
| 94 | "latest_funding_stage": "Stage of most recent funding round (e.g., Series A, Series B, Seed)", |
| 95 | "latest_funding_amount_usd": "Amount raised in most recent round in USD (number only)", |
| 96 | "is_ai_company": "true or false - does this company build or primarily use AI/ML technology?", |
| 97 | "ai_evidence": "Brief explanation of why this is or is not an AI company", |
| 98 | "is_b2b_saas": "true or false - is this a B2B SaaS company?", |
| 99 | "b2b_evidence": "Brief explanation of why this is or is not B2B SaaS" |
| 100 | } |
| 101 | }' |
| 102 | |
| 103 | |
| 104 | Record the status, latency, and any errors for both calls. |
| 105 | |
| 106 | ### Step 3: Fallback — Apollo Person Match (conditional) |
| 107 | |
| 108 | **ONLY run if Sixtyfour /enrich-lead did NOT return a LinkedIn URL.** |
| 109 | |
| 110 | |
| 111 | curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ |
| 112 | -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ |
| 113 | -H "Content-Type: application/json" \ |
| 114 | -d '{"api":"apollo","path":"/api/v1/people/match"}' |
| 115 | "email": "{email}", |
| 116 | "reveal_personal_emails": true |
| 117 | }' |
| 118 | |
| 119 | |
| 120 | Cost: $0.01. Extract `linkedin_url`, and also grab `name`, `title`, `organization` as cross-reference data. |
| 121 | |
| 122 | ### Step 4: Fallback — Apollo Organization Enrich (conditional) |
| 123 | |
| 124 | **ONLY run if Sixtyfour /enrich-company did NOT return funding data** (total_funding_amount_usd is null/empty). |
| 125 | |
| 126 | |
| 127 | curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ |
| 128 | -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ |
| 129 | -H "Content-Type: application/json" \ |
| 130 | -d '{"api":"apollo","path":"/api/v1/organizations/enrich","query":{"domain":"{domain}"}}' |
| 131 | |
| 132 | |
| 133 | Cost: $0.01. Extract funding events, total funding, latest funding stage, and latest funding amount. |
| 134 | |
| 135 | ### Step 5: Compile Results |
| 136 | |
| 137 | Merge all data into the output format below. Apply these rules: |
| 138 | |
| 139 | **Sixtyfour is primary** — use its data first for all fields |
| 140 | **Apollo is fallback** — only used to fill gaps Sixtyfour missed |
| 141 | **Source tracking** — for each field, note whether it came from `sixtyfour` or `apollo` |
| 142 | **Confidence**: |
| 143 | `high` — Sixtyfour returned the field directly |
| 144 | `medium` — Apollo fallback provided the field |
| 145 | `low` — field was inferred or partially matched |
| 146 | |
| 147 | ## Output Format |
| 148 | |
| 149 | Present the results as a JSON code block: |
| 150 | |
| 151 | |
| 152 | { |
| 153 | "person": { |
| 154 | "full_name": "string", |
| 155 | "title": "string", |
| 156 | "linkedin_url": "string", |
| 157 | "location": {"city": "string", "state": "string", "country": "string"}, |
| 158 | "email_verified": "unknown", |
| 159 | "confidence": "high | medium | low", |
| 160 | "source": "sixtyfour | apollo" |
| 161 | }, |
| 162 | "company": { |
| 163 | "name": "string", |
| 164 | "domain": "string", |
| 165 | "linkedin_url": "string", |
| 166 | "description": "string", |
| 167 | "geo": {"city": "string", "state": "string", "country": "string"}, |
| 168 | "employee_count": "number | null", |
| 169 | "founded_year": "number | null", |
| 170 | "funding": { |
| 171 | "total_amount": "number | null", |
| 172 | "total_amount_printed": "string | null", |
| 173 | "latest_round_date": "string | null", |
| 174 | "latest_round_stage": "string | null", |
| 175 | "latest_round_amount": "number | null", |
| 176 | "rounds": [], |
| 177 | "confidence": "high | medium | low" |
| 178 | }, |
| 179 | "classification": { |
| 180 | "is_ai": {"value": true, "confidence": "high | medium | low", "evidence": ["string"]}, |
| 181 | "is_b2b_saas": {"value": true, "confidence": "high | medium | low", "evidence": ["string"]} |
| 182 | }, |
| 183 | "buying_signals": { |
| 184 | "has_enterprise_plan": null, |
| 185 | "has_self_serve": null, |
| 186 | "hiring_enterprise_reps": null, |
| 187 | "website_traffic_rank": null, |
| 188 | "github_stars": null, |
| 189 | "tech_stack": null |
| 190 | }, |
| 191 | "confidence": "high | medium | low", |
| 192 | "source": "sixtyfour | apollo | merged" |
| 193 | }, |
| 194 | "meta": { |
| 195 | "total_cost": "$0.XX", |
| 196 | "api_calls": [], |
| 197 | "phases_run": [1, 2], |
| 198 | "enrichment_timestamp": "ISO datetime" |
| 199 | } |
| 200 | } |
| 201 | |
| 202 | |
| 203 | ## Error Visibility |
| 204 | |
| 205 | Track EVERY API call in the `meta.api_calls` array: |
| 206 | |
| 207 | |
| 208 | { |
| 209 | "api": "sixtyfour", |
| 210 | "endpoint": "/enrich-lead", |
| 211 | "status": "success | partial | error", |
| 212 | "cost": "$0.10", |
| 213 | "latency_ms": 35000, |
| 214 | "fields_returned": ["full_name", "title", "linkedin_url"], |
| 215 | "fields_missing": ["city"], |
| 216 | "error": null |
| 217 | } |
| 218 | |
| 219 | |
| 220 | **If an API call fails, returns empty data, or times out, include it in the api_calls array with status='error' and a clear error message. Never silently skip failures.** |
| 221 | |
| 222 | ## Cost Tracking |
| 223 | |
| 224 | Sum all API call costs and report in `meta.total_cost`: |
| 225 | Sixtyfour /enrich-lead: $0.10 |
| 226 | Sixtyfour /enrich-company: $0.10 |
| 227 | Apollo /api/v1/people/match: $0.01 (only if used) |
| 228 | Apollo /api/v1/organizations/enrich: $0.01 (only if used) |
| 229 | |
| 230 | ## Example |
| 231 | |
| 232 | **Input**: `[email protected]` |
| 233 | |
| 234 | **Expected flow**: |
| 235 | Extract domain: `acme.com` |
| 236 | Fire Sixtyfour /enrich-lead and /enrich-company in parallel |
| 237 | Check if LinkedIn URL returned — if not, call Apollo /people/match |
| 238 | Check if funding data returned — if not, call Apollo /organizations/enrich |
| 239 | Compile and output JSON with all fields, error visibility, and cost |
| 240 | |
| 241 | ## Tips |
| 242 | |
| 243 | Sixtyfour takes 30-60s per call — be patient, do NOT timeout early |
| 244 | If Sixtyfour returns partial data, still use what it returned and fill gaps with Apollo |
| 245 | AI/B2B classification comes from Sixtyfour's web research — it reads the company website |
| 246 | The `struct` field in Sixtyfour tells the AI agent exactly what to research — modify fields there if you need different data points |
| 247 |
Details
- Updated
- Sep 21, 2026
- License
- MIT
- Stars on the repo
- ★ 1,220
- Checked
- Source
- gooseworks-ai/goose-skills ↗
- Creator
- gooseworks-ai · 206 listings
Made with gtm-enrichment-deep

Similar skills
See all →
SkillAct as the company research engine for /sales research <urlCompany Research & Firmographic Analysis
SkillEthical people-finding and identity verificationPrivateinvestigator
SkillFree People Search to discover ICP-matching leadsApollo lead finder
SkillFind decision-makers at a specific company using ApolloCompany contact finder
SkillFind company funding history, investorsCompany funding search
SkillFull company intelligence reportCompany Intelligence - Comprehensive Company ReportsMore from gooseworks-ai
SkillMine the highest-converting ad angles from customer reviewsAd angle miner
SkillAnalyze ad campaign performance data to identify what'sAd campaign analyzer
SkillFor paid lead-gen and participant-recruitment adsAd lead quality analyzer
SkillAnalyze the message match between your ads and landing pagesAd to landing page auditor
SkillCheck and improve your brand's visibility across AI searchAeo
SkillSearch Amazon products - find items, compare pricesAmazon Product Search