Total Messages in Queue
-
Across all BDRs
Ready to Send
-
Reviewed & approved
Pending Review
-
Awaiting admin review
Connection Requests
-
New prospect outreach
About Me Connect
-
🤝 In queue
Surround Connections
-
🔗 In queue
Llama checks each contact's title & company
connections
Profiles cached in linkedin_profile_cache for 90 days · stale after 12 months
connections to Reserve Queue
contacts per organization to have a message created in the past 30 days
Counts messages created in connect_queue across all BDRs (deleted messages excluded)

Post Reply Messages

Generate messages from LinkedIn posts for each BDR. Set a target for new prospects (connection requests) and/or current connections (reply messages). Leave either at 0 to skip that type.

How it works:
  • 👤 New Prospects: Finds LinkedIn posts from uncontacted prospects and generates a connection request message
  • 🤝 Current Connections: Finds LinkedIn posts from existing connections and generates a reply message
  • 📨 All messages are saved to the review queue for approval before sending
Choose which BDRs to generate messages for, then optionally filter their prospects by batch below.
Pick a BDR from your selection above to load their available batches, then choose which batch to restrict the run to.
Only shows groups assigned to the BDR selected above (in Connect Hypothesis Documentation). Pick a BDR, then click Load Groups.
Use Import Batch to target a specific scan/import run, Move Batch for prospects moved from another BDR, or Group Batch for custom groups created in Prospect Cleanup. The selected batch filter applies to all checked BDRs above.
Connection request messages per BDR (0 to skip). Set high (e.g. 500–2000) to process all prospects.
Reply messages to existing connections per BDR (0 to skip). Set high (e.g. 500–2000) to process all contacts.
Advanced Options

Organization Story Search

Search for specific types of stories about organizations, then pair them with contacts from those organizations. Great for targeted campaigns around specific topics.

How it works:
  • 👤 Each contact is processed one at a time
  • 🤖 Llama generates a tailored search query based on the contact's title (or use your own template)
  • 🔍 Brave searches for recent news about that contact's organization
  • ⭐ Good articles are identified, rated, and verified (full download)
  • ✍️ If a great article is found, a personalized message is generated and saved for review
Leave blank — Llama generates a tailored search query per contact based on their job title and company (recommended).  |  Enter a template to override: use [Organization Name] and [Contact Title] as placeholders.
Filter which contacts are processed by job title keywords (comma-separated). Leave blank to process all eligible contacts regardless of title.
Select a specific batch to limit generation to contacts from that batch only. Import, Move, and Group batches can each be filtered independently.
How many contacts to research one-by-one (1-500). Contacts never searched are prioritized first.
How many Brave search queries to run per contact (1–5). More queries = more articles found, but more API usage. Default: 1.
AI rates 1–10 whether the contact's title makes them likely involved in the story. Contacts scoring below this are skipped. Default 7 — lower for more messages, raise for tighter filtering.
AI Story Grading Filter Optional

 AI will review each discovered news story and score it 1–10 based on your criteria. Only stories meeting the minimum score will be used to generate connection messages — tighten or loosen the filter per search.

Describe exactly what makes a story relevant enough to use. Be as specific or broad as you need.
1 — Keep almost all Score ≥ 8 — very strict filter 10 — Very strict
How this works:
  • Contact-by-Contact: Each contact is processed individually — one search per contact
  • Llama-Tailored Search: Unless you override, Llama writes a unique search query per contact based on their title
  • Railway Verifies: Full article is downloaded and checked before a message is written
  • Review Queue: Messages land in the review queue (fast_connect_review.html) for approval before sending
  • API Usage: 1–5 Brave searches per contact (set by Brave Searches per Contact below, default 1) + 1 Llama call per contact
  • Story Grading: AI scores each story 1–10 — stories below your threshold are discarded.

LinkedIn Profile-Based Messages

What this does:
  • Searches LinkedIn profiles and extracts complete data (title, company, experience, education, etc.)
  • Generates personalized opening messages based on profile data using AI
  • Allows you to add custom text before/after the AI-generated opening
  • Select specific contacts, or auto-select the top N by LinkedIn connection count (most connections first)
  • Saves messages to connect_queue with full profile data for review

Filter by Batch (optional)

