Skip to content

amw720386/InternFlow

Repository files navigation

InternFlow

A small FastAPI app for running People Data Labs person searches, enriching matches with AI, and stepping through LinkedIn and email drafts before you send anything. Built for people that NEED their next internship and want to take THEIR future into their own hands.

Internflow.Demo.mp4

Search → browse → configure in one place.

Search
Filters, dataset, run query

Search leads
Browse
Grid, filters, export to configure

Browse leads
Lead detail
Modal on Browse — full profile

Lead detail modal
Configure
Sender profile, drafts, queue

Configure outreach

THIS IS NOT A PRODUCTION PROJECT DEPLOYED TO A WEBSITE AS OF NOW. To use simply clone and follow the steps indicated below.


When to use it

You need… Intern gives you
Filtered PDL searches with scroll tokens and credit-aware batching Search UI with industry, location, dataset, and optional company filters
A queue of new leads while AI scores and reasons on each profile Browse with filters, selection, and export into a configure session
Ready-to-edit outreach tied to your sender name and portfolio link Configure: one lead at a time, copy buttons, Done / Deleted to clear the queue

How it flows

  1. Search — Run a PDL query (size capped, same filters reuse scroll state where applicable). Pending rows land in the database while enrichment runs.
  2. Browse — Filter, open detail, select leads, Export to configure.
  3. Configure — Enter sender details once, then walk the stack: copy drafts, mark Done or swipe/delete, until the export is finished.

Stack

  • Python 3.10+, FastAPI, Jinja2, SQLModel / SQLite (config.yaml points at the DB path)
  • Tailwind CSS built locally (npm run build:css); styles live in templates/ and ship as static/css/app.css
  • OpenAI (or your configured provider) for scoring and drafts in the enrichment path
  • People Data Labs API for search and enrichment (API key from environment)

Quick start

git clone <your-repo-url> internflow
cd internflow
python -m venv .venv
.venv\Scripts\activate          # Windows
# source .venv/bin/activate       # macOS / Linux

pip install -r requirements.txt

Set PDL_API_KEY and OPENAI_API_KEY (if you use enrichment). The app loads them from the environment (python-dotenv reads a .env file in the project root if present).

Build CSS once (or whenever templates change):

npm install
npm run build:css

Either run it via python or use your VSCode inbuilt run and debug functionality.

Default bind: http://127.0.0.1:5000 (see main.py).


Configuration

File / place Role
config.yaml SQLite path and DB flags
Environment / .env API keys

Contributing

Issues and PRs welcome. After changing HTML classes under templates/, run npm run build:css but don't commit your static/css/app.css.

About

A quick and easy pipeline for cold-call LinkedIn leads for your next internship!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages