Skip to content

AWLSEN/osv-outreach

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

osv-outreach

OSV Fellowship alumni outreach pipeline for Null Bites Lab grant review.

Current status

  • 80 fellows scraped from osvfellowship.com/winners
  • 22 with direct email (see data/fellows.csv)
  • 39 with Twitter only (manual DM fallback)
  • 12 with LinkedIn only
  • 7 unreachable via public channels

Layout

scripts/
  scrape_winners.mjs    Playwright fetch + "Load more" clicks
  parse_table.mjs       jsdom parse of the saved HTML into table rows
  normalize.py          Split year / name / country / project
  enrich_contacts.py    Fetch each personal/company site, extract emails
  build_csv.py          Roll everything into data/fellows.csv
  send_outreach.py      Envelope preview + Gmail send with PDF attached
templates/
  email_subject.txt     Subject template (tokens: {year})
  email_body.md         Body template (tokens: {first_name}, {year_short}, {project_hook})
data/
  fellows.csv           Final contact table
  sent.log.jsonl        Append-only send log (created on first send)
  raw/                  Intermediate scrapes + html_cache/ for reproducibility

Re-run from scratch

node scripts/scrape_winners.mjs
node scripts/parse_table.mjs
python3 scripts/normalize.py
python3 scripts/enrich_contacts.py
python3 scripts/build_csv.py

Send the outreach (when ready)

# preview envelopes only — prints every recipient, never hits Gmail
python3 scripts/send_outreach.py --dry-run

# send to every row that has a direct email (22 fellows)
python3 scripts/send_outreach.py --send

Uses gws gmail messages send on awlseninc@gmail.com. Attaches /Users/sam/workspaces/programming/NullBites-MyoFib1-ActionPlan.pdf. Idempotent: re-running skips any recipient already present in data/sent.log.jsonl.

Manual follow-up

  • Twitter-only (39): DM from Sam's account with the Drive PDF link
  • LinkedIn-only (12): connection request with a one-liner + PDF link
  • Unreachable (7): needs name search / LinkedIn lookup (Ian Lavoi Davis, Isaak Freeman, Miroslav Stodic, Justh (x2), Sandro Luna, Ramji Lal)

About

OSV Fellowship alumni outreach pipeline for Null Bites Lab grant review

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages