Safety & audit
Scraper limits apply to local sync. Blocklist and audit log are shared via your Neon database.
Daily SN scrape limit · Scrapes available
10 left
- Outreach mode
- Draft-only — nothing is posted or connected automatically
- Daily batch
- Top 10 qualified leads per day with AI drafts
- SN profile sync
- 0 / 10 profiles used today (10 remaining)
- Posts per profile
- Up to 5 recent posts read for warming comments
- Enrich & score (Vercel)
- Up to 10 leads per button click — click again if you have more pending leads
- GitHub sync
- ~10–30 min per run; weekday auto-sync at 11:00 UTC. Complete pipeline runs cloud steps on existing leads while sync finishes in the background
- Company cap
- Max 2 leads from the same company in one daily batch
Scraper tuning (daily scrape cap, delays) is configured via environment variables — see Settings → Safety. Scraping Sales Navigator may violate LinkedIn's Terms of Service; use conservative limits.
- Daily scrape limit
- 0 / 10
- Profile delay
- 4s–10s
- Posts per profile
- 5
10 remaining today
Random delay between profile visits
- Sync method
- GitHub Actions
- LinkedIn session
- Cookies configured
Trigger sync from the dashboard — scraping runs in GitHub Actions.
GitHub Secrets has LinkedIn cookies — ready to sync from the dashboard.
GitHub Actions uses exported LinkedIn cookies — not a browser on Vercel. Re-export monthly or when sync fails with a login timeout.
- On your computer:
vercel env pull .env.local - Sign in once:
bun sn:sync --login - Export cookies to GitHub Secrets:
bun sn:export-cookies | gh secret set LINKEDIN_SESSION_COOKIES --repo owner/lnkr - Set GITHUB_SYNC_SESSION_CONFIGURED=true on Vercel after cookies are stored.
No blocked contacts yet.
- sn syncSnListConfig
scraped 10
- scrape updateLead
- scrape updateLead
- scrape updateLead
- scrape updateLead
- scrape updateLead
- scrape updateLead
- scrape updateLead
- scrape updateLead
- scrape updateLead
- scrape updateLead
- generate contentGeneratedContent
- generate contentGeneratedContent
- generate contentGeneratedContent
- generate contentGeneratedContent
- generate content errorLead
No object generated: response did not match schema.
- generate contentGeneratedContent
- generate content errorLead
No object generated: response did not match schema.
- generate content errorLead
No object generated: response did not match schema.
- generate content errorLead
No object generated: response did not match schema.
- generate content errorLead
No object generated: response did not match schema.
- generate contentGeneratedContent
- generate contentGeneratedContent
- generate contentGeneratedContent
- generate contentGeneratedContent
- generate content errorLead
No object generated: response did not match schema.
- generate contentGeneratedContent
- generate content errorLead
No object generated: response did not match schema.
- generate contentGeneratedContent
- generate contentGeneratedContent
- generate content errorLead
No object generated: response did not match schema.
- generate content errorLead
No object generated: response did not match schema.
- generate content errorLead
No object generated: response did not match schema.
- generate content errorLead
No object generated: response did not match schema.
- generate contentGeneratedContent
- generate content errorLead
No object generated: response did not match schema.
- generate contentGeneratedContent
- generate contentGeneratedContent
- generate contentGeneratedContent
- generate content errorLead
No object generated: response did not match schema.