Every morning I open the same four browser tabs before my first call: the prospect's LinkedIn profile, the company LinkedIn page, Google News for the company name, and their About page. Ten calls a day at fifteen minutes each — that is 2.5 hours of productive selling time consumed by tab-opening before noon.
I once skipped the routine for a back-to-back demo. The prospect opened with "As you can see from our Series B announcement last week..." I had no idea. I spent the first ten minutes recovering credibility I had already lost. That call did not convert.
At $100K OTE, 2.5 hours of recoverable daily research time is roughly $25K in annual selling capacity consumed by manual prep. There is a direct, automatable fix.
The Problem — 2.5 Hours a Day on Research That Should Take Zero Minutes
The manual pre-call research loop is structurally broken for anyone running more than five external calls a day. The process looks the same across every role: open LinkedIn for the person, scan their title, recent posts, and tenure; open the company LinkedIn page, check headcount and recent updates; Google the company name plus "news" and skim for anything published in the last month; hit the About page to verify the description matches what's in the CRM.
At ten calls per day and fifteen minutes of prep per call, that is 2.5 hours. At twelve calls, the math forces a choice: compress the prep to seven minutes per call and accept coverage gaps, or push the day's prep block into the 7–8am deep-work window and give up the only quiet hour in the morning.
The research is also done reactively. The rep opens a new tab ten minutes before the meeting. They miss that the prospect changed companies last month, that the company announced a layoff this morning, that the prospect posted last week about the exact problem the rep's product solves. At volume, these are the default outcomes of rushed manual prep — not edge cases.
Why Existing Sales Tools Don't Solve This for Early-Stage Teams
The enterprise sales stack has solved this problem. Gong Engage, Outreach, and Salesloft all include pre-call intelligence panels that surface CRM history, recent LinkedIn activity, and company news in a single view before each meeting. The catch: these platforms are priced at $100–$150 per seat per month, require team minimums of ten or more seats, and demand full CRM integration and structured onboarding before the pre-call brief feature is usable. For a two-person sales team, $200–$300 per month for a feature that represents roughly ten percent of platform value is not a rational purchase.
Crystal Knows ($49–$99/month) provides personality profiling and some LinkedIn enrichment but does not monitor company news, detect funding announcements, or flag job changes. It does not replace the manual Google News tab.
LinkedIn Sales Navigator ($80–$135/month) sends daily email digests of lead and account activity — but the failure is timing. A 7am digest is not a thirty-minutes-before-call trigger. It also requires each prospect to be manually saved to a leads list — not pulled automatically from calendar events. Reps need context thirty minutes before the call, not aggregated at morning standup.
Manual research (free) remains the default. Time cost, coverage gaps under compression, and freshness risk — news published this morning won't appear in the Google tab opened before your previous call — are structural failure modes that none of the above tools fix at an early-stage price point.
What a Working Pre-Call Brief System Delivers
The target state: a structured Slack DM arrives thirty minutes before every external meeting on the rep's Google Calendar — automatically, triggered by the calendar event, with zero manual inputs.
The brief contains: the prospect's current title, their last two LinkedIn posts with dates, company headcount and industry, the three most recent news articles mentioning the company (last thirty days), any visible funding signals, and a suggested opening question generated from the most relevant detected signal. The rep reads for ninety seconds while walking to their desk. They start the call as the most-informed person on it.
The system runs on Google Calendar as the trigger, Apify as the enrichment layer, n8n as the workflow engine, and Slack as the delivery channel. Total running cost: $5–$12 per month at ten to fifteen calls per day. The 2.5-hour daily research block disappears. The brief is waiting in Slack.
Architecture — The Three-Layer Pre-Call Intelligence System
Layer 1 — Calendar Trigger (n8n):
n8n polls Google Calendar every fifteen minutes for events starting in the next forty-five minutes. The filter logic extracts only external meetings — events where at least one attendee has an email domain that does not match the rep's internal company domain. The attendee's name and company domain are extracted from the calendar invite and passed downstream.
Layer 2 — Parallel Enrichment (Apify, three actors running simultaneously):
apify/linkedin-profile-scraper— pulls the meeting attendee's current title, company, tenure, and recent posts from the last thirty days. Seniority, previous roles, and any visible activity signals (comments, reposts, original posts) are included in the output.apify/linkedin-company-scraper— pulls company headcount, industry, location, recent company posts, and follower count. Useful for detecting recent hiring spikes, company announcements, and any executive activity visible on the company page.apify/google-news-scraper— searches the company name and common variations in Google News, returning articles from the last thirty days. Coverage typically includes funding announcements, acquisitions, product launches, executive hires or departures, and layoffs for any company with even minimal press presence.
The three Apify actors run in parallel via n8n's parallel branch node, with results merged before the brief assembly step.
Layer 3 — Brief Assembly and Slack Delivery (n8n):
A code node or template node concatenates the enrichment data into a structured brief. A conditional logic block selects the suggested opening question based on news type detected: funding → congratulatory opener focused on resource allocation; acquisition → opener focused on integration priorities; executive hire → opener referencing the new leadership direction; no news detected → default opener based on prospect's recent LinkedIn post.
The assembled brief is delivered as a formatted Slack DM to the rep thirty minutes before the meeting. Optional: a CRM write-back node logs enrichment data to the prospect's contact record in HubSpot or Pipedrive for permanent enrichment visibility after the call.
Step-by-Step Setup Guide (2–3 Hours, One-Time)
Step 1 — Google Calendar OAuth in n8n (20 minutes):
Configure n8n Google Calendar credentials using the Google Calendar node's built-in OAuth2 setup flow. Set the poll interval to fifteen minutes. Configure the attendee domain exclusion filter: the workflow checks each attendee's email domain against a list of your company's internal domains and skips any event where all attendees are internal.
Step 2 — Apify Actor Configuration (45 minutes):
Set up three actors in Apify using the included config files: LinkedIn profile scraper, LinkedIn company scraper, Google News scraper. Validate each actor with three to five test inputs — real LinkedIn URLs and company names — to confirm output structure matches the brief assembly node's expected field schema. Note that LinkedIn profile scrapers require a valid LinkedIn URL input; the workflow includes a name-to-URL resolution step using the Google search actor to convert attendee names and company domains to LinkedIn profile URLs.
Step 3 — Import n8n Workflow JSON (20 minutes):
Import the workflow JSON file directly into your n8n instance. Enter your credentials: Apify API token, Slack webhook URL or bot token, Google Calendar OAuth credentials, and optionally your HubSpot or Pipedrive API key for CRM write-back. Run a test trigger pointing at a scheduled test calendar event to confirm end-to-end data flow before enabling the live workflow.
Step 4 — Configure the Brief Template (15 minutes):
Review the Slack brief Markdown template. Customize: your company domain exclusion list, the suggested opener logic based on detected news type, and the fallback message displayed when Apify returns no data — which happens for prospects with private LinkedIn profiles or companies too small for Google News coverage. The fallback brief still delivers available data and notes the coverage limitation.
Step 5 — Passive Monitoring (no time required):
Let the workflow run through five to ten real upcoming meetings before adjusting. Review brief quality: are LinkedIn profiles matching correctly? Is Google News returning relevant articles? Tune the name-to-URL resolution logic if common names return incorrect profiles.
Step 6 — Optional CRM Write-Back (30 minutes):
Configure HubSpot or Pipedrive write-back to persist enrichment data to the contact record after each delivery. Mapped fields in the included schema: current title, headcount, last LinkedIn post, top news article, and brief delivery timestamp.
What the Brief Looks Like in Slack
📋 Pre-Call Brief — Sarah Chen @ Acme Corp | Call in 28 minutes
Sarah Chen — VP of Sales Operations | 14 yrs exp | Previously: Director of RevOps @ Contoso
Recent activity: Posted 3 days ago: "Finally time to retire our manual forecasting spreadsheet — evaluating tools this quarter"Acme Corp — 340 employees (+8% YoY) | SaaS / B2B | Austin, TX
Company news (last 30 days):
- April 15: Acme Corp raises $22M Series B (TechCrunch)
- April 9: Acme Corp named to Deloitte Fast 500 list
- March 28: Acme Corp hires new CRO from Salesforce
Suggested opener: "Congratulations on the Series B — with a new CRO on board, what's the biggest RevOps challenge you're solving in the next 90 days?"
Brief generated 29 min before meeting | Data from LinkedIn + Google News | Apify enrichment
This brief arrives while the rep is still on their previous call. The ninety-second read replaces the fifteen-minute tab-opening routine. The suggested opener is grounded in real data — a specific question attached to a specific event the prospect will recognize as informed.
This is what the buyers who have been burned by underprepared calls describe:
"I jumped on a demo call last week without knowing the company had just announced a big expansion. The prospect mentioned it in the first 30 seconds and I had to admit I hadn't seen it. That's a terrible way to start a call."
The brief prevents that moment. The announcement is in the news section. The call starts from informed credibility instead of recovery.
Another buyer on the daily arithmetic:
"I spend 2 hours a day doing pre-call research. I do 10 calls a day. 15 minutes each. I'd pay $30 right now for anything that automates this."
At ten calls per day, the research block is not an inconvenience — it is a structural constraint that compounds every working day. And the framing that comes up repeatedly:
"Google Calendar shows me who I'm meeting. The information I need — what they've been posting on LinkedIn, whether their company has been in the news — is all publicly available. I just need something that pulls it automatically and sends it to me before the call."
The data is public. The gap is the wiring that connects the calendar event to the enrichment layer to the Slack DM thirty minutes before the call starts. That wiring is what this system provides.
Scope Limits — What This System Does and Doesn't Cover
Does cover:
- External meetings scheduled via Google Calendar where attendee name and company email domain are visible in the invite
- LinkedIn public profile data — title, recent posts, company history — accuracy depends on profile completeness and public visibility settings
- Google News coverage for companies with at least minimal press presence, typically twenty or more employees or a notable funding event
- One-time enrichment at brief generation time — data reflects what was publicly available at the thirty-minute mark before the call
Does not cover:
- Internal meetings — correctly filtered out by domain exclusion logic and ignored
- Prospects with private LinkedIn profiles or highly restricted visibility settings — brief will note the limitation and deliver whatever public data is available
- Very early-stage companies with no Google News coverage — brief will include LinkedIn company data only
- Real-time CRM data including deal stage, previous call notes, and opportunity history — requires a separate CRM read node or manual addition
- Automated meeting scheduling or booking confirmation — the brief assumes the meeting is already on the calendar
Recommended scope limit: Start with external demos and discovery calls only. Filter out internal one-on-ones, team standups, and vendor calls by maintaining an internal domain allowlist. For multi-attendee calls, the workflow briefs on the primary external contact — typically the calendar organizer or the first listed external attendee.
Get the Pre-Call Research Brief Automation System
Pre-Call Research Brief Automation System — $29
Stop spending 2.5 hours a day on manual pre-call research. Everything required to deploy a calendar-triggered, Apify-enriched, Slack-delivered pre-call brief system for every external meeting — in a single afternoon setup:
- n8n workflow JSON — import-ready: Google Calendar poll → external attendee detection → parallel Apify enrichment (LinkedIn profile + company + Google News) → brief assembly → Slack DM delivery → optional CRM write-back
-
Apify actor configs (3) —
apify/linkedin-profile-scraper,apify/linkedin-company-scraper,apify/google-news-scraper— tested input/output schemas,since_dateand company domain input handling documented - Slack brief Markdown template — structured pre-call brief with prospect section, company section, recent news section, and context-specific suggested opener variants by news type
- Brief assembly logic — rules for summarizing LinkedIn activity, selecting top three news articles by recency, and generating suggested openers based on detected signal type (funding / acquisition / executive hire / layoff / no news)
- Google Calendar integration setup guide PDF — OAuth setup in n8n, external attendee domain filter logic, multi-attendee call handling, and name-to-LinkedIn-URL resolution configuration
- CRM write-back schema — HubSpot and Pipedrive field mapping for persisting enrichment data to contact records post-delivery
Running cost: $5–$12/month at ten to fifteen calls per day.
→ [GUMROAD_URL] — $29 one-time
Bundle Option: Pair with the Post-Call Follow-Up Email System (Pain #218) for the B2B Sales Call Intelligence Pack — $39. Automate research before every call and personalized follow-up after every call — eliminate both ends of the manual sales prep cycle from a single afternoon setup.
→ [GUMROAD_URL] — $39 bundle
Top comments (0)