Skip to content

sridherj/linkedout-oss

Repository files navigation

 _     _       _            _
| |   (_)_ __ | | _____  __| |
| |   | | '_ \| |/ / _ \/ _` |
| |___| | | | |   <  __/ (_| |
|_____|_|_| |_|_|\_\___|\__,_|
                            \
                             █▀▀█ █  █ ▀█▀
                             █  █ █  █  █
                             █▄▄█ ▀▄▄▀  █

LinkedOut

License: Apache 2.0 Python 3.12+

linkedout-landing.vercel.app

Query your LinkedIn network in plain English. Local-first, AI-native, your data stays on your machine.

"Who do I know at Series B AI startups in SF?"

"Compare my top 3 connections in data science for a founding engineer role"

"Draft a warm intro to someone at Anthropic"

LinkedOut works as a skill inside Claude Code, Codex, or Copilot. You ask questions, the skill queries your local PostgreSQL database.

Setup

1. Clone and install prerequisites

git clone https://github.com/sridherj/linkedout-oss.git
cd linkedout-oss
./setup            # checks Python 3.12+, PostgreSQL 18+, pgvector, installs skills

2. Run the setup wizard

Open Claude Code (or Codex/Copilot) in the repo and say:

"set up LinkedOut"

This triggers /linkedout-setup, which walks you through everything: database creation, LinkedIn data import, seed data, embeddings, and affinity scoring.

Want to try it first? Accept the demo offer during setup to load 2,000 sample profiles with pre-computed everything. No API keys needed, takes ~2 minutes. You can switch to your real data anytime.

3. API keys

Setup will ask for two optional API keys. Here's what each one does and why:

OpenAI API key — for vector embeddings (semantic search)

LinkedOut converts every profile into a vector embedding so you can search by meaning, not just keywords. "ML engineers with startup experience" finds people even if their title says "Data Scientist at a Series A company."

  • With OpenAI: faster, higher quality embeddings. ~$0.01 per 1,000 profiles.
  • Without: uses free local model (nomic-embed-text-v1.5), ~275 MB download, slower but zero cost.

Get a key at platform.openai.com/api-keys.

Apify API key — for profile enrichment (full career details)

Your LinkedIn CSV export only includes name, URL, company, and title. Apify fetches the full profile: complete work history, education, skills, certifications. This is what powers affinity scoring ("career overlap with you") and deep queries ("who has both ML and product experience?").

  • Cost: ~$4 per 1,000 profiles. Apify gives $5 free credit/month — enough for ~1,250 profiles.
  • Multiple keys supported: configure up to 9 Apify keys for round-robin rotation — useful for pooling free-tier credits across accounts.
  • Without: LinkedOut works, but with stub profiles (name + current company only). Search and affinity will be shallow.

Get a key at console.apify.com/account/integrations.

Where keys are stored

Setup writes your keys to ~/linkedout-data/config/secrets.yaml (chmod 600, never committed). You can also set them as environment variables:

export OPENAI_API_KEY="sk-..."
export APIFY_API_TOKEN="apify_api_..."

What You Get

  • Natural language network queries — ask anything about your connections
  • Affinity scoring — rank connections by relationship strength (career overlap, shared education, interaction signals)
  • Company intelligence — pre-curated seed data on 47K+ companies with funding history
  • LinkedIn CSV import — bring in your exported connection data
  • Google/iCloud contacts import — merge your address book with LinkedIn connections
  • Chrome extension (experimental) — crawl LinkedIn profiles as you browse for richer data. Not thoroughly tested yet — expect rough edges.

Guides

Architecture

You --> Claude Code / Codex / Copilot
          \--> /linkedout skill
                 |--> psql queries (structured lookups)
                 \--> linkedout CLI (import, embed, affinity)
                        \--> PostgreSQL (local)

[Optional] Chrome Extension --> Backend API (localhost:8001) --> same PostgreSQL

CLI Reference

All commands live under the linkedout namespace. Run linkedout --help for the full list, or linkedout <command> --help for any specific command.

Command What it does
import-connections Import LinkedIn CSV export
import-contacts Import Google/iCloud contacts
compute-affinity Calculate relationship strength scores
embed Generate vector embeddings for search
status Quick health check
diagnostics Full system diagnostic

Project Structure

linkedout-oss/
|-- backend/        Python/FastAPI backend + CLI
|-- extension/      Chrome extension (WXT/TypeScript)
|-- skills/         Cross-platform skill definitions
|-- seed-data/      Seed data scripts
\-- docs/           Documentation and specs

Roadmap

See ROADMAP.md.

Contributing

See CONTRIBUTING.md.

License

Apache 2.0 — see LICENSE.

About

Your network. Finally searchable. Search your LinkedIn connections with natural language. Open source. Runs on your machine.

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors