Skip to content
naeemsabir1Public

About

⚡ AI-powered job aggregator that scrapes 13 platforms, scores every listing with AI, and delivers the best developer opportunities daily. Free & open source.

Topics

Resources

Contributing

Stars

4 stars

Watchers

0 watching

Forks

Repository files navigation

⚡ DevHunt

Stop scrolling job boards. Let AI bring the best developer gigs to you.

Python FastAPI License: MIT Stars

13 scrapers · AI-powered scoring · Email extraction · Daily curation · Beautiful dashboard

Quick Start · Features · Scrapers · Setup AI · Add a Scraper · Contributing


😩 The Problem

You're a developer looking for freelance projects or remote jobs. Your current workflow:

  1. Open LinkedIn → scroll → nothing good
  2. Open Reddit r/forhire → scroll → mostly spam
  3. Check Remotive → few results
  4. Try Craigslist gigs → sketchy posts
  5. Repeat across 10+ sites daily
  6. Waste 2+ hours and find nothing

⚡ The Solution

DevHunt scrapes 13 platforms simultaneously, extracts contact emails, uses AI to score every listing, and serves you the 20 best opportunities on a beautiful dashboard — fully automated, every day.

You run one command. DevHunt does the rest.

✨ Features

Feature Description
🔍 13 Job Scrapers Reddit, LinkedIn, Twitter/X, Hacker News, Craigslist, Remotive, Arbeitnow, Working Nomads, Golang Jobs, Contra, FreelancerMap, Discord, Google
🤖 AI Scoring Every job gets scored 1-10 by LLaMA 70B based on YOUR skills profile — scams get auto-rejected
📧 Email Extraction Automatically finds contact emails, Reddit DM links, and apply URLs
🎯 Daily Curation Top 20 picks delivered daily — 10 with direct contact, 10 apply-only
🖥️ Beautiful Dashboard Dark-mode UI with score rings, verdict badges, skill tags, red flag warnings
🔄 Auto-Pipeline Runs every 24 hours automatically. One-click manual refresh
🛡️ Spam Filter AI auto-rejects IT support, data entry, MLM, crypto scams, and non-dev work
📊 Browse All Jobs Searchable, filterable database of every job ever scraped
🔌 REST API Full JSON API for building your own integrations
🆓 100% Free No paid APIs required. AI scoring works with free NVIDIA NIM tier

🚀 Quick Start

Get DevHunt running in 60 seconds:

# 1. Clone
git clone https://github.com/naeemsabir1/DevHunt.git
cd DevHunt

# 2. Install
python -m venv venv
venv\Scripts\activate        # Windows
# source venv/bin/activate   # macOS/Linux
pip install -r requirements.txt

# 3. Configure
cp .env.example .env
# Edit .env with your settings (see below)

# 4. Launch
python app.py

Open http://localhost:8000 — DevHunt starts scraping immediately.

💡 No API key? DevHunt still works! Without an AI key, it uses built-in heuristic scoring. Add a key later for premium AI-powered scoring.


🔍 13 Built-In Scrapers

# Source Type What It Scrapes
1 Reddit Social r/forhire, r/freelance_forhire, r/hiring + 18 more subreddits
2 LinkedIn Professional Freelance developer job listings worldwide
3 Twitter/X Social Tweets from people looking to hire developers
4 Hacker News Tech "Who's hiring" threads, freelance project posts
5 Craigslist Classifieds Computer gigs from 35 cities across US, UK, Canada, Australia
6 Google Search Meta-search Finds hiring posts on Facebook, Instagram, and across the web
7 Discord Community Developer freelance channels and server posts
8 Remotive Job board Remote developer jobs (free API, no auth)
9 Arbeitnow Job board EU + remote developer positions (free API)
10 Working Nomads Job board Curated remote-only jobs (free API)
11 Golang Jobs Niche Go developer positions (RSS feed)
12 Contra Freelance Independent professional project opportunities
13 FreelancerMap Freelance IT freelance projects from Europe

Want more? Add your own scraper in 5 minutes or request one.


🤖 AI Scoring Setup

DevHunt uses NVIDIA NIM (free tier) to AI-score every job. Here's how to set it up:

1. Get a Free API Key

  1. Go to build.nvidia.com
  2. Sign up (free)
  3. Generate an API key

2. Add to .env

NVIDIA_API_KEY=nvapi-your-key-here

3. Customise Your Profile

Edit the USER_PROFILE in your .env to match YOUR skills:

USER_PROFILE=React/Next.js developer with 3 years experience. Looking for frontend freelance projects. Skills: TypeScript, React, Next.js, Tailwind, Node.js. Minimum $1000 per project.

The AI uses your profile to score jobs — the more specific you are, the better the results.

How Scoring Works

Score Verdict Meaning
9-10 ✅ APPLY Perfect match — real project, good pay, matches your skills
7-8 ✅ APPLY Good match — likely legit, decent pay
5-6 ⚠️ MAYBE Okay — might be worth checking, some concerns
3-4 ❌ SKIP Weak — low pay, vague scope, or questionable
1-2 ❌ SKIP Auto-rejected — scam, spam, non-dev, or irrelevant

Auto-rejected categories: IT support, helpdesk, data entry, virtual assistant, content writing, SEO-only, telemarketing, MLM, crypto scams.


🏗️ Architecture

┌─────────────────────────────────────────────────────┐
│                    DevHunt Pipeline                  │
├──────────┬──────────┬──────────┬───────────┬────────┤
│  Step 1  │  Step 2  │  Step 3  │  Step 4   │  Serve │
│  SCRAPE  │  PARSE   │  SCORE   │  CURATE   │  UI    │
├──────────┼──────────┼──────────┼───────────┼────────┤
│ 13 async │ Extract  │ AI score │ Top 20    │FastAPI │
│ scrapers │ pay,type │ each job │ picks/day │  +     │
│ run in   │ extract  │ (1-10)   │ 10 email  │ Jinja2 │
│ parallel │ emails   │ + verdict│ 10 apply  │  HTML  │
└──────────┴──────────┴──────────┴───────────┴────────┘
     ↓           ↓           ↓           ↓
  ┌──────────────────────────────────────────────┐
  │         SQLite Database (jobs.db)             │
  │   Auto-dedup · Full-text search · Indexed    │
  └──────────────────────────────────────────────┘

🔌 API Endpoints

DevHunt exposes a full REST API:

Endpoint Method Description
/api/curated GET Today's AI-curated top 20 jobs
/api/jobs?page=1&source=reddit&search=react GET Browse all jobs with filters
/api/job/{id} GET Single job detail with AI analysis
/api/refresh POST Trigger pipeline manually
/api/status GET Pipeline status + stats
/api/sources GET List all active sources

🧩 Add Your Own Scraper in 5 Minutes

DevHunt is designed to be extended. Here's a complete example:

# scrapers/myplatform.py
from .base import BaseScraper

class MyPlatformScraper(BaseScraper):
    name = "myplatform"

    async def scrape(self) -> list[dict]:
        # BaseScraper gives you: self.fetch_json(), self.fetch()
        # with automatic retries, backoff, and user-agent rotation
        data = await self.fetch_json("https://api.example.com/jobs")
        
        return [{
            "source": "myplatform",
            "external_id": item["id"],
            "title": item["title"],
            "company": item.get("company", ""),
            "description": item.get("description", ""),
            "url": item["url"],
            "pay": "",
            "job_type": "Remote",
            "tags": ["myplatform"],
        } for item in (data or [])]

Then register it in scrapers/__init__.py — done! The pipeline handles everything else.


📁 Project Structure

DevHunt/
├── app.py              # FastAPI server + scheduler
├── config.py           # All settings (loaded from .env)
├── curator.py          # Daily pipeline orchestrator
├── database.py         # SQLite async database layer
├── ai_scorer.py        # AI scoring engine (NVIDIA NIM)
├── email_finder.py     # Email/contact extraction
├── parser.py           # Pay/type extraction heuristics
├── requirements.txt    # Python dependencies
├── .env.example        # Environment variable template
├── scrapers/
│   ├── base.py         # BaseScraper with retries + backoff
│   ├── reddit.py       # Reddit (21 subreddits)
│   ├── linkedin.py     # LinkedIn jobs
│   ├── nitter.py       # Twitter/X posts
│   ├── hackernews.py   # Hacker News threads
│   ├── craigslist.py   # Craigslist gigs (35 cities)
│   ├── google_search.py# Google meta-search
│   ├── discord_scraper.py # Discord channels
│   ├── remotive.py     # Remotive API
│   ├── arbeitnow.py    # Arbeitnow API
│   ├── workingnomads.py# Working Nomads API
│   ├── golangjobs.py   # Golang Jobs RSS
│   ├── contra.py       # Contra opportunities
│   └── freelancermap.py# FreelancerMap projects
├── templates/
│   ├── index.html      # Curated dashboard
│   └── all_jobs.html   # Browse all jobs
└── static/
    ├── style.css
    └── app.js

🤝 Contributing

Contributions are what make DevHunt better for everyone. See CONTRIBUTING.md for details.

The easiest way to contribute: add a new scraper! Check the contributing guide for a step-by-step template.


📜 License

DevHunt is open source under the MIT License. Use it, modify it, build on it — just give credit.


If DevHunt helps you find work, give it a ⭐

Built with ❤️ by developers, for developers

⬆ Back to top

About

⚡ AI-powered job aggregator that scrapes 13 platforms, scores every listing with AI, and delivers the best developer opportunities daily. Free & open source.

Topics

Resources

Contributing

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages