Search docs...⌘/
Search docs...⌘/
DocsArchitectureThird-Party Integrations & Adapters
Third-Party Integrations & Adapters
How LeadForge OS integrates with third-party APIs, web scraping engines, and email protocols.
LeadForge OS integrates with Playwright scraping engines, Cheerio scrapers, DuckDuckGo searches, and standard SMTP/IMAP protocol clients to automate business discovery, lead enrichment, and outreach tracking.
Scraping & Enrichment Pipeline
The flowchart below maps the data flow and task orchestration steps from an initial Maps query to a fully enriched CRM contact:
Scraper Engines & Workers
Google Maps Scraper (scraper:maps)
- Runtime: Headless Playwright (Chromium) browser environment.
- Mechanism:
- Spawns Chromium and executes search queries (e.g., "SaaS companies in Austin").
- Side-scrolls search panels to trigger infinite scroll load.
- Extracts business names, websites, ratings, physical addresses, and phone numbers.
- Follows website redirects to capture canonical root domains.
- Stores company rows in SQLite and schedules domain-crawling events.
Website Crawler (crawler:website)
- Runtime: Node Fetch and Cheerio HTML parser.
- Mechanism:
- Executes BFS (Breadth-First Search) crawlers up to a maximum depth of 3 levels.
- Queries and conforms to rules in
robots.txtusingrobots-parser. - Scrapes DOM trees for
mailto:contacts, phone strings, and social URLs. - Ignores tracking pixels and hex-obfuscated spam email strings.
- Title-cases contact names and normalizes phone numbers.
LinkedIn Voyager Enricher (enrich:linkedin)
- Runtime: Node HTTP request simulator using active session cookies.
- Mechanism:
- Reads session cookies (
li_at) from encrypted secrets. - Simulates headers to validate active login and retrieves CSRF tokens.
- Queries LinkedIn's internal Voyager API to locate executive profiles (CEOs, Founders, Owners, VPs).
- DuckDuckGo Search Fallback: If the session cookie is invalid or expired, the enricher queries DuckDuckGo searches to find LinkedIn profile URLs.
- Reads session cookies (
Outreach Protocols
SMTP Outreach (outreach:campaign)
- Runtime: Nodemailer client.
- Mechanism:
- Decrypts workspace SMTP settings.
- Generates email text from sequence templates, replacing contact tags (e.g.,
{{contact.firstName}}). - Dispatches emails using configured rate limits to preserve sending IP reputation.
IMAP Polling (outreach:imap-poll)
- Runtime: ImapFlow client.
- Mechanism:
- Connects to IMAP servers using decrypted credentials.
- Queries incoming emails from the inbox.
- Correlates incoming emails with sent outreach logs using
In-Reply-ToandReferencesheaders. - If a reply matches, updates contact status to
REPLIEDand pauses outreach sequence steps for that lead.
Constraints and Trade-Offs
- Session Expirations: LinkedIn Voyager API enrichment requires active session cookies (
li_at). If cookies expire, enrichment falls back to less accurate DuckDuckGo search queries. - Rate Limiting: Headless browser automation must throttled to avoid IP blacklisting or CAPTCHAs.