Install
$ agentstack add skill-getaero-io-gtm-eng-skills-deepline-gtm Open-source listing — not yet scanned by AgentStack. Follow the source repository for install instructions.
Security review
⚠ Flagged1 finding(s); flagged for manual review. · v0.1.0 How review works →
- • Prompt-injection patterns
- • Secret / credential exfiltration
- • Dangerous shell & filesystem operations
- • Untrusted network calls
- • Known-malicious package signatures
- high Pipes remote content directly into a shell (remote code execution).
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
GTM Meta Skill
Use this skill for prospecting, account research, contact enrichment, verification, lead scoring, personalization, and campaign activation.
1) What this skill governs
- Route GTM decisions, safety gates, and provider/quality defaults before execution.
- Keep long command chains and tooling nuance in sub-docs; provider-specific implementation detail in
provider-playbooks/*.md. - Provide clear entry points for both paid and non-paid workflows, including
--rows 0:1one-row pilots.
Process/goal
Customer is generally trying to go from "I have an ICP" to "Here's a list of prospects with email/linkedin and very personalized content or signals". They may be anywhere in this process, but guide them along.
Discovery order: companies first, then people. When the task requires finding contacts at companies matching criteria (portfolio, ICP, hiring signal), discover the company set first, then find people at each company. Do not start with broad people-search queries.
Documentation hierarchy
- Level 1 (
SKILL.md): decision model, guardrails, approval gates, links to sub-docs. - Level 2 (phase docs): [finding-companies-and-contacts.md](finding-companies-and-contacts.md), [enriching-and-researching.md](enriching-and-researching.md), [writing-outreach.md](writing-outreach.md),
prompts.json. - Level 2.5 (
recipes/*.md): step-by-step playbooks for specific tasks (email lookup, LinkedIn resolution, waterfall patterns, contact finding, actor contracts). Search like code with Grep. - Level 3 (
provider-playbooks/*.md): provider-specific quirks, cost/quality notes, and fallback behavior.
No-loss rule: moved guidance remains fully documented at its canonical level and is linked from here.
CLI family fallback
If Deepline CLI V2 or SDK mode seems broken while running a GTM task, check deepline switch status. Use deepline switch sdk to move an installer-managed CLI to SDK mode, or deepline switch python to roll back to the Python CLI. Auth is host-scoped and should carry across both families.
2) Read behavior — MANDATORY before any execution
STOP. Do not call any provider, run any deepline tools execute, or write any search command until you have opened the correct sub-doc for your task.
These skill docs and sub-docs are not generic documentation — they are distilled from hundreds of real runs and encode exactly what works, what fails, and why. They contain validated parameter schemas, correct filter syntax, parallel execution patterns, tested sample payloads, and known pitfalls that took many iterations to discover. Think of them as shortcuts: reading a doc for 5 seconds saves you from 10 failed tool calls, wasted credits, and garbage output. Every time an agent skips reading the docs and tries to "figure it out" from first principles, it re-discovers the same failure modes that are already documented and solved.
SKILL.md is the routing layer — it tells you WHERE to go, not HOW to execute. The sub-docs and task-specific skills contain the HOW. Without them you will guess parameters, pick wrong providers, run searches sequentially instead of in parallel, and produce garbage results. This has happened repeatedly.
Open the right doc BEFORE executing
This is not optional. Read the matching doc. Do not skip this step. Do not "just try one provider real quick" or "just run one search to see." These docs exist because the correct approach was non-obvious and had to be learned through trial and error — they are shortcuts that let you skip straight to what works.
!important READING MULTIPLE DOCS IS A GREAT IDEA AND OFTEN SUPER ESSENTIAL. JUST READ MORE.
Routing rules — match your task to a doc and READ IT:
| When the task involves... | You MUST read this doc first | What it gives you (that SKILL.md doesn't) | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | Finding companies, finding people, building lead lists, prospecting, portfolio/VC sourcing, contact finding at known companies, coverage completion at scale | [finding-companies-and-contacts.md](finding-companies-and-contacts.md) | Provider filter schemas, parallel execution patterns, provider mix tables, role-based search rules, subagent orchestration, at-scale coverage completion, portfolio/VC shortcuts, contact finding patterns. | | Researching companies or people, understanding what they build, figuring out use cases, personalizing based on mission/product/industry, enriching a CSV, adding data columns, waterfall enrichment, finding emails/phones/LinkedIn, coalescing data, custom signals, run_javascript / deeplineagent steps, Apify actors — any task that adds or transforms row-level data | [enriching-and-researching.md](enriching-and-researching.md) | deepline enrich syntax and all flags. Waterfall patterns with fallback chains. run_javascript / deeplineagent routing. Multi-pass pipeline patterns (research pass → generation pass). Coalescing patterns. Email/phone/LinkedIn waterfall orders. Custom signal buckets. Apify actor selection. GTM definitions and defaults. | | Creating custom Deepline plays/scripts that combine multiple tools and/or other plays, map over CSV rows, add fallback logic, joins/projections, durable datasets, custom run/export behavior, webhook/cron-style orchestration, or a reusable .play.ts scratchpad. This is for composition and control flow, not ordinary single-column enrichment. | [recipes/deepline-plays.md](recipes/deepline-plays.md) | Direct vs compose decision, play search/describe discipline, bootstrap/wrap/fork rules, durable authoring basics, webhook/cron replacement routing, run/export/repair routing, and exact SDK/API reference pointers. | | Writing cold emails, personalizing outreach, lead scoring, qualification, sequence design, campaign copy, inspecting CSVs in Playground. If the task also requires researching companies/people to inform the writing, read [enriching-and-researching.md](enriching-and-researching.md) too — it has the multi-pass pipeline pattern. | [writing-outreach.md](writing-outreach.md) | Prompt templates from prompts.json. Scoring rubrics. Email length/tone/structure rules. Personalization patterns. Qualification frameworks. Playground inspection commands. |
If you are hand-authoring enrich columns instead of using a native play, jump straight to the "Handmade step shape quick reference" section in [enriching-and-researching.md](enriching-and-researching.md). That section spells out the exact runtime contract for run_javascript, extract_js, result, and persisted matched_result.
Recipes: step-by-step playbooks for specific tasks (check before executing)
The recipes/ directory contains battle-tested playbooks. Before you start executing, scan this list and read any recipe that matches your task.
When a recipe matches: follow it step-by-step as your execution plan. Recipes encode hard-won sequencing and provider choices — trust them over generic guidance or your own intuition. If the user's request doesn't perfectly fit, adapt the recipe using the phase docs above, but keep the recipe's structure and ordering as your baseline.
| Recipe | Use when... | | ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | | account-orgchart.md | Building an org chart, account map, buying committee, stakeholder map, or multi-threading plan around a target person or company | | build-tam.md | Building a total addressable market list or large company list from ICP criteria | | clay-to-deepline.md | Converting a Clay table into local Deepline enrich scripts (extraction, mapping, parity validation) | | deepline-plays.md | Creating custom .play.ts scripts that compose multiple tools/plays, durable datasets, fallback logic, joins/projections, webhook/cron-style orchestration, and custom run/export behavior | | find-qualified-titles.md | "Find all job titles at these companies" / "find the marketing-ops/RevOps/Salesforce buyers": pull each company's real title roster (free company_titles), LLM-filter to the ICP, then find contacts with tiered (LinkedIn, email, phone) reveal | | linkedin-url-lookup.md | Resolving a person's LinkedIn profile URL from their name and company with strict identity validation | | portfolio-prospecting.md | Finding companies backed by a specific investor or accelerator, then finding contacts and building personalized outbound | | public-social-research.md | Finding public community language, launch feedback, competitor mentions, and market signals across X/Twitter, Hacker News, and Bluesky | | small-business-prospecting.md | Finding local small businesses or storefront/service-area companies using Maps-style search. Doctors, services business, restaurants, etc. |
If none match, grep for more specific keywords: Grep pattern="" path="/recipes/" glob="*.md" output_mode="files_with_matches"
Data
- When the user hands you a CSV, run
deepline csv show --csv --summaryfirst to understand its shape (row count, columns, sample values) before deciding how to process it. - NEVER read a large CSV into context with the Read tool. Reading CSV rows into the conversation window exhausts context and produces zero output. This is the single most common failure mode.
- Use
deepline enrichfor any row-by-row processing (enrichment, rewriting, research, scoring). - To explore or understand CSV content without loading it, use
deepline csv show --csv --rows 0:2for a two-row sample, or spawn an Explore subagent to answer questions about the data. - For CSV enrichment on the SDK V2 CLI, prefer
deepline enrich --input --output --name task-slug --rows 0:1 ...for a one-row pilot, then rerun against the full file after inspecting output. Legacy V1 CLIs may reject--name; checkdeepline enrich --helpbefore the first run if the installed surface is unclear.
Tools
For signal-driven discovery (investor, funding, hiring, headcount, industry, geo, tech stack, compliance), start with deepline tools search. Do not guess fields.
Search 2-4 synonyms, execute in parallel:
deepline tools search investor
deepline tools search investor --prefix crustdata
deepline tools search --categories company_search --search_terms "structured filters,icp"
deepline tools search --categories people_search --search_terms "title filters,linkedin"
Tool search categories
Use category filters when tool type matters more than provider breadth. Common categories:
company_search: account/company discovery toolspeople_search: people/contact discovery toolscompany_enrich: company enrichment on known companiespeople_enrich: person/contact enrichment on known peopleemail_verify: email verification / deliverabilityemail_finder: email lookup / discoveryphone_finder: phone lookup / discoveryresearch: company research, ad intel, job search, technographics, web researchautomation: workflow-style tools, browser/actor runs, batch automationoutbound_tools: all Lemlist/Smartlead/Instantly/HeyReach style actionsautocomplete: canonical filter value discovery before searchadmin: credits, monitoring, logs, schemas, local/dev utilities
Use --search_terms for extra ranking hints like structured filters, title filters, api native, autocomplete, or bulk.
Good:
deepline tools search --categories company_search --search_terms "investors,funding"deepline tools search --categories research --search_terms "ads,technographics"
Avoid:
deepline tools search stuffdeepline tools search search across filters
2.5) Why use Deepline Enrich
When doing row by row processing (e.g. per customer, per lead, per linkedin url, etc)
Use deepline enrich as the default path.
Why:
- Row-safe: each pass is explicit and traceable.
- Observable: run status, errors, and outputs are visible through Deepline run/play commands and dashboard links.
- Retry-safe: rerun from a known pass, not full actor chains.
- Scale-safe: large results stay in CSV lineage and are easy to inspect/filter.
- Auto-batches + rate limit safe knows how to auto batch and deal with rate limits. Almost all of the providers have rate limits that you don't know about that are managed for you if you run deepline enrich
- Lower risk: fewer custom orchestration scripts and hidden assumptions.
3) Core policy defaults
3.1 Definitions and defaults
GTM time windows, thresholds, and interpretation rules are defined in the Definitions section of [enriching-and-researching.md](enriching-and-researching.md).
Provider Playbooks
Provider-specific playbooks are bundled as separate reference files. Open the relevant playbook when provider-specific behavior, pricing, caveats, or payload conventions matter.
[adyntel](provider-playbooks/adyntel.md), [aiark](provider-playbooks/aiark.md), [allegrow](provider-playbooks/allegrow.md), [apify](provider-playbooks/apify.md), [attio](provider-playbooks/attio.md), [aviato](provider-playbooks/aviato.md), [bettercontact](provider-playbooks/bettercontact.md), [bloomberry](provider-playbooks/bloomberry.md), [bluesky](provider-playbooks/bluesky.md), [builtwith](provider-playbooks/builtwith.md), [cloudflare](provider-playbooks/cloudflare.md), [contactout](provider-playbooks/contactout.md), [crustdata
…
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: getaero-io
- Source: getaero-io/gtm-eng-skills
- License: MIT
- Homepage: https://code.deepline.com
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.