job-ops: DevOps principles applied to job hunting. A self-hosted pipeline to track, analyze, and assist your application process https://jobops.app/
  • TypeScript 98.9%
  • Typst 0.3%
  • Dockerfile 0.2%
  • Python 0.2%
  • JavaScript 0.2%
  • Other 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Yurii f3b2dd2516
All checks were successful
dev-image / build-and-push (push) Successful in 1m21s
Merge pull request 'Detect expired job postings' (#18) from feat/expired-posting-checks into dev
Reviewed-on: #18
2026-08-06 14:40:42 +00:00
.agents/skills/frontend-design Clean up and align agent skill configuration files (#665) 2026-07-11 23:12:09 +01:00
.claude Clean up and align agent skill configuration files (#665) 2026-07-11 23:12:09 +01:00
.codegraph Clean up and align agent skill configuration files (#665) 2026-07-11 23:12:09 +01:00
.codex/skills/design-principles chore: remove inherited repository garbage 2026-07-31 20:56:11 +02:00
.forgejo/workflows feat: lazy-load optional runtime tools 2026-07-31 23:41:33 +02:00
.githooks chore: prevent committed secrets (#38) 2026-07-26 20:07:35 +02:00
.opencode Add Codex provider with app-server auth flows (#359) 2026-04-16 14:27:57 +01:00
.vscode Support per-purpose LLM providers and Codex overrides (#494) 2026-05-13 11:10:14 +01:00
career-boards feat: detect expired job postings 2026-08-06 14:44:31 +02:00
extractors fix: harden availability checks 2026-08-06 15:22:38 +02:00
orchestrator Merge pull request 'Detect expired job postings' (#18) from feat/expired-posting-checks into dev 2026-08-06 14:40:42 +00:00
scripts chore: remove inherited repository garbage 2026-07-31 20:56:11 +02:00
shared feat: detect expired job postings 2026-08-06 14:44:31 +02:00
visa-sponsor-providers feat(visa-sponsors): Netherlands provider (IND public register) (#662) 2026-07-11 22:36:35 +01:00
.dockerignore Reduce low risk duplication (#79) 2026-02-02 21:30:14 +00:00
.env.example chore: remove inherited telemetry services 2026-07-31 21:27:02 +02:00
.gitignore Merge pull request 'chore: remove inherited repository garbage' (#4) from cleanup/remove-garbage into dev 2026-07-31 19:14:12 +00:00
.gitleaks.toml chore: prevent committed secrets (#38) 2026-07-26 20:07:35 +02:00
.mcp.json Clean up and align agent skill configuration files (#665) 2026-07-11 23:12:09 +01:00
AGENTS.md docs: document Forgejo CLI 2026-08-06 15:00:01 +02:00
biome.json chore: remove bundled documentation site 2026-07-31 21:07:33 +02:00
CONTRIBUTING.md chore: remove bundled documentation site 2026-07-31 21:07:33 +02:00
docker-compose.yml fix: persist Codex CLI auth across restarts 2026-08-01 13:32:30 +02:00
docker-entrypoint.sh feat: Cloudflare WAF resilience layer for Playwright extractors (#292) 2026-04-30 15:49:03 +01:00
Dockerfile feat: lazy-load optional runtime tools 2026-07-31 23:41:33 +02:00
knip.json Code cleanup (#218) 2026-02-21 03:07:51 +00:00
LICENSE Update license 2026-03-10 15:46:57 +00:00
opencode.jsonc Clean up and align agent skill configuration files (#665) 2026-07-11 23:12:09 +01:00
package-lock.json Merge branch 'dev' into cleanup/remove-owner-services 2026-07-31 21:52:21 +02:00
package.json chore: remove bundled documentation site 2026-07-31 21:07:33 +02:00
README.md docs: clarify fork identity 2026-07-31 21:55:35 +02:00
skills-lock.json Refine location intent handling and skill references (#391) 2026-04-21 15:59:06 +01:00

JobOps

An opinionated fork of DaKheera47/job-ops.

This is the version I run and maintain. It keeps the job-search, CV-tailoring, and application-tracking workflow that I use; it can diverge from upstream when a feature does not fit that goal.

What differs from upstream

  • Forgejo is the canonical repository and contribution target.
  • No third-party product telemetry, external update checks, or bundled upstream documentation site.
  • UI and workflow choices follow this fork's needs rather than upstream's release plan.

For upstream releases, hosted offerings, and the original project's history, see DaKheera47/job-ops.

Run it

git clone git@fj.kuvsh.pro:fogrye/job-ops.git
cd job-ops
docker compose up -d

Open http://localhost:3005 and complete onboarding.

Local visual development

Use a disposable copy of a database backup; never point another worktree at a live jobs.db.

npm run db:restore -- ../jobs_2026_07_26.db
npm run dev:visual

dev:visual serves the app at http://localhost:5173, binds its unauthenticated local API to loopback, and bypasses sign-in/onboarding only in a Vite development build. AI actions remain real.

For a second checkout, choose separate ports:

JOBOPS_API_PORT=3102 JOBOPS_WEB_PORT=5174 npm run dev:visual

What it does

  • Search multiple job boards from one workspace.
  • Score roles and tailor CVs with your chosen AI provider.
  • Track applications and recruiter responses.
  • Check visa sponsorship information where supported.

It does not auto-apply to jobs.

License and attribution

Original project: JobOps by Shaheer Sarfaraz.

Licensed under AGPLv3 + Commons Clause. See LICENSE.