Use Import Batch to target a specific scan/import run, Move Batch for contacts moved from another BDR, or Group Batch for custom groups created in Prospect Cleanup. Setting multiple filters applies all simultaneously.

Step 1: Select BDR(s)

All messages will be assigned to this BDR. Select BDR first to load their contacts.

Step 2: Selection Mode

Note: Selection mode only applies to Single BDR mode. Multiple BDR mode uses auto selection (most connections first).
Deprioritized contacts always go last regardless of connection count

Step 3: Message Template

Available Variables
Use these variables in your text - they'll be replaced with actual contact data:
{{firstName}} - First name
{{lastName}} - Last name
{{title}} - Job title
{{company}} - Organization
This text will appear before the AI-generated opening message
AI-Generated Opening Message

Punchy, personalized 2-sentence message based on LinkedIn profile
Example: "Saw your profile. Ten years leading data teams in healthcare. Impressive."

77 chars
This text will appear after the AI-generated opening message

Generation Progress

Generated Messages - Review & Send

About Me Connect Messages

What this does:
  • Reads your About Me profile — I Statements (background, education, passions, experience) and We Statements (company highlights)
  • Scrapes the prospect's LinkedIn profile data
  • Fetches the prospect's last 30 LinkedIn posts
  • Maverick Call 1: Finds all commonalities between you and the prospect (personal and company)
  • Maverick Call 2: Ranks commonalities — shared passions > hobbies > career > education > location
  • Maverick Call 3: Generates a message using your chosen Message Focus — from purely prospect-focused (no company mentions) to company-forward (shared business ground)

Step 1: Select BDR

The BDR's About Me statements are used to find personal connections with prospects.

Step 2: Filter by Batch (Optional)

Limit generation to contacts from a specific batch. Leave all filters blank to use contacts from any batch.

Use Import Batch to target a specific scan/import run, Move Batch for contacts moved from another BDR, or Group Batch for custom groups by org type/title created in Prospect Cleanup. Setting multiple filters applies all simultaneously.

Step 3: How Many Contacts?

Each contact requires 3 Maverick AI calls + a profile scrape + post fetch. Start with 5 to test.

Step 4: Message Focus

Control how much the message is about the contact versus highlighting shared company interests or value.

Balanced: Leads with what the two of you have in common personally, and adds company context when there's a clear shared interest.

Step 5: AI Strategy Instruction (Optional)

Provide an overarching instruction that guides the entire message generation strategy. This is the highest-priority AI directive — it overrides and shapes all other instructions including Message Focus.

Leave blank to rely solely on your Message Focus selection and BDR profile instructions.

Generation Progress

Generated Messages - Review & Send

Organization Complement

Search for exciting news about organizations your prospects work at, then generate a short punchy complement message sent to every person at that organization.

How it works:
  • 🔍 News mode: Uses Gemini 2.5 Flash Lite to search for exciting news in the past 12 months — awards (Best in KLAS, Most Wired), partnerships, expansions, recognitions
  • 🏆 Differentiator mode: Finds the one thing the organization is most known for (ideal for smaller orgs where recent news is sparse) — message: "Was reading about how [org] [differentiator]"
  • 🔄 Both mode: Tries News first; if no news is found, automatically falls back to Differentiator
  • 🤖 Uses Llama Maverick AI to craft a short, punchy complement message
  • 📨 Optional prefix text, line breaks, and suffix are fully configurable below
  • 👥 Message is sent to ALL contacts at that organization (not just one)
Select a specific import run to limit generation to contacts from that batch only.
How many organizations to generate complements for (1-500)
NEWS COMPLEMENT Settings applied when generating News-style messages
Leave blank to search for any exciting news at the organization.
Your text replaces everything before the colon. Use {{company}} to insert the org name — e.g. "Had to reach out after seeing the news about {{company}}" → "Had to reach out after seeing the news about Acme Health:". Leave blank to use the selected style above.
Appears before the complement message. Supports {{company}}, {{firstName}}, {{lastName}}, {{title}}.
AI-Generated News Complement

Punchy message highlighting recent achievements
Example: "Acme Health is making headlines: Best in KLAS, new Microsoft partnership. WOW"

0 chars
Appears after the complement message. Supports {{company}}, {{firstName}}, {{lastName}}, {{title}}.
Important Notes:
  • All Contacts: Every eligible contact at the organization receives the message
  • Smart Cycling: Organizations are selected oldest-first so every org gets a message before any is repeated
  • 45-Day Block: Contacts with recent approved/sent messages are skipped
  • Positive Only: System only uses achievements the org would be proud of
  • Est. Time: ~3-5 seconds per organization

Harvest Run

Runs Post Reply → Internet Search for your harvest pool contacts — the same two engines used in the Full AI Run, focused on your already-connected prospects. Llama first screens each contact's message history, then generates the best available message.

How it works for each contact:
  1. Eligible contacts come from your configured pools (sub-pools from custom groups / prospect scans / manual harvest labels), with the same min-days rule as Harvest Pool
  2. Llama history pre-check — reviews the contact's full message history. Skips anyone who opted out, scheduled a meeting, or is deep in an active conversation (configurable below).
  3. Enrichment freshness check — if the contact hasn't been enriched in the last 60 days, their LinkedIn profile is re-scraped and their current employer is confirmed (and corrected if they've changed jobs) before any post or news lookup, so we never congratulate them on news from a company they've left.
  4. Stage 1 — Post Reply — Apify checks for a recent LinkedIn post. If found, classifies it, picks the best one, and generates a warm reply (same as the Post Reply tab). Scored against your Fit Quality Threshold.
  5. Stage 2 — Internet Search (if no recent post) — Llama writes a custom search query, searches Brave for recent org news, and generates a short comment about the news. Story grade threshold is always 7. Choose between a Personal (ties the news back to them) or Exciting News (simple reaction, no tie-back) comment style below.
  6. Messages are saved as Harvest Messages and appear in Fast Connect Review for your sign-off
Note: Harvest messages are saved as follow-up messages (not connection requests) since these contacts are already in your network. Messages have no character limit.

Step 1: Select BDR

Uses server-side harvest pool rules (same as Harvest Pool stats)
Choose All pools to include everyone in your harvest pool, or a specific sub-pool (same rules as Harvest Pool).
Your harvest pool can include LinkedIn connections you already had before using this tool. Check this to only process contacts whose connection came from a HeyReach connection request we sent (a CONNECTION_REQUEST_ACCEPTED event on your seat), or that is manually labeled "Pando Executive Networking originated" in Harvest Pool admin. Contacts labeled "Already connected" are skipped only when there is no HeyReach accept on file for them — that label is also written by the My Leads pool-assign and webhook-import tools, so it isn't by itself proof the connection pre-dates us.

Step 2: Configure

How many eligible contacts to process. Each takes ~15–30 seconds.
Pulled from harvest_pool_configs (same as Harvest Pool). Edit on Harvest pool admin if needed.
Maverick only keeps questions scoring at or above this. Higher = stricter.
Conversational Conversational Formal
Very casual Conversational Balanced Professional Formal
Applies to Post Reply and Internet Search messages. Default is conversational — warm and human, not corporate.

Step 3: Message History Pre-Check

Before generating a message, Llama reviews the contact's full message history to decide whether outreach is appropriate. Contacts who have opted out, scheduled a meeting, or are deep in a conversation are automatically skipped.

Llama will skip contacts who:
  • Have explicitly opted out or asked not to be contacted
  • Have already had a meeting, call, or demo with your team
  • Are already deep in an active sales conversation
  • Have expressed strong disinterest or asked to be removed

Step 4: Contact / Org Type Filter (optional)

Uses Meta Llama 4 Maverick to evaluate each contact's organization and role against your criteria — same engine as Smart Cleanup. Enable this to skip harvest pool contacts that don't fit your target profile before message generation runs.

Step 5: Internet Search Message Style

Only applies when Stage 2 — Internet Search generates the message (no recent post was found). Choose how the news comment should be worded.

Personal assumes the contact was involved in the news and reacts to them directly. Exciting News just reacts to the news itself — no assumptions about their role, so it's a safer choice when you're less sure how closely the news ties to their day-to-day work.

Harvest Run — Progress

Starting... 0%
0
Processed
0
Messages Queued
0
Post Reply
0
Internet Search
0
History Skip
0
No Fit — Skipped
0
Errors

Full AI Generate

Smart, end-to-end AI message generation. For each prospect, the system tries the best-fit message method in the right order — using the exact same engines as the Post Reply, Internet Search, and About Me Connect tabs so any improvements to those are automatically reflected here.

