Arachnode crawls startup job boards, finds hiring manager contacts, and drafts cold emails, running entirely on your machine. No subscriptions. No API bills. No black-box agents.
Three steps. Fully automated once configured.
Arachnode scans Wellfound, YC Jobs, Remotive, Naukri, and LinkedIn continuously. New roles matching your stack appear in your dashboard within minutes.
The contact discovery service finds publicly available emails and LinkedIn profiles for hiring managers and engineers at target companies using OSINT and the GitHub API.
A local LLM (Ollama + Mistral) personalizes cold emails based on each company's product. You review and send, nothing goes out automatically.
Wellfound, YC, Remotive, Naukri, LinkedIn, Internshala — one command.
Redis-backed dedup means you never see the same job twice across sources.
OSINT pipeline finds hiring manager emails from public GitHub and web data.
Ollama runs locally; no OpenAI key needed, no usage costs.
docker-compose up. That's it. Everything starts in the right order.
Seven independent services. Pick one, understand it fully, improve it.
Agent instruction files for Claude Code, Cursor, Blackbox, and AntiGravity are already in the repo. The context is written for you.
Redis Streams connect every service. Add a new data source without touching existing code.
Four-layer testing: unit, integration, contract, and E2E. testcontainers handles infrastructure.
Adding a new job platform is three files and a class. The pipeline picks it up automatically.
If you have Docker installed, this is the entire process.
Ollama is optional. Without it, email templates still work — just without AI personalization.
| Variable | Required | Description |
|---|---|---|
JOBSEEKER_ROLE |
Yes | e.g. "Backend Engineer" |
JOBSEEKER_STACK |
Yes | e.g. "Python,Go,FastAPI" |
GMAIL_ADDRESS |
For sending | Your Gmail address |
GMAIL_APP_PASSWORD |
For sending | Gmail app password (not your main password) |
OLLAMA_BASE_URL |
Optional | Default: http://localhost:11434 |
Each service does one thing. All of them together do everything.
| Service | Language | Port | Key dependency | Status |
|---|---|---|---|---|
| Crawler | Python | - | Scrapy | stable |
| Platform Scraper | Python | 8002 | Playwright | stable |
| Aggregator | Python | 8000 | FastAPI | stable |
| Contact Discovery | Python | 8003 | GitHub API | stable |
| Email Generator | Python | 8004 | Ollama | stable |
| Scheduler | Python | - | Celery/Cron | stable |
| Gateway | JavaScript | 8080 | Express | stable |
Why not agentic workflows?
AI agents are the automation scripts of their era - impressive until a webpage changes its navbar. JobHunter uses deterministic microservices as the foundation. Agentic orchestration is on the roadmap, built on top of reliable infrastructure rather than instead of it.
JobHunter is open source and actively looking for contributors. All skill levels welcome.
Agent instruction files for Claude Code, Cursor, Blackbox, and AntiGravity are already in the repo under ai_assistance/. An orchestrator manages specialised subagents for code auditing, bug detection, security review, DB schema analysis, and more. Point your AI editor at the repo; the context is already written.
View agent files →Each service is independent and well-documented. Pick one you understand and improve it. New job platform? New email template? Better deduplication logic? All of these are scoped, reviewable PRs.
Browse open issues →Documentation improvements, README translations, testing on different platforms, reporting broken scrapers when sites update their HTML, all of these matter and all are welcome.
Contribution guide →Open for contributions · MIT Licensed · Built by the community, for the community