VPC-byte /
jobclaw
AI-powered job search agent: scrape jobs, match against a profile, draft applications, notify, and track outcomes.
Loading repository data…
Hira-1 / repository
AI-powered job search agent that scrapes 7 remote job boards, scores listings against your CV with GPT-4o-mini, researches companies, generates cover letters, and presents everything in a web dashboard
An end-to-end AI-powered job search assistant that scrapes remote job boards, scores each listing against your CV, researches companies, identifies skill gaps, generates cover letters, and presents everything in a premium web dashboard — all with minimal manual effort.
Cost: ~$0.02–0.05 per pipeline run (50–200 jobs scored with GPT-4o-mini). Cover letters use GPT-4o at ~$0.01 each.
| Dashboard — Job Listings | Market Gap Report |
|---|---|
flowchart LR
subgraph Input
CV[PDF CV Upload]
end
subgraph Pipeline
S[7 Job Scrapers]
P[CV Parser<br/>PyMuPDF + GPT]
SC[Scoring Agent<br/>GPT-4o-mini]
R[Research Agent<br/>DDGS + GPT]
end
subgraph Storage
DB[(SQLite DB)]
end
subgraph Output
D[Web Dashboard<br/>Flask + Tailwind]
G[Gap Report<br/>GPT-4o-mini]
CL[Cover Letters<br/>GPT-4o]
end
CV --> P --> DB
S --> DB
DB --> SC --> DB
DB --> R --> DB
DB --> D
DB --> G --> D
DB --> CL --> D
.
├── agents/
│ ├── scoring_agent.py # CV vs JD fit scoring (gpt-4o-mini)
│ ├── research_agent.py # Company research via DDGS + website (gpt-4o-mini)
│ ├── gap_report_agent.py # Market-level skill gap analysis (gpt-4o-mini)
│ └── cover_letter_agent.py # Tailored cover letter writer (gpt-4o)
├── scrapers/
│ ├── base_scraper.py # Shared scraper base + HTML stripper
│ ├── remotive.py
│ ├── himalayas.py
│ ├── jobicy.py
│ ├── arbeitnow.py
│ ├── remoteok.py
│ ├── workingnomads.py
│ └── weworkremotely.py # Playwright-based (JS-rendered site)
├── pipeline/
│ └── runner.py # Orchestrates scrape → persist → score
├── parsers/
│ └── cv_parser.py # PDF CV parsing via PyMuPDF + GPT
├── database/
│ ├── schema.py # SQLite schema definitions
│ └── db.py # All DB helper functions
├── dashboard/
│ ├── server.py # Flask API server
│ └── index.html # Single-page dashboard (Tailwind CSS + JS)
├── config.py # Central config (models, thresholds, sources)
├── .env.example # Environment variable template
└── requirements.txt
git clone https://github.com/Hira-1/career-ops-ai.git
cd career-ops-ai
python -m venv venv
# Windows
venv\Scripts\activate
# macOS / Linux
source venv/bin/activate
pip install -r requirements.txt
playwright install chromium
cp .env.example .env
Edit .env and add your OpenAI API key:
OPENAI_API_KEY=sk-...
SHORTLIST_THRESHOLD=65 # jobs at or above this score are shortlisted
COVER_LETTER_THRESHOLD=70 # minimum score to generate a cover letter
Start the dashboard and upload your CV via the UI (PDF only):
python -m dashboard.server
Open http://localhost:5000 → click Upload CV in the header.
Click Run Pipeline in the dashboard header, or run directly from the CLI:
python -m pipeline.runner
This will:
data/careerops.dbRefresh the dashboard. Use the sidebar filters, click any job to view the full intelligence panel, and switch to the Market Gap Report tab for skill gap analysis.
All settings live in config.py and can be overridden via .env:
| Variable | Default | Description |
|---|---|---|
OPENAI_API_KEY | — | Required. Your OpenAI API key |
SHORTLIST_THRESHOLD | 65 | Minimum fit score to shortlist a job |
COVER_LETTER_THRESHOLD | 70 | Minimum score to auto-generate cover letters |
Model routing (edit config.py directly):
| Task | Model |
|---|---|
| Job scoring | gpt-4o-mini |
| Company research | gpt-4o-mini |
| Gap report | gpt-4o-mini |
| Cover letter writing | gpt-4o |
The web dashboard runs at http://localhost:5000 and provides:
| Method | Endpoint | Description |
|---|---|---|
GET | /api/data | All dashboard data in one call |
POST | /api/status | Update job application status |
POST | /api/notes | Save notes for a job |
POST | /api/cover_letter | Generate cover letter for a job |
POST | /api/pipeline | Trigger scrape + score pipeline |
POST | /api/regen_gap | Force-regenerate market gap report |
POST | /api/upload_cv | Upload and parse a new CV (PDF) |
| Source | Type | Notes |
|---|---|---|
| Remotive | REST API | Remote tech jobs |
| Himalayas | REST API | Remote jobs with salary data |
| Jobicy | REST API | Remote jobs |
| Arbeitnow | REST API | European + remote jobs |
| RemoteOK | REST API | Remote developer jobs |
| WorkingNomads | REST API | Remote jobs for nomads |
| WeWorkRemotely | Playwright | JS-rendered, requires Chromium |
pytest tests/ -v
data/careerops.db) and your .env file are excluded from git via .gitignoreforce=Truegit checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)This project is licensed under the MIT License — see the LICENSE file for details.
Selected from shared topics, language and repository description—not editorial ratings.
VPC-byte /
AI-powered job search agent: scrape jobs, match against a profile, draft applications, notify, and track outcomes.
Ayushman-Raghav /
End-to-end AI-powered job-search automation pipeline using FastAPI, n8n, Docker, Google Sheets, and local LLM scoring via Ollama
Tanmai019 /
AI-powered job search and resume optimization agent that matches roles, ranks opportunities, and adapts resumes using LLM-driven workflows.
morningstar1898-eng /
AI-powered job search assistant with 6 autonomous agents, voice integration, and real-time dashboard — built with Next.js, FastAPI, and CrewAI