Smart routing — how it works for each prospect:
Stage 1 — Post Reply (tried first for everyone)
Apify scrapes the prospect's recent LinkedIn posts. Llama evaluates whether any post is "worthy" (recent, substantive, non-hiring). If yes — a personalised reply message is generated. If no worthy post is found, moves to Stage 2.
Stage 2 — Classify prospect
Llama evaluates seniority from their title (C-Suite / VP / SVP / Director = senior). Org size is looked up from the Prospect Organizations table; if missing, Gemini searches the web. Senior + large org (500+ employees) routes differently than others.
Stage 3 — Route to best message method
Senior + large org
1st: Internet Search — news-hook message
Fallback: About Me Connect — personal commonality
All others
1st: About Me Connect — personal commonality
Fallback: Internet Search — news-hook message
⚙️ Prerequisites: Fill out both your Outreach Strategy and About Me profile in About Me for best results. The AI uses both to personalise messages and route correctly.

Step 1: Select BDR

Messages will be generated for this BDR's prospects
Use Import Batch to target a specific scan/import run, Move Batch for contacts moved from another BDR, or Group Batch for custom groups created in Prospect Cleanup. Multiple filters apply simultaneously.
Requires a Hypothesis Group above — Railway will run its Review Instructions (rate/improve/exclude) against each message right after it's saved, one at a time, instead of waiting for the whole run to finish. Watch the log below for each message's rating as it comes in, and open Fast Connect Review to approve and send messages while later prospects are still being processed — nothing is submitted automatically.
If you're confident this prospect list is already clean, turn exclude sensitivity down (or off) so Opus focuses purely on rating and improving message text instead of also holding contacts back. Rating and text improvements always run regardless of this setting.
Runs your configured Final AI Review rules (Llama/Opus/Qwen/DeepSeek checks) on each message right after Opus Review finishes for it — using the actual post/news/profile data that was used to build the message, not a reconstruction. Any concerns are saved onto the message and show up as flags in Fast Connect Review.

Step 2: Configure Generation

How many prospects to run through the smart routing pipeline. Each prospect takes ~30–90 seconds depending on which stage is reached.
Conversational Conversational Formal
Very casual Conversational Balanced Professional Formal
Applies to Post Reply, About Me, Internet Search, and Profile Message. Default is conversational — warm and human, not corporate.
Post Reply → Classify → Internet Search or About Me Connect
The pipeline picks the best method for each contact based on the strategy selected above. It uses the same prompts and logic as the individual tabs.
If Post Reply, About Me, and Internet Search all return nothing, generate a short profile-based opening message as a final fallback (same as the Profile Messages tab).
When enabled, prospects with profile enrichment data are prioritised and sorted by LinkedIn connection count (highest first) before generation begins. Prospects without any stored connection count are processed last. Always on for Pull from Workspace (contacts are selected and processed most connections → least).
Runs a Brave search once per organization (e.g. recent or upcoming M&A activity at the health system), distills the findings into a short verified brief, and shares that brief — plus your usage instructions — with every message generated for contacts at that organization (Post Reply, About Me, Internet Search, all of them).

Full AI Smart Generate — Progress

Starting... 0%
0
Processed
0
Post Reply
0
↳ via Repost
0
About Me
0
Internet Search
0
Profile Msg
0
Errors
0
No Message

Generation Progress

Generation Results

Surround Connections

How it works:
  • Finds prospects who accepted connection requests from other BDRs — same-company colleagues or BDRs at other companies
  • Llama scans existing conversations — skips prospects who declined or had deep engagement with any colleague
  • Checks prospect title and organization against your target criteria
  • Claude Opus builds a message using your custom prompt, referencing the colleague connections by name
  • Saved to Fast Connect Review under the Surround Connections source filter
  • When approved, the prospect is automatically added to the BDR's prospect list
⚙️ Requirements: Choose Colleagues (same Customer) or All BDRs to pull connections from any company. Connections are sourced from HeyReach contacts for each selected source BDR. Message generation uses the Railway endpoint /api/connect/surround-connections-generate.

1 Select BDR

The system will find prospects already connected to the source BDRs you select below.

2 Hypothesis Group Filter

Optionally limit Surround Connection targets to contacts who belong to one or more hypothesis groups. Groups default to those assigned to the selected source BDR(s). Check Show all groups to pick groups from any company. Leave all groups unchecked to include all eligible contacts.

(select a BDR to load groups)

3 Target Criteria

Describe what types of contacts to include. Llama checks each prospect's title and organization against this criteria.

Leave blank to skip the target filter and include all eligible prospects.

4 Colleague Conversation Filter

Only target contacts whose response category with your colleague(s) matches the categories you select. A contact qualifies if any colleague's conversation has one of the selected response categories.

No Reply = colleague accepted connection but no messages were exchanged (or conversation was never classified). Ideal for Surround Connections re-engagement.

5 Message Prompt for Opus

Tell Opus what the message should accomplish. The names of connected colleagues are automatically injected. Opus will follow all standard rules: no em-dashes, no exclamation marks, casual-professional tone, under 300 characters.

Example prompt: "Please reference how my colleague(s) connected with them. We are inviting them to participate in our collaborative (no cost) — hope they don't mind another invitation."

Example output: "Hi Ryan — my colleagues Markenzie Sligar and Bob Young told me they connected with you on LinkedIn. Hope you don't mind one more connection and invitation to join our outcomes collaborative (at no cost). We know you are busy, but hoping to catch you for 15 minutes."

6 How Many Contacts?

Each contact requires a Llama conversation scan + Opus message generation. Start with 5 to test.

Surround Connections Generation Progress

Generated — Review in Fast Connect Review

Post Topic Search Messages

How it works:
  • Apify scrapes LinkedIn posts matching your search term
  • Brave researches each author's company size and type
  • Llama evaluates each contact's title, company, and post content against your criteria
  • Claude Opus writes a <200-character connection request referencing their post
  • Messages appear in Fast Connect Review under the Post Topic Search filter

1 Select BDRs — messages distributed evenly across selected BDRs

0 BDRs selected
Loading BDRs…

2 Post Search Settings

Keyword or phrase to find in LinkedIn posts
Every post author that passes criteria gets a message — up to this limit per BDR.
Leave blank for no limit

3 Contact Criteria

Llama evaluates each contact's title, company (with Brave research), and post content against this criteria. All conditions must be satisfied for a contact to be kept.

Example criteria:
"Only keep companies that likely have between 50 and 2000 employees (medium sized). Only keep contacts that work in HR, Facilities, or are a senior executive leader. Only keep contacts whose post suggests they are actively hiring or looking for workforce solutions."

4 Message Prompt for Opus

Tell Opus what the message should accomplish. Claude will personalize it to the contact's post and title. Messages are kept under 200 characters.

Example prompt:
"Reference that I saw they are hiring and invite them to learn about our outcomes collaborative that helps organizations with workforce challenges."

Generation Progress

No recent Post Topic Search jobs found. Start a generation above.

Fast Prospect Messaging

Send the same message (with slight Llama AI variations) to multiple prospect contacts at once. Select a BDR, optionally filter by batch or connection count, choose an organization or load uncontacted contacts, compose a message, and send.

How it works: Messages go to the connect queue — either for Admin Review (then forwarded to the BDR) or directly approved. Llama AI creates a slight variation for each contact so outreach is never identical. No exclamation marks or em-dashes will be added unless they are already in your original message.
Mode:
Multi-BDR mode loads a shared campaign batch (or each BDR's full list) for 2+ BDRs, applies the connections filter, excludes anyone either BDR has already contacted, and splits what's left evenly.

Step 1: Select BDR

All messages will be assigned to this BDR.

Harvest Fast Prospect

Send a direct message (with optional Llama AI variations) to your current connections — pulled from a harvest pool, or from a list of LinkedIn URLs you upload. Select a BDR, choose your contacts, compose your message, and send.

How it works: Loads contacts either from your harvest pool or from an uploaded URL list (checked against current connections — direct messages can only go to existing connections). Optionally opens each message with a short sentence about a recent LinkedIn post or company news (same engine as Harvest Run). Llama AI creates a slight variation per contact so outreach is never identical. On live pushes, contacts who already have a LinkedIn conversation with this BDR can be sent directly into that conversation thread (scheduled, up to 50/day) while the rest go through the Fast Message campaign — see Step 8.

Step 1: Select BDR

All messages will be assigned to this BDR.