Automated Lead Pipeline — Daily SOP
Purpose: Pull targeted HNI/accredited prospects from LinkedIn Sales Navigator, extract with PhantomBuster, enrich & score with paid LLMs (Gemini/ChatGPT), and import approved leads into Zoho CRM and Zoho Campaigns. No other tools allowed.
Scope & Constraints
- Allowed tools only: LinkedIn (Sales Navigator), PhantomBuster, Gemini/ChatGPT, Zoho (CRM, Campaigns, Docs). Calendly link for meetings.
- No external enrichment/verification: No Apollo, Clearbit, ZoomInfo, Hunter, NeverBounce, Google Sheets, etc.
- Data storage: Zoho Docs (canonical CSVs) & Zoho CRM (system of record).
Prerequisites
- LinkedIn Sales Navigator access + the LinkedIn account(s) used to send requests.
- PhantomBuster with access to:
- Sales Navigator Search Export
- LinkedIn Profile Scraper
- Network Booster
- Zoho CRM (create Leads/Contacts), Zoho Campaigns, and Zoho Docs/Drive.
- Paid LLM access (Gemini and/or ChatGPT).
- Calendly link (existing):
https://calendly.com/nick-levenstein/30min - Shared Zoho Docs folder:
Leads/PhantomRuns/<YYYY-MM-DD>/
Daily Run — Checklist (45–90 min)
- Morning Prep (10 min)
- Open Sales Navigator → Saved search: “Accredited Investors — Primary List”.
Filters (keep unchanged unless Nick approves):- Titles: Founder, Managing Partner, CIO, Family Office, Investor
- Company type: Family Office, Hedge Fund, Private Equity
- Geography: US, UK, Singapore, Hong Kong, Switzerland, Europe
- Keywords: AUM, family office, invests, LP
- Copy the Sales Navigator search URL (not individual profiles).
- Open Sales Navigator → Saved search: “Accredited Investors — Primary List”.
- PhantomBuster Export → Profile Scrape (20–40 min)
- Create a new run of Sales Navigator Search Export. Input: the saved search URL.
- Settings:
- Export limit: up to 500; typical daily: 50–200
- Rate: Phantom defaults; prefer 1 large run/day or smaller 50-profile batches.
- Output filename:
Leads-YYYY-MM-DD.csv
- Run LinkedIn Profile Scraper with the exported profile URLs.
Fields to extract:profile_url, full_name, first_name, last_name, headline, current_company, location, about_snippet, last_activity, public_positions - Download the profile CSV as
Profiles-YYYY-MM-DD.csvand upload to Zoho Docs →Leads/PhantomRuns/<YYYY-MM-DD>/
- LLM Enrichment & Scoring (30–60 min)
- For each row in
Profiles-YYYY-MM-DD.csv, feed: headline, about_snippet, current_company, public_positions, location into Gemini/ChatGPT. - Use this exact prompt (batch up to 20 profiles if supported):
You are an analyst. Here is a LinkedIn profile (public fields only): Headline: {headline} About / Snippet: {about_snippet} Company: {current_company} Positions: {public_positions} Location: {location} Based only on this public info, respond in strict JSON with fields: - prob_accredited_score: integer 0-100 (higher => likely HNI / accredited investor). Base this on title signals (Founder, Managing Partner, Family Office), company type indicators (family office, hedge fund, PE), and entrepreneurship/exit signals. - tags: array of short tags from [family-office, hedge-fund, founder, angel, vc, wealth-manager, recruiter, consultant, other] - personal_line: one short personalization sentence (max 12 words) referencing something visible in the headline/about. - suggested_connection_message: one short non-salesy connection message (max 220 characters) suitable for a LinkedIn connection request. - suggested_followup_message: one short follow-up DM (2 sentences max) for after connection.- Save JSON outputs to
Enriched-YYYY-MM-DD.jsonl(one JSON per line) in the same Zoho Docs folder. - Convert to CSV (inside the allowed tools; e.g., paste JSON into ChatGPT and ask for CSV with headers below; download and store as
Enriched-YYYY-MM-DD.csv):
profile_url full_name first_name last_name headline current_company location about_snippet public_positions prob_accredited_score tags personal_line suggested_connection_message suggested_followup_message Use these exact headers for smooth Zoho import. - For each row in
- Approval & Thresholding (5–10 min)
- Approve for outreach:
prob_accredited_score ≥ 65and not taggedrecruiterorconsultant. - Borderline review: scores 55–64 with tags
family-office,hedge-fund, orfounder→ manual discretion. - Exclude:
recruiter,consultant, or missing senior signals.
- Approve for outreach:
- Zoho CRM Import (Leads) (10–15 min)
- Prepare
Zoho-Import-YYYY-MM-DD.csvwith only approved rows and these mappings:CSV Column Zoho Lead Field Notes first_name First Name last_name Last Name Required in Zoho full_name Lead Name (if applicable) Optional current_company Company headline Title Or parse from headline location City / Country Map as available profile_url LinkedIn Custom field: URL about_snippet Description Trim to Zoho limits public_positions Other Details Optional prob_accredited_score Lead Score Numeric 0–100 tags Tags Comma-separated personal_line Personalization Custom field (Text) - Zoho CRM → Leads → Import → Map fields as above. Enable de-duplication on LinkedIn URL + Full Name + Company.
- Post-import, create a view filter: Created Today AND Lead Score ≥ 65.
- Prepare
- Zoho Campaigns List (Optional, 5–10 min)
- Create/maintain list: Prospects—HNI Outreach.
- Add only those who explicitly consent or who opt-in via form. For pure LinkedIn outreach, keep messaging on-platform.
- Outreach (LinkedIn) (10–20 min)
- Use PhantomBuster Network Booster or manual sending (respect daily limits). Personalize with
personal_line. - Connection message: Use the profile’s
suggested_connection_message(≤ 220 chars). - After acceptance, send the profile’s
suggested_followup_message. Include Calendly if appropriate:https://calendly.com/nick-levenstein/30min
- Use PhantomBuster Network Booster or manual sending (respect daily limits). Personalize with
Governance & Audit
- Canonical storage: All daily files live in
Zoho Docs → Leads/PhantomRuns/<YYYY-MM-DD>/:Leads-YYYY-MM-DD.csvProfiles-YYYY-MM-DD.csvEnriched-YYYY-MM-DD.jsonlEnriched-YYYY-MM-DD.csvZoho-Import-YYYY-MM-DD.csv
- Run Log (append daily in a Zoho Doc): date, SN URL used, export count, #approved, #imported, #connections sent, acceptance %, booked calls.
- KPIs (weekly): Acceptance rate (target ≥ 25%), Reply rate (≥ 10%), Booked call rate (≥ 3%), CR to Opportunity (team-defined).
Platform & Compliance Notes
- Respect LinkedIn limits: Keep daily connection volume conservative to avoid restrictions. Prefer quality over quantity.
- Public data only: Use only the fields exported via Phantoms from public profiles.
- Consent: Do not mass-email scraped profiles via Zoho Campaigns unless they’ve opted in. Keep first contact on LinkedIn.
- Data retention: Retain raw exports for audit; remove disqualified profiles from CRM views; honor delete requests promptly.
Messaging Templates (Fallbacks)
Connection (≤220 chars)
Hi {FirstName} — noticed your work with {Signal}. We manage AI-assisted derivatives strategies for HNIs/family offices. Happy to swap notes; if useful, we can schedule a quick intro.
Follow-up (after accept)
Thanks for connecting, {FirstName}. We run AI-driven options overlays for BTC with conservative risk controls. If it’s relevant, here’s my calendar: https://calendly.com/nick-levenstein/30min — otherwise glad to keep in touch.
QA Before Import
- Spot-check 10 profiles: title seniority, company type, obvious mis-tags.
- Verify
prob_accredited_scorerationale matches title/company signals. - Ensure names split correctly (no ALL CAPS; fix known parsing glitches).
- Remove recruiters/consultants unless explicitly relevant.
Troubleshooting
Phantom blocked / low results
- Reduce batch size to 50; add delays; confirm LinkedIn session cookie is fresh.
- Run at consistent local time; avoid concurrent sessions.
LLM JSON formatting issues
- Re-prompt: “Return strict JSON only, no prose, one object per profile.”
- If batching, separate objects with newlines for
.jsonl.
Zoho import rejects rows
- Ensure Last Name present; shorten long fields; confirm custom fields exist (LinkedIn URL, Personalization).
- Enable de-duplication on LinkedIn URL + Full Name + Company.
Weekly Review (15–30 min, Fridays)
- Update the saved SN search only with Nick’s approval.
- Tune thresholds if acceptance or call rates drift < targets.
- Document any filter changes at top of this SOP (changelog).
Last updated: 22 Sep 2025 (UTC+8)
Lead Scraping SOP
How we turn permit/project data into verified contacts and launch outreach via Zoho.
1) Prerequisites
- Access to permit/project source: properties-scrapper.levenstein.net/admin
- AI tools: ChatGPT, Gemini, Grok (same prompt set)
- Zoho CRM & Zoho Campaigns access
- PhantomBuster account (LinkedIn People Search)
- Focus cities (initial): Chicago (CHI), New York (NYC), San Francisco (SF), Los Angeles (LA)
2) Process Overview
- Pull permits/projects → extract Architects, Contractors, Developers (company → human contacts).
- Enrich with AI (names, emails, phones, titles, socials) + write intro letter draft.
- Consolidate to a single CSV/XLSX matching the Zoho CRM data model; QA for dupes/invalids.
- Import to Zoho CRM list “Potential Nailed It Clients”.
- Send initial campaign via Zoho Campaigns; monitor bounces/invalids.
- Broaden via PhantomBuster (city + keyword filters); reconcile into master list.
- Add LinkedIn profile URLs to each contact (AI assist).
- After 7 days, start phone follow-ups for warm leads.
3) Step 1 — Extract source data
- Download latest cleaned permits/projects (example): cleaned_permits…xlsx.
- Identify targets by role: Architects, Contractors, Developers/Owners.
- Filter to focus cities (CHI/NYC/SF/LA). Keep others in a “bonus” sheet.
4) Step 2 — Enrich with AI
Use identical prompts in ChatGPT, Gemini, and Grok to replace company entries with verified human contacts.
AI Prompt (copy & use as-is)
You are enriching construction project leads. For each company (architect, contractor, developer/owner) in CHI, NYC, SF, LA:
1) Find best human contact(s): Full Name, Title, Work Email, Work Phone, Company, Company Website, LinkedIn URL, City.
2) If multiple, pick 1–2 senior/owner/BD roles.
3) Output a table with the exact columns above.
4) Draft a brief intro email to introduce GetNailedIt.com (light, friendly line tailored to them).
5) Avoid personal emails; prefer role or direct work emails. Flag unverifiable items as “Unknown”.
Save outputs (examples kept internally): ChatGPT Enhanced Project Contacts and Introduction Letters.docx; Grok grok_report.pdf; Gemini Final researches (ChatGPT, Grok & Gemini).docx.
5) Step 3 — Consolidate & QA
- Merge all AI outputs into one master sheet (FINAL LIST of potential clients from Aneep and AI researches.xlsx).
- Standardize columns to match the Zoho Data Model.
- Deduplicate by
Emailthen byFull Name + Company. - Validate emails with Zoho (soft check) and mark
Status = Invalidwhen bounced or clearly wrong. - Retain non-focus cities on a separate tab; do not mix with the import tab.
6) Step 4 — Import to Zoho CRM
- Export the “Import” tab as CSV/XLSX matching Zoho fields (see Data Model).
- Import into Zoho CRM under list: Potential Nailed It Clients.
- Spot-check a few records in CRM for correct field mapping.
7) Step 5 — Launch Zoho Campaign
- Create a campaign for the imported segment; use the approved copy.
- Send and monitor the report (example report link): Zoho Campaigns Report.
- Record metrics: Delivered, Opens, Clicks, Bounces (invalids). Move invalid emails to a cleanup tab.
Note: Internet-found emails aren’t 100% reliable. Expect some invalids; Zoho flagged 15/44 in a prior run.
8) Step 6 — Expand via PhantomBuster
- Run LinkedIn People Search for construction roles in CHI/NYC/SF/LA using:
- Export results from PhantomBuster (free tier is limited). File name convention:
PhantomBuster_<CITY>_<YYYY-MM-DD>.csv - Reconcile with the master sheet; only add net-new contacts after QA.
9) Step 7 — Add LinkedIn profiles (AI assist)
- Use AI to look up LinkedIn profile URLs for each contact lacking one.
- Write to
LinkedIn URLcolumn; flag “Unknown” if not reasonably verifiable. - Save as Final List — contacts_with_linkedin.xlsx.
10) Step 8 — Phone follow-up (T+7 days)
- Seven days after the email send, call warm leads (opened/clicked/replied).
- Use call notes fields in CRM; set Next Action + Reminder.
- Move qualified leads into the pipeline stage per Sales SOP.
Appendix — Zoho Data Model (Contacts)
Required/Recommended columns for import:
- First Name
- Last Name
- Title
- Phone
- Mobile (optional)
- Company
- Website
- City
- State/Province
- Country
- LinkedIn URL
- Lead Source (e.g., “Permits + AI”)
- Status (Valid/Invalid/Unknown)
- Notes
If no human name is available, use First Name = “PIC” and Last Name = Company Name (temporary placeholder).
Appendix — Intro Email Template
Subject: Quick intro — coordinating construction projects with AI
Hi {{FirstName}},
We’ve been following recent permits and projects in {{City}} — impressive work by {{Company}}.
GetNailedIt.com helps teams keep schedules, RFIs, and documents tight (and visible to owners)
without extra admin. Teams tell us it saves hours weekly and catches issues before they escalate.
If helpful, I can show a 10-minute demo tailored to {{Company}}’s current workflows.
Would {{TwoDateOptions}} work?
Best,
{{YourName}}
GetNailedIt.com
{{YourEmail}} · {{YourPhone}}
Appendix — QA Checklist
- No duplicate emails or (Name+Company) pairs
- Company names standardized; websites present where available
- City is one of CHI/NYC/SF/LA (extras on separate tab)
- Emails look valid (no personal domains unless necessary)
- LinkedIn URLs verified or marked “Unknown”
- Zoho import mapping verified on 3–5 samples
- Campaign report reviewed (bounces removed/flagged)
- Follow-ups scheduled (T+7) for opens/clicks/replies