Remote Radar is a side project I built to make job hunting way less painful.
I was tired of hopping across a dozen websites, copying descriptions, and writing the same cover letters again and again. So I decided to automate it. This tool scrapes remote jobs from different platforms and (soon!) uses LLMs to generate tailored applications β because job hunting shouldnβt be a full-time job.
- π Aggregates remote jobs from multiple platforms (e.g., LinkedIn, Wellfound)
- π§ Auto-generates personalized job applications using LLMs
- π Periodic scraping via background schedulers (every 6 hours)
- π‘οΈ Built-in deduplication and database storage
- π A clean frontend to explore jobs and manage applications
- π§ͺ Automated tests with CI and pre-commit hooks to keep things sane
- π³ Fully containerized with Docker and Docker Compose
- β‘ Fast semantic search via ChromaDB and Groqβs LLaMA 3 models
Layer | Tools |
---|---|
Frontend | Next.js, Chakra UI |
Backend | FastAPI, SQLAlchemy, APScheduler |
Scraping | BeautifulSoup |
AI/LLM | LangChain, Groq (LLaMA 3), ChromaDB |
DevOps | Docker, Docker Compose, Poetry, Pre-commit, Pytest, GitHub Actions |
git clone https://github.com/Ista2000/remote-radar.git
cd remote-radar
Backend
cd backend
poetry install
Frontend
cd frontend
npm install
Backend (backend/.env
)
AUTH_SECRET_KEY=your-secret-key
AUTH_ALGORITHM=HS256
DATABASE_URL=your-db-url
GROQ_API_KEY=your-groq-key
LLM_MODELS=llama3-model-1,llama3-model-2
Frontend (frontend/.env.local
)
NEXT_PUBLIC_BACKEND_URL=http://localhost:8000
Backend
poetry run uvicorn main:app --reload
Frontend
npm run dev
- Docker
- Docker Compose
docker-compose up --build
- Frontend: http://localhost:3000
- Backend (API Docs): http://localhost:8000/docs
services:
backend:
build:
context: ./backend
ports:
- "8000:8000"
env_file:
- .env
depends_on:
- db
frontend:
build:
context: ./frontend
ports:
- "3000:3000"
env_file:
- .env.local
depends_on:
- backend
db:
image: postgres:15
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: password
POSTGRES_DB: remote_radar
ports:
- "5432:5432"
volumes:
- db_data:/var/lib/postgresql/data
volumes:
db_data:
remote-radar/
βββ backend/
β βββ src/
β β βββ main.py # FastAPI entrypoint
β β βββ database.py # DB config & session
β β βββ models.py # SQLAlchemy models
β β βββ deps.py # Dependency injection
β β βββ utils.py # Helper functions
β β βββ scrapers/ # Job scraping logic
β β βββ routers/ # API routes
β β βββ llm/ # LLM utilities
β βββ tests/ # Backend tests
β βββ Dockerfile
β βββ .env # Need to create
β βββ pyproject.toml
βββ frontend/
β βββ app/ # Next.js application
β β βββ auth/ # Login/Sign-up pages
β β βββ components/ # Reusable UI components
β β βββ context/ # React contexts
β β βββ hooks/ # Custom hooks
β βββ public/ # Static files
β βββ Dockerfile
β βββ .env.local # Need to create
β βββ package.json
βββ docker-compose.yml
βββ README.md
Remote Radar taps into Groqβs super fast LLaMA 3 models (like llama3-70b-versatile
) for:
- Matching jobs with your resume
- Generating custom job applications
- Extracting important info from job posts
To try it out:
- Plug in your
GROQ_API_KEY
in the.env
- Define fallback models using
LLM_MODELS
Jobs are refreshed every 6 hours with APScheduler
, all hooked into FastAPI's startup lifecycle.
Want to change how often it scrapes? You can tweak that in scheduler.py
.
To keep things tidy, every commit should:
- β
Pass
pre-commit
hooks (ruff, black, mypy) - β
Include/update backend tests under
backend/tests/
- β Build cleanly via GitHub Actions
CI will scream at you if you donβt π
MIT. Do whatever you want. Just donβt sell it as-is, please.
This started as a one-person effort, but Iβd love help!
You can jump in by:
- π§Ό Adding new sites to scrape
- β¨ Building out features (dashboards, filters, alerts)
- π§ Improving the AI integration
- πͺ² Fixing bugs or edge cases
- π Cleaning up the UI or docs
- Fork the repo π΄
- Create an issue to track your work
- Make a feature branch
- Open a PR and tell me whatβs new!
- π€ Find recruiter profiles & craft personalized intros
- π© Get email alerts for new matched jobs
- πΌ Dashboard to manage saved/applied jobs
- π Search and filter through listings
- π§βπ» Score resumes for individual job fits
Tired of mindless scrolling? Same.
Thatβs why I built Remote Radar β to help job seekers (like me) apply smarter, not harder.
Try it, break it, or improve it. Either way, I hope it saves you a few hours and gets you a few callbacks.