MCPcopy
hub / github.com/DaKheera47/job-ops

github.com/DaKheera47/job-ops @v0.10.0 sqlite

repository ↗ · DeepWiki ↗ · release v0.10.0 ↗
4,221 symbols 12,980 edges 890 files 13 documented · 0%
README

JobOps

One search across every board. One click to tailor your CV. One place to track it all.

Your ironman suit for job hunting. You still apply to every job yourself. JobOps just makes you ten times faster.

DaKheera47%2Fjob-ops | Trendshift

Stars GHCR Release Contributors

800+ users · 4,000+ job searches run · #3 on GitHub Trending for TypeScript

JobOps Dashboard


What is JobOps?

JobOps searches LinkedIn, Indeed, Glassdoor and 10+ job boards from one screen, rewrites your CV for each role, scores your fit, checks visa sponsorship status, and tracks every application in one place.

It does not auto-apply. Recruiters can tell when applications are automated and it gets you blacklisted. JobOps gives you the speed without sacrificing quality.

https://github.com/user-attachments/assets/ec5bc249-aad5-41f2-b1ff-f7b3b6e6f7b8


Quick Start

Prefer a guided walkthrough? Follow the Self-Hosting Guide.

git clone https://github.com/DaKheera47/job-ops.git
cd job-ops
docker compose up -d

Open http://localhost:3005 and follow the onboarding wizard. You'll be searching in under 10 minutes.


How It Works

Step What happens
Search Scrapes 10+ job boards for roles matching your criteria
Score AI ranks each job 0-100 against your profile
Tailor Generates a rewritten CV matched to each job description
Export Creates a polished PDF locally, or via Reactive Resume
Track Connects to Gmail and auto-detects interviews, offers, and rejections

Supported Job Boards

Platform Focus
LinkedIn Global
Indeed Global
Glassdoor Global
Adzuna Multi-country API
Hiring Cafe Global
startup.jobs Startup/remote roles
Working Nomads Remote-only
Gradcracker STEM/Grads (UK)
UK Visa Jobs Sponsorship (UK)
Golang Jobs Go developers
Seek Australia/NZ (via Apify)
WUZZUF Egypt (Job Board)
Khamsat Egypt (Freelance)

Custom extractors can be added via TypeScript. See the extractor docs.


Post-Application Tracking

Connect your Gmail and JobOps watches for recruiter replies automatically.

  • "We'd like to invite you to interview..." → Status updates to Interviewing
  • "Unfortunately we won't be progressing..." → Status updates to Rejected

No manual updates. No spreadsheets. See the tracking docs for setup.


AI Providers

JobOps works with the model provider you already use:

  • Codex (local app-server in Docker, authenticated with codex login)
  • OpenAI
  • GLM / Zhipu AI
  • Google Gemini
  • OpenRouter
  • Any OpenAI-compatible endpoint (Ollama, LM Studio, etc.)

Cloud

Don't want to self-host? JobOps Cloud gives you your own hosted instance with nothing to install.

BYOK Zero Setup
Price £20/month £30/month
All features
Your own instance
Managed updates
AI provider Bring your own key Included, no config needed
Get Started Get Started

Hosted instances may enforce per-user monthly quotas for expensive actions such as searches, AI tailoring, Ghostwriter generations, and PDF exports. When a hosted quota is exhausted, the action is blocked with a clear API error; local self-hosted/default mode is unaffected unless hosted quotas are explicitly enabled.

Self-hosted will always be free and open source.


Documentation


Contributing

Contributions are welcome. Whether it's code, docs, or new extractors, start with CONTRIBUTING.md.


Special Thanks

Open-source tools and communities that make JobOps possible:

  • jobspy — Python-based multi-source job scraping library powering the jobspy extractor

Star History

Star History Chart


Analytics

JobOps includes anonymous usage analytics (Umami) to help improve the product. To opt out, block umami.dakheera47.com in your firewall or DNS.

License

AGPLv3 + Commons Clause

You can self-host, use, and modify JobOps freely. You cannot sell the software itself or offer paid hosted services whose value substantially comes from JobOps. See LICENSE.


Built by Shaheer Sarfaraz

Website · Cloud · Documentation · Ko-fi

Extension points exported contracts — how you extend this code

JobQueue (Interface)
(no doc) [2 implementers]
orchestrator/src/server/infra/job-queue.ts
LocationEvidenceEntry (Interface)
(no doc)
shared/src/location-domain.ts
HiringCafeSearchState (Interface)
(no doc)
extractors/hiringcafe/src/default-search-state.ts
RunJobSpyOptions (Interface)
(no doc)
extractors/jobspy/src/run.ts
UkVisaJobsAuthSession (Interface)
(no doc)
extractors/ukvisajobs/src/run.ts
RunGolangJobsOptions (Interface)
(no doc)
extractors/golangjobs/src/run.ts
RunNaukriOptions (Interface)
(no doc)
extractors/naukri/src/run.ts
RunSeekOptions (Interface)
(no doc)
extractors/seek/src/run.ts

Core symbols most depended-on inside this repo

fail
called by 258
orchestrator/src/server/infra/http.ts
cn
called by 227
orchestrator/src/lib/utils.ts
badRequest
called by 191
orchestrator/src/server/infra/errors.ts
ok
called by 151
orchestrator/src/server/infra/http.ts
warn
called by 145
orchestrator/src/server/infra/logger.ts
info
called by 127
orchestrator/src/server/infra/logger.ts
fetchApi
called by 118
orchestrator/src/client/api/core.ts
toStringOrNull
called by 112
shared/src/utils/type-conversion.ts

Shape

Function 3,563
Interface 465
Method 111
Class 82

Languages

TypeScript99%
Python1%

Modules by API surface

orchestrator/src/server/services/design-resume/index.ts55 symbols
orchestrator/src/server/services/design-resume/import-file.ts52 symbols
shared/src/location-domain.ts49 symbols
extractors/gradcracker/src/run.ts48 symbols
shared/src/types/design-resume.ts46 symbols
orchestrator/src/server/services/resume-renderer/typst.ts46 symbols
orchestrator/src/server/services/llm/codex/client.ts44 symbols
orchestrator/src/server/services/ghostwriter.ts38 symbols
orchestrator/src/server/repositories/ghostwriter.ts37 symbols
shared/src/types/jobs.ts36 symbols
orchestrator/src/server/repositories/jobs.ts36 symbols
extractors/hiringcafe/src/run.ts36 symbols

Dependencies from manifests, versioned

@apify/tsconfig0.1.0 · 1×
@biomejs/biome2.3.12 · 1×
@docusaurus/core3.9.2 · 1×
@docusaurus/module-type-aliases3.9.2 · 1×
@docusaurus/preset-classic3.9.2 · 1×
@docusaurus/tsconfig3.9.2 · 1×
@docusaurus/types3.9.2 · 1×
@easyops-cn/docusaurus-search-local0.55.1 · 1×
@hookform/resolvers5.4.0 · 1×
@iconify-json/tabler1.2.35 · 1×
@iconify/react6.0.2 · 1×
@ladle/react5.1.1 · 1×

For agents

$ claude mcp add job-ops \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact