Autonomous job hunting platform that finds tech internships, discovers recruiters, finds their emails, and auto-applies to jobs — all while you sleep.
- Searches LinkedIn Jobs — finds tech internships posted in the last 24 hours across 10 search categories
- Clicks into each job — extracts full description, company info, salary, apply method
- Finds recruiters — searches LinkedIn for HR/recruiting contacts at each company using text-based parsing
- Finds emails — 9-method enrichment pipeline: Hunter.io, Apollo.io, Snov.io, People Data Labs, LinkedIn profile scrape, Google search (3 queries), GitHub profile, SMTP pattern verification (15 patterns)
- Auto-applies — fills LinkedIn Easy Apply forms using your resume + local LLM (Ollama) for screening questions
- Dashboard — React UI to monitor jobs, contacts, applications, and trigger pipelines
coldreach-dashboard/ React + Vite + Tailwind — analytics UI
coldreach-companion/ Node.js + Playwright + Express — automation engine
coldreach-db/ Supabase PostgreSQL migrations
docker/ Docker Compose for cloud deployment
- Node.js 18+
- Ollama (for answering application questions locally)
- A Supabase project (free tier)
- Chrome browser (Playwright uses your logged-in session)
- Create a free project at supabase.com
- Run migrations in SQL Editor (in order):
coldreach-db/migrations/001_initial_schema.sql coldreach-db/migrations/002_rls_policies.sql coldreach-db/migrations/003_auto_apply.sql - Copy your Project URL and keys from Settings > API > Legacy tab
cd coldreach-companion
cp .env.example .env
# Edit .env — add Supabase keys, Chrome profile path, API keys
npm installDrop a profile.json in coldreach-companion/ with your details (name, contact info, work history, skills, embedded resume). The companion loads it on startup and extracts the resume PDF automatically.
Drop your resume PDFs in coldreach-companion/resumes/:
swe.pdf— Software Engineeringml.pdf— Machine Learninggeneral.pdf— Fallback
ollama pull llama3.2:3b# Terminal 1
ollama serve
# Terminal 2
cd coldreach-companion && npm start
# Terminal 3
cd coldreach-dashboard && npm install && npm run devDashboard at http://localhost:5173 — go to Settings, enter Supabase credentials, save.
| Endpoint | Method | Description |
|---|---|---|
/status |
GET | Companion health check |
/run-pipeline |
POST | Full pipeline: jobs > companies > recruiters > emails |
/recruiter-pipeline |
POST | Recruiter finding only (pass companies array or auto-search) |
/find-recruiters |
POST | Find recruiters for specific companies |
/auto-apply-all |
POST | Apply to all saved Easy Apply jobs (dry_run default: true) |
/apply |
POST | Apply to a single job by job_id |
/jobs |
GET | List jobs (filter: status, limit) |
/profile |
GET/PUT | User profile |
/resumes |
GET | List available resume PDFs |
/scrape-jobs |
POST | Search job boards for listings |
| Time | Action |
|---|---|
| 8:00 AM | Search LinkedIn for new tech internships (last 24h) > find companies > find recruiters > find emails |
| 9:00 AM | Auto-apply to all saved Easy Apply jobs |
| 9:00 PM | Evening batch: search + apply again |
Set AUTO_APPLY_LIVE=true in .env to enable real submissions (default is dry-run with screenshots).
Tried in order, stops at first hit:
- Hunter.io API
- Apollo.io API
- Snov.io API
- People Data Labs API
- LinkedIn profile visit (scrape contact info)
- Google search (3 query variations)
- GitHub profile search
- SMTP pattern brute force (15 email patterns verified via MX handshake)
cd docker
docker compose up -d --build
docker exec coldreach-ollama-1 ollama pull llama3.2:3bServices: nginx (dashboard on port 80) + companion (port 3333) + ollama (port 11434).
Works on any Linux VM — tested on Oracle Cloud always-free ARM (4 CPU, 24GB RAM).
| Layer | Tech |
|---|---|
| Dashboard | React, Vite, TailwindCSS, Recharts, Supabase JS |
| Companion | Node.js, Express, Playwright, node-cron |
| Database | Supabase (PostgreSQL) |
| LLM | Ollama (llama3.2:3b, local) |
| Email APIs | Hunter.io, Apollo.io, Snov.io, People Data Labs |
| Email Verify | SMTP RCPT-TO handshake |
| Deployment | Docker Compose, nginx |
MIT