Guides

30 workflows. Copy, paste, close.

30 copy-paste Claude Code workflows for revenue teams. Enrichment, prospecting, CRM hygiene, outbound, and analytics recipes using Deepline CLI. Each one works today.

Deepline
30
copy-paste workflows for revenue teams
30+
providers available through Deepline
$0
platform fee - BYOK pricing only

How to use this page

Every recipe works today

Each workflow below is something you can run right now in Claude Code with Deepline installed. No setup guides. No theory. Just the command, what it does, and what comes out.

Format for each recipe:

  • What it does (one sentence)
  • The command or instruction (copy-paste ready)
  • What you get (expected output)

Install Deepline first if you have not already:

bash <(curl -sS https://code.deepline.com/api/v2/cli/install)

Then open Claude Code and start pasting.

Enrichment

Enrichment recipes (1-8)

1. Waterfall email enrichment

Find verified emails for a list of contacts by querying multiple providers in sequence. Stops at the first valid hit per row.

deepline enrich --input leads.csv --output enriched.csv \
  --with '{"alias":"email","tool":"name_and_domain_to_email_waterfall","payload":{"first_name":"{{First Name}}","last_name":"{{Last Name}}","company_name":"{{Company}}","domain":"{{Domain}}"}}'

Output: CSV with email, email_status, provider_used columns appended. Typical coverage: roughly 80-85% across 3 providers vs 55-65% from any single provider.

2. Bulk company enrichment

Enrich a list of company names or domains with firmographic data - employee count, industry, funding, headquarters.

deepline enrich --input companies.csv --output companies_enriched.csv \
  --with '{"alias":"company","tool":"peopledatalabs_enrich_company","payload":{"domain":"{{Domain}}"}}'

Output: CSV with company_size, industry, funding_total, hq_city, linkedin_url, and 20+ other fields depending on provider.

3. Phone number lookup with fallback

Find direct dial and mobile numbers with provider fallback when the first source misses.

deepline enrich --input contacts.csv --output phones.csv \
  --with '{"alias":"phone","tool":"contact_to_phone_waterfall","payload":{"first_name":"{{First Name}}","last_name":"{{Last Name}}","domain":"{{Domain}}","email":"{{Email}}","linkedin_url":"{{LinkedIn URL}}"}}'

Output: CSV with phone_number, phone_type (mobile/direct/hq), and provider_used. Mobile number coverage is lower than email coverage and varies significantly by provider and geography.

4. LinkedIn URL to email

Start with LinkedIn profile URLs and resolve to verified email addresses.

deepline enrich --input linkedin_profiles.csv --output emails.csv \
  --with '{"alias":"email","tool":"person_linkedin_to_email_waterfall","payload":{"linkedin_url":"{{LinkedIn URL}}","first_name":"{{First Name}}","last_name":"{{Last Name}}","domain":"{{Domain}}"}}'

Output: CSV with email, email_status, confidence_score. Works with both full LinkedIn URLs and /in/username format.

5. Email validation waterfall

Validate existing emails against multiple verification services to catch bounces before sending.

deepline enrich --input email_list.csv --output validated.csv \
  --with '{"alias":"email_validation","tool":"leadmagic_email_validation","payload":{"email":"{{Email}}"}}'

Output: CSV with validation_status (valid/invalid/catch-all/unknown), risk_score, and provider_used. Run this before every outbound campaign.

6. Domain to company data

Turn a list of website domains into full company profiles.

deepline enrich --input domains.csv --output company_data.csv \
  --with '{"alias":"company","tool":"peopledatalabs_enrich_company","payload":{"domain":"{{Domain}}"}}'

Output: CSV with company_name, employee_count, industry, tech_stack, social_profiles, and funding data. Useful for inbound lead qualification.

7. Job title normalization

Use Claude Code as the agent to standardize messy CRM job titles into clean categories.

Tell Claude Code:

Read contacts.csv. The "title" column has messy job titles like "VP Sales & Mktg",
"head of sales", "Senior AE". Normalize each to a standard format: level (C-Suite,
VP, Director, Manager, IC), department (Sales, Marketing, Engineering, etc), and
cleaned title. Output to contacts_normalized.csv.

Output: CSV with original_title, normalized_title, level, department columns. Claude Code handles the fuzzy matching - no regex needed.

8. Tech stack detection

Find out what technologies a list of companies use - CRM, marketing automation, analytics, infrastructure.

deepline enrich --input companies.csv --output tech_stacks.csv \
  --with '{"alias":"tech_stack","tool":"builtwith_domain_lookup","payload":{"domain":"{{Domain}}"}}'

Output: CSV with technology categories and specific tools detected. Filter for companies using HubSpot, Salesforce, or whatever tech signals matter for your ICP.

Prospecting

Prospecting recipes (9-14)

9. Find companies by ICP criteria

Tell Claude Code your ICP and let it build a target account list.

Tell Claude Code:

Use Deepline to find 50 SaaS companies, Series B-D, 100-500 employees, based in
the US. Use crustdata for company search. Output to target_accounts.csv with
company name, domain, employee count, funding stage, and HQ city.

Output: CSV with ICP-fit companies. Refine by adding filters: industry, tech stack, hiring signals.

10. Find contacts at target accounts

Take a list of target companies and find specific personas at each.

Tell Claude Code:

I have target_accounts.csv with company domains. For each company, find the VP of
Sales and Head of Marketing using Deepline with apollo and pdl providers. Waterfall
for emails. Output to contacts.csv.

Output: CSV with contact_name, title, company, email, linkedin_url for each matched persona.

11. Build a prospect list end-to-end

End-to-end: define ICP, find companies, find contacts, enrich emails. One prompt.

Tell Claude Code:

Build me a prospect list. ICP: B2B SaaS, 50-200 employees, US-based, Series A-B.
Target persona: VP of Sales or CRO. Find 30 companies using crustdata, then find
contacts at each using apollo. Waterfall emails through apollo,leadmagic,prospeo.
Validate all emails with zerobounce. Output final list to prospects.csv.

Output: Complete prospect list with validated emails, ready for outbound. The workflow runs in one Claude Code session.

12. Competitor customer discovery

Find companies using a competitor's product, then build a contact list for displacement campaigns.

Tell Claude Code:

Use Deepline with builtwith to find 50 companies using Outreach.io. Then find the
VP of Sales or Head of RevOps at each using apollo and pdl. Waterfall emails.
Output to outreach_customers.csv.

Output: CSV of competitor customers with decision-maker contacts. Use for displacement outbound.

13. Job change detection

Find contacts who recently changed jobs - warm outbound signal.

Tell Claude Code:

I have a list of 200 contacts in past_customers.csv with LinkedIn URLs. Use Deepline
with prospeo to check their current company. Flag anyone whose company changed since
our last data. Output changes to job_changes.csv.

Output: CSV with contact_name, old_company, new_company, new_title, email. Job changers typically show higher conversion rates than cold outbound.

14. Event attendee enrichment

Take a list of event attendees (name + company) and enrich to full contact profiles.

deepline enrich --input attendees.csv --output attendees_enriched.csv \
  --with '{"alias":"person","tool":"apollo_people_match","payload":{"first_name":"{{First Name}}","last_name":"{{Last Name}}","organization_name":"{{Company}}","domain":"{{Domain}}"}}'

Output: CSV with email, phone, title, linkedin_url appended. Run this within 48 hours of the event for timely follow-up.

CRM Hygiene

CRM hygiene recipes (15-19)

15. Deduplicate contacts

Find and merge duplicate contacts in a CRM export.

Tell Claude Code:

Read crm_export.csv. Find duplicate contacts based on email address and company
domain. For each duplicate group, keep the record with the most complete data
(most non-empty fields). Flag duplicates in a separate column. Output to
crm_deduped.csv and duplicates_removed.csv.

Output: Clean CSV with duplicates removed + a separate log of what was merged. Review the duplicates file before updating your CRM.

16. Normalize job titles across CRM

Standardize the mess of title variations in your CRM so lead routing and reporting work.

Tell Claude Code:

Read crm_contacts.csv. Normalize the "Job Title" column. Map to standard levels:
C-Suite, VP, Director, Manager, Individual Contributor. Map to departments: Sales,
Marketing, Engineering, Product, Finance, HR, Operations. Output to
crm_titles_normalized.csv with original_title, level, department columns added.

Output: CSV with consistent title taxonomy. Import back to CRM for accurate lead scoring and routing rules.

17. Re-verify stale emails

Take contacts that haven't been emailed in 90+ days and re-validate their emails.

Tell Claude Code:

Read stale_contacts.csv. These contacts haven't been emailed since 2025-12-01.
Re-validate all emails using Deepline with zerobounce and neverbounce. Flag any
that are now invalid or risky. Output to revalidated.csv with validation_status
and risk_score.

Output: CSV with current validation status. Remove invalids before your next campaign to protect sender reputation.

18. Merge duplicate companies

Consolidate duplicate company records from CRM exports.

Tell Claude Code:

Read crm_companies.csv. Find duplicates based on domain (strip www. and trailing
slashes). For each group, merge into one record keeping the most complete data.
Output to companies_merged.csv and a duplicates_log.csv showing what was merged.

Output: Clean company list + audit trail. Domain matching catches duplicates that name matching misses ("Acme Inc" vs "Acme, Inc." vs "acme.io").

19. Flag churned contacts

Identify contacts at companies that are no longer customers, so you can move them to re-engagement sequences.

Tell Claude Code:

I have two files: crm_contacts.csv (all contacts) and active_customers.csv
(current customer domains). Flag any contact in crm_contacts whose company domain
is NOT in active_customers. Output to churned_contacts.csv.

Output: CSV of contacts at churned accounts. These are warm leads for win-back campaigns - they already know your product.

Outbound

Outbound recipes (20-24)

20. Build a personalized sequence

Create personalized outbound emails using enriched company and contact data.

Tell Claude Code:

Read enriched_contacts.csv. For each contact, write a 3-step email sequence:
Step 1: Intro referencing their company's recent funding round or tech stack.
Step 2: Follow-up with a specific pain point for their role.
Step 3: Breakup email.
Keep each email under 100 words. No fluff. Output to sequences.csv with
contact_email, step_number, subject, body columns.

Output: CSV ready to import into Instantly, Lemlist, or any sequencing tool. Real personalization, not "Hi FIRST_NAME, I noticed COMPANY_NAME..."

21. A/B test subject lines with enrichment data

Generate subject line variants based on different enrichment signals per contact.

Tell Claude Code:

Read enriched_contacts.csv. For each contact, write 2 subject line variants:
Variant A: Reference their tech stack (e.g., "Replacing Outreach at COMPANY?")
Variant B: Reference their role + company size (e.g., "Sales team of 50+
needs this")
Output to ab_subjects.csv with contact_email, variant_a, variant_b columns.

Output: CSV with testable subject lines grounded in real data, not generic templates.

22. Territory assignment

Assign contacts to sales reps based on geography, company size, or industry.

Tell Claude Code:

Read enriched_contacts.csv and territory_rules.csv. Territory rules define which
rep owns which region/industry/company size. Assign each contact to the correct
rep based on the rules. Output to assigned_contacts.csv with rep_name,
rep_email columns added.

Output: CSV with territory assignments. Import into CRM for round-robin or push directly to rep inboxes.

23. Signal-based trigger campaigns

Monitor for buying signals and automatically build outbound lists when triggered.

Tell Claude Code:

Use Deepline with crustdata to find companies that raised funding in the last 30
days, Series A-C, 50-300 employees. Then find the VP of Sales at each using
apollo and pdl. Waterfall emails through apollo,leadmagic. Validate with
zerobounce. Output to signal_triggered_list.csv.

Output: Fresh prospect list based on a real buying signal. Schedule this weekly in a CLAUDE.md instruction for continuous pipeline generation.

24. Re-engagement for stale leads

Build re-engagement outreach for leads that went cold.

Tell Claude Code:

Read stale_leads.csv (leads with no reply after 3+ touchpoints). For each lead,
re-enrich with Deepline to get current title and company (they may have moved).
Then write a short re-engagement email that acknowledges the gap. Output to
re_engagement.csv with updated_email, updated_title, subject, body.

Output: CSV with refreshed contact data and new outreach copy. Job changers get a congrats angle. Same-role contacts get a "things have changed" angle.

Analytics

Analytics recipes (25-27)

25. Provider comparison report

Compare enrichment providers head-to-head on your actual data.

Tell Claude Code:

Take sample_contacts.csv (100 contacts). Run enrichment separately through apollo,
leadmagic, prospeo, and pdl using Deepline. Compare: match rate, email validity
rate, cost per enrichment. Output a comparison table to provider_comparison.csv.

Output: Data-driven provider comparison on your ICP, not generic benchmarks. Use this to optimize your waterfall order.

26. Cost per enriched contact

Calculate the actual cost of your enrichment pipeline per valid result.

Tell Claude Code:

Read the Deepline enrichment logs from the last run. Calculate: total API calls,
total cost, successful enrichments, failed enrichments. Compute cost per
successful enrichment and cost per valid email. Output summary to
enrichment_costs.csv.

Output: Cost breakdown by provider and operation. Identifies which providers are expensive relative to their hit rate.

27. Match rate analysis

Analyze which providers perform best for different segments of your data.

Tell Claude Code:

Read enrichment_results.csv (output from a waterfall run). Group by industry,
company size, and geography. For each segment, show which provider had the
highest match rate. Output to match_rate_analysis.csv.

Output: Segment-level provider performance. You might find that Apollo is strongest for US tech companies while LeadMagic wins in EMEA. Adjust your waterfall per segment.

Misc

Utility recipes (28-30)

28. CSV cleanup and standardization

Fix messy CSVs before enrichment: inconsistent columns, encoding issues, duplicate headers.

Tell Claude Code:

Read messy_data.csv. Standardize column names to snake_case. Remove duplicate
rows. Fix encoding issues. Split "full_name" into first_name and last_name.
Normalize country names to ISO 3166 codes. Output to clean_data.csv.

Output: Clean, standardized CSV ready for enrichment. Run this first to avoid bad data flowing downstream.

29. Enrich and score in one pass

Combine enrichment with lead scoring based on your ICP criteria.

Tell Claude Code:

Read raw_leads.csv. Enrich each with Deepline using crustdata for company data
and apollo for contact data. Then score 0-100 based on: company size 50-500
(+30), SaaS industry (+20), VP/Director title (+25), US/UK based (+15),
valid email (+10). Output to scored_leads.csv sorted by score descending.

Output: Enriched and scored lead list. Your reps start calling from the top.

30. Weekly pipeline refresh

Set up a recurring workflow that re-enriches and re-validates your active pipeline every week.

Add to your CLAUDE.md:

## Weekly Pipeline Refresh
Every Monday:
1. Export active pipeline contacts from HubSpot
2. Re-validate all emails using deepline with zerobounce
3. Re-enrich any contacts missing phone numbers using leadmagic,lusha
4. Flag contacts whose company data changed (new funding, headcount shift)
5. Output refreshed_pipeline.csv and changes_log.csv

Output: Fresh pipeline data every week. Catches job changes, bounced emails, and company updates before they cause problems.

These 30 recipes are starting points. The real power is combining them. Run recipe 11 to build a list, recipe 5 to validate emails, recipe 20 to write personalized sequences, and recipe 25 to track which providers worked best. That is a complete outbound motion in four prompts.

FAQ

Frequently asked questions

Do I need to be a developer to use these workflows?+

No. Every recipe here runs from a terminal with Claude Code. You paste a command or describe what you want in plain English. Claude Code handles the execution. If you can write a Slack message, you can run these workflows.

How much do these workflows cost to run?+

Deepline uses BYOK (bring your own keys) with zero platform fee. You pay provider rates directly. A typical waterfall enrichment across 3 providers costs $0.02-0.05 per contact. Running 1,000 enrichments costs roughly $20-50 total depending on providers used.

Can I customize the waterfall provider order?+

Yes. The --providers flag accepts a comma-separated list in priority order. Deepline queries each provider left to right and stops at the first valid result. Put your cheapest or most accurate provider first.

Do these recipes work with Cursor and Codex too?+

Yes. Deepline CLI works in any terminal environment. Claude Code, Cursor, Codex, plain bash scripts - the commands are the same. The Deepline skill is optimized for Claude Code but the CLI is universal.

How do I set up Deepline for these workflows?+

Run: bash <(curl -sS https://code.deepline.com/api/v2/cli/install). Then run deepline auth status to verify. Add your provider API keys and you are ready to run any recipe on this page.

Related

Keep reading

Continue Reading

Start running these recipes today

Install Deepline and run waterfall enrichment, CRM hygiene, and prospecting workflows from Claude Code. BYOK - zero platform fee.