Shaheer Sarfaraz 7514aa1b28
Add RxResume v4/v5 dual support (#230)
* feat(settings): add rxresume mode and v5 api key settings

* feat(server): add mode-aware rxresume adapter with auto v5-first selection

* refactor(server): route settings profile and pdf generation through rxresume adapter

* feat(api): support rxresume v4/v5 in onboarding and settings routes with ok/meta responses

* feat(client): add rxresume mode selector and v5 api key setup flow

* docs: document rxresume auto mode with v5-first self-hosted setup

* test: verify dual-mode rxresume support and ci parity checks

* comments

* services folder

* correct types for v5

* tests and docs fix

* Fix RxResume auto fallback and route API consistency

* warning for both being set

* simpler response

* onboarding component improvements, v5 check still not working

* fix list resume endpoint...

* fix api endpoints to latest v5 docs

* don't show the entire project field on v5

* remove auto entirely

* formatting

* ci green

* v5 has a different resume schema

* remove redundant check

* remove requirement that only one must be specified

* consolidate sections

* base resume can be v4 or v5

* saving now works

* status indicator

* actually render some pills

* reason for failure

* fix apikey verification

* dedupe isValidatingMode

* reefactoor

* simplification?

* refactor?

* ci passing

* remove auto from docs

* tailoring is schema dependent

* skills object tighter

* remove redundant text

* fix lint

* mode
2026-02-25 02:26:15 +00:00
2026-02-08 00:19:26 +00:00
2026-02-22 21:16:20 +00:00
2026-02-19 12:51:55 +00:00
2026-02-21 03:07:51 +00:00
2026-01-17 02:53:31 +00:00
2026-02-21 00:42:09 +00:00
2026-02-22 21:16:20 +00:00

JobOps: Your Ironman Suit for Job Hunting

Stars GHCR Release Contributors

Automate the hunt. Scrapes major job boards (LinkedIn, Indeed, Glassdoor), AI-scores suitability, tailors resumes (RxResume), and tracks application emails automatically.

image

Self-hosted. Docker-based. Stop applying manually.

40s Demo: Crawl → Score → PDF → Track

Pipeline Demo

https://github.com/user-attachments/assets/5b9157a9-13b0-4ec6-9bd2-a39dbc2b11c5

Apply & Track

https://github.com/user-attachments/assets/06e5e782-47f5-42d0-8b28-b89102d7ea1b

Documentation (Start Here)

JobOps ships with full docs for setup, architecture, extractors, and troubleshooting.

If you want the serious view of the project, start here:

Contributing

Want to contribute code, docs, or extractors? Start with CONTRIBUTING.md.

That guide is intentionally link-first so contributor workflow lives in one place while setup and feature docs stay in the canonical docs site.

Quick Start (10 Min)

Prefer guided setup? Follow the Self-Hosting Guide.

# 1. Download
git clone https://github.com/DaKheera47/job-ops.git
cd job-ops

# 2. Start (Pulls pre-built image)
docker compose up -d

# 3. Launch Dashboard
# Open http://localhost:3005 to start the onboarding wizard

Why JobOps?

  • Universal Scraping: Supports LinkedIn, Indeed, Glassdoor, Adzuna + specialized boards (Gradcracker, UK Visa Jobs).
  • AI Scoring: Ranks jobs by fit against your profile using your preferred LLM (OpenRouter/OpenAI/Gemini).
  • Auto-Tailoring: Generates custom resumes (PDFs) for every application using RxResume v4.
  • Email Tracking: Connect Gmail to auto-detect interviews, offers, and rejections.
  • Self-Hosted: Your data stays with you. SQLite database. No SaaS fees.

Workflow

  1. Search: Scrapes job boards for roles matching your criteria.
  2. Score: AI ranks jobs (0-100) based on your resume/profile.
  3. Tailor: Generates a custom resume summary & keyword optimization for top matches.
  4. Export: Uses RxResume v4 to create tailored PDFs.
  5. Track: "Smart Router" AI watches your inbox for recruiter replies.

Supported Extractors

Platform Focus
LinkedIn Global / General
Indeed Global / General
Glassdoor Global / General
Adzuna Multi-country API source
Gradcracker STEM / Grads (UK)
UK Visa Jobs Sponsorship (UK)

(More extractors can be added via TypeScript - see extractors documentation)

Post-App Tracking (Killer Feature)

Connect Gmail → AI routes emails to your applied jobs.

  • "We'd like to interview you..." → Status: Interviewing (Auto-updated)
  • "Unfortunately..." → Status: Rejected (Auto-updated)

See post-application tracking docs for setup.

Note on Analytics: The alpha version includes anonymous analytics (Umami) to help debug performance. To opt-out, block umami.dakheera47.com in your firewall/DNS.

Star History

Star History Chart

License

AGPLv3 - Free to use and modify.

Description
No description provided
Readme AGPL-3.0 6.7 MiB
Languages
TypeScript 98.6%
Python 0.4%
Shell 0.4%
CSS 0.3%
Dockerfile 0.2%