Commit Graph
58 Commits
Author SHA1 Message Date
ilia 285b094bce chore: replace personal seed data with generic demo profiles
Seeds now insert generic Demo User personas (INSERT OR IGNORE, so
existing databases keep their current profile data). Drops the
every-boot UPDATE backfills that re-asserted personal values, and
removes the personal cron env example templates in favor of the
generic scripts/jobber-cron.env.example.
2026-07-26 15:54:12 -04:00
ilia 6a5c9e8cc4 fix: stop silent Jobs filters from emptying Discovered
Hide-prior-skips is off by default and counts in the badge when on; Settings searchCities no longer hard-filters the Jobs list.
2026-07-13 21:36:37 -04:00
ilia 2c930ba40f Slim product to Jobs+Settings and drop expired/rediscovered noise.
CI / skip-ci-check (push) Successful in 8s
CI / docker-ci (push) Successful in 11s
CI / secret-scan (push) Successful in 9s
Hide unused nav surfaces, probe listing URLs before import, add Danger Zone cleanup for archive matches and dead links, and stop rebuilding jobs on every migrate boot.
2026-07-11 16:20:31 -04:00
ilia 40c7cdece3 feat: add Google Jobs extractor and fix scraper reliability gaps
CI / skip-ci-check (pull_request) Successful in 8s
CI / docker-ci (pull_request) Successful in 10s
CI / secret-scan (pull_request) Successful in 7s
Ship a Camoufox-backed Google Jobs source, restore Glassdoor results discarded by a python-jobspy GraphQL quirk, and fix Himalayas/Gradcracker zero-job failures. Also harden prior-skip dismiss matching and multi-profile basic-auth switching for CA/US runs.
2026-07-09 15:11:53 -04:00
ilia 84e6835b11 feat: keyword sets, sponsorship signals, and extractor/profile fixes
CI / skip-ci-check (push) Successful in 10s
CI / secret-scan (push) Successful in 14s
CI / docker-ci (push) Successful in 17s
Add per-profile keyword sets, job source settings, sponsorship signal pills,
and several ATS extractors. Fix Hiring Cafe discovery via Next.js SSR search,
profile activate for comma-separated basicAuthUser aliases, and resume path
backfill migrations. Update settings and hiring-cafe docs; localhost compose
overlay for loopback-only deploys.
2026-06-11 10:23:39 -04:00
iliaandCursor 57b054caa0 fix(docs): use /docs/next paths for duplicate-jobs links
CI / Linting (Biome) (push) Failing after 40s
CI / Tests (push) Successful in 5m15s
CI / Type Check (adzuna-extractor) (push) Successful in 1m9s
CI / Type Check (gradcracker-extractor) (push) Successful in 1m13s
CI / Type Check (hiringcafe-extractor) (push) Successful in 1m9s
CI / Type Check (orchestrator) (push) Successful in 1m27s
CI / Type Check (startupjobs-extractor) (push) Successful in 1m10s
CI / Type Check (ukvisajobs-extractor) (push) Successful in 1m10s
CI / Documentation (push) Successful in 1m59s
Fix Docusaurus broken-link errors in intro and orchestrator pages.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-16 18:51:41 -04:00
iliaandCursor 17c4d4490a feat(jobs): suppress duplicate postings after skip or apply
CI / Linting (Biome) (push) Failing after 41s
CI / Tests (push) Successful in 5m25s
CI / Type Check (adzuna-extractor) (push) Successful in 1m8s
CI / Type Check (gradcracker-extractor) (push) Successful in 1m12s
CI / Type Check (hiringcafe-extractor) (push) Successful in 1m9s
CI / Type Check (orchestrator) (push) Successful in 1m25s
CI / Type Check (startupjobs-extractor) (push) Successful in 1m9s
CI / Type Check (ukvisajobs-extractor) (push) Successful in 1m9s
CI / Documentation (push) Failing after 1m56s
Dedup by employer+title and description at import; cascade skip on dismiss; hide repeats in the job list. Document product scope and duplicate detection in docs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-16 18:50:11 -04:00
iliaandCursor f5179304c1 feat(discovery): blocked countries filter and smoke subprocess fixes
CI / Linting (Biome) (push) Failing after 41s
CI / Tests (push) Successful in 5m27s
CI / Type Check (adzuna-extractor) (push) Successful in 1m9s
CI / Type Check (gradcracker-extractor) (push) Successful in 1m13s
CI / Type Check (hiringcafe-extractor) (push) Successful in 1m9s
CI / Type Check (orchestrator) (push) Successful in 1m24s
CI / Type Check (startupjobs-extractor) (push) Successful in 1m8s
CI / Type Check (ukvisajobs-extractor) (push) Successful in 1m9s
CI / Documentation (push) Successful in 1m59s
Add blockedCountries in Settings so pipeline discovery drops jobs whose
location mentions listed countries (existing discovered rows are kept).
Document the feature, fix smoke tsconfig inheritance for nested extractors,
and run smoke via an absolute-tsconfig wrapper.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-16 11:41:29 -04:00
iliaandCursor c840f289e1 feat(extractors): expand catalog, smoke coverage, and sourcing docs
CI / Linting (Biome) (push) Failing after 40s
CI / Tests (push) Successful in 5m54s
CI / Type Check (adzuna-extractor) (push) Successful in 1m8s
CI / Type Check (gradcracker-extractor) (push) Successful in 1m11s
CI / Type Check (hiringcafe-extractor) (push) Successful in 1m8s
CI / Type Check (orchestrator) (push) Successful in 1m23s
CI / Type Check (startupjobs-extractor) (push) Successful in 1m6s
CI / Type Check (ukvisajobs-extractor) (push) Successful in 1m7s
CI / Documentation (push) Successful in 1m54s
Adds Arc.dev, BC T-Net, Eluta, iCIMS tenants, QAJobsBoard, and SmartRecruiters
manifests with registry/settings/UI wiring; registers full extractor list in
smoke-extractors and documents supplementary board access paths. Aligns Careerjet
v4 with the url query parameter and fixes strict typing in QAJobsBoard.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-15 22:36:23 -04:00
ilia 8d8c6f0ed0 fix(docs): company-skip-list links for Docusaurus next build 2026-04-04 15:31:40 -04:00
ilia 9576c3d7a1 feat: workplace filter, job dedup, company skip docs, deploy notes
- Add remote/orchestrator filter by workplace (remote, not remote, unknown) with URL param
- Expose isRemote on job list API; canonicalize URLs and source_job_id dedup on import
- Onboarding: optional VITE_SKIP_RXRESUME_ONBOARDING for RxResume-free onboarding
- Scoring UI + docs for company skip list; pipeline-run dedup note
- Vitest: TZ=UTC for stable time-based tests
- DEPLOY_GITEA_VM_CRON_TELEGRAM.md for VM/cron/Telegram ops

Made-with: Cursor
2026-04-04 14:44:52 -04:00
Ammad Ali 69a10acd4f fix: render markdown in expanded job descriptions (#297)
* fix: render markdown in expanded job descriptions

* fix: respect markdown job description setting and harden rendering
2026-03-22 17:01:34 +00:00
Ryan Foote 0b22c08d7d feat: add support for indicating workplaceTypes (#296) 2026-03-21 20:43:43 +00:00
Ammad Ali 8274ec4e14 Enhance model handling and settings integration for providers (#295) 2026-03-21 17:34:47 +00:00
Ammad Ali ac0a1281f4 Enhance RxResume validation, settings handling, and caching (#287)
* feat: enhance validation handling in ReactiveResumeConfigPanel and rxresume-config

* feat: enhance RxResume validation handling in SettingsPage and ReactiveResumeSection

* feat: enhance RxResume settings handling and cache management

* feat: add save-time validation and caching for Reactive Resume settings

* refactor: improve code formatting and readability across multiple files

* fix: improve condition check in hasOverrideKey function

* feat: enhance RxResume validation and settings handling with precheck options

* refactor: streamline RxResume client initialization and improve backup sorting logic
2026-03-19 11:38:04 +00:00
Jeet Jawale cdd23f5ecf feat: add local search to docs site (closes #203) (#282)
* feat: add local search to docs site (closes #203)

* chore: update package-lock.json for search plugin

* fix: biome  format docusaurus config
2026-03-18 16:16:29 +00:00
Shaheer Sarfaraz 71e640b563 Add startup.jobs extractor support (#279)
* Add startup.jobs extractor support

* Harden startup.jobs extractor inputs

* Wire startupjobs into Docker and CI

* Tighten startupjobs review follow-ups

* fix: publish ghcr during release workflow

* feat: add startupjobs max jobs configuration and update related tests
2026-03-17 12:20:45 +00:00
Shaheer Sarfaraz 74717166c9 Add first-party Umami proxy for docs (#259)
* Add first-party Umami proxy for docs

* Address Umami proxy review feedback

* Harden Umami stats proxy
2026-03-14 21:33:55 +00:00
Shaheer SarfarazandCopilot Autofix powered by AI f5aef7af24 Add RxResume URL setting to dashboard (#258)
* Add RxResume URL setting to dashboard

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-03-14 20:39:15 +00:00
Saadandsaad <Saad> f92b80dfe2 Add language settings for AI-generated resume output (#252)
* Add language settings for AI-generated resume output

* Resolve merge conflicts for language settings PR

* Fix language settings review feedback and CI lint

* Tighten language setting precedence and onboarding validation

---------

Co-authored-by: saad <Saad>
2026-03-11 18:24:01 +00:00
DaKheera47 14085a977e initial commit 2026-03-10 15:16:00 +00:00
Shaheer Sarfaraz ee6f889094 Improve ghostwriter output language guidance (#248) 2026-03-10 14:52:19 +00:00
Shaheer Sarfaraz 8c952a4011 Registry Architecture for Visa Sponsor sources (#246)
* initial

* lint fix

* docs!

* fix CI

* ci and runner fix

* fix + docs!

* make CI pass

* country specific search

* remove country specific language

* fix UI

* address comments

* Address visa sponsor PR feedback

* Address remaining visa sponsor review feedback

* Harden visa sponsor provider validation
2026-03-10 02:02:30 +00:00
Shaheer Sarfaraz 3fee6e0bef Add shared writing style preferences (#240)
* Add shared writing style preferences

* Address PR review feedback

* Add scoring instructions settings

* Polish writing style inputs

* Clarify do-not-use terms guidance

* Normalize blank writing style overrides

* Refactor writing style resolution to use effective values and enhance blank value handling
2026-03-06 17:31:11 +00:00
github-actions[bot] 2214e6d2cb docs: cut version 0.1.29 2026-03-06 12:22:43 +00:00
Shaheer Sarfaraz 6a19fff436 google dork links (#239)
* Add ready tab Google dork links

* ui changes

* docs

* ci fix
2026-02-28 22:23:50 +00:00
github-actions[bot] 65c558ffe4 docs: cut version 0.1.28 2026-02-25 21:39:35 +00:00
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
Shaheer Sarfaraz 39ef177953 Fix generated docs sitemap URLs (#226)
* Fix docs sitemap canonical URLs

* Tighten sitemap callback typing
2026-02-22 13:55:23 +00:00
github-actions[bot] 0de10c3302 docs: cut version 0.1.27 2026-02-22 13:34:01 +00:00
Shaheer Sarfaraz 82e142a8a8 Auto-Registering Extractor System (#223)
* initial commit?

* Address PR feedback on extractor discovery and startup resilience

* Address latest PR review comments

* fix city resolution fallback when input parses empty

* address PR feedback on extractor registry and pipeline validation

* address copilot comments on manifests and registry startup

* fix extractor discovery export handling and env isolation in tests

* enforce duplicate manifest id failures in strict mode

* Fix remaining extractor registry and runtime review comments

* docs

* docs

* test all, logic remains in extractors

* Address PR review feedback on extractor registry and validation

* Revert extractor moduleResolution to bundler

* Enforce shared city filtering across all discovery sources

* Deduplicate extractor strict city post-filtering
2026-02-21 17:44:07 +00:00
Shaheer SarfarazandCopilot cc7cacd7f5 Feat/company blacklist tokenized input (#219)
* initial commit

* docs mention!

* Update orchestrator/src/server/pipeline/steps/discover-jobs.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* normalizeStringArray

* poppier orange

* comments

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-21 04:07:06 +00:00
Shaheer Sarfaraz 19266fe5eb City search (#217)
* wave 1, jobspy only

* combine usa/ca to united states

* strict city location filter

* hide and show based on focus

* UI changes

* allow clicking cross!

* pill animate in

* animate out, uggo fix

* animate out

* framer motion

* animate component height

* adzuna

* hiring cafe implementation

* refactor: centralize shared search-city parsing and matching

* feat: migrate city setting to searchCities with legacy fallback

* docs: update pipeline and extractor city-search wording

* fix(orchestrator): normalize tokenized paste behavior

* fix(shared): tighten city matching semantics

* docs(extractors): document city-location knobs and geocoding note
2026-02-21 00:42:09 +00:00
github-actions[bot] 89ff770416 docs: cut version 0.1.26 2026-02-20 18:24:16 +00:00
Shaheer Sarfaraz f3c164d252 feat(pipeline): parallelize discovery/process via evolved asyncPool (#211)
* feat(pipeline): centralize concurrency hooks and parallelize discovery/process steps

* feat(orchestrator): unify single and bulk job actions API

* job actions de-bulk-ified

* application inbox section debulk

* chore(orchestrator): remove remaining bulk wording from job action flow

* select multiple to skip with shortcut

* comments

* coomeents

* fix progress ordinal and add jobs actions payload examples
2026-02-20 16:49:13 +00:00
github-actions[bot] 2cb116340a docs: cut version 0.1.25 2026-02-20 12:10:24 +00:00
Shaheer Sarfaraz 1573d8dfbc response rate by source chart (#207)
* response rate by source

* docs

* add gpt improvements

* mobile resp

* UX

* chartkpi
2026-02-20 01:39:54 +00:00
Shaheer SarfarazandCopilot 3640abef2d Migration to tanstack query (#199)
* commit at some point in the middle, WIP

* formatting

* ci passing

* comments

* handle no jobid case

* better error handling

* comments

* Update orchestrator/src/client/hooks/queries/useJobMutations.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update orchestrator/src/client/hooks/queries/useSettingsMutation.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* better types

* formatter

* tracking inbox page

* in progress page

* tracer links page

* invalidate harder

* ensure tracer links docs show

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-19 23:04:47 +00:00
Shaheer Sarfaraz aefb6ca78b feat(orchestrator): parallelize scoring and bulk rescore with bounded concurrency (#194)
* feat(orchestrator): parallelize scoring and bulk rescore with bounded concurrency

* chore(docs): format versioned docs metadata for biome

* fix(orchestrator): address PR review feedback on async pool and bulk rescore

* ci(docs): run biome --write before docs version commit
2026-02-19 18:32:13 +00:00
github-actions[bot] c0c465b2e1 docs: cut version 0.1.24 2026-02-19 12:53:31 +00:00
Shaheer Sarfaraz d34a9f041b Hiring cafe extractor (#192)
* feat(hiringcafe): register new source across shared/server/client enums

* feat(hiringcafe-extractor): add browser-backed Hiring Cafe dataset extractor

* feat(orchestrator): integrate Hiring Cafe discovery service into pipeline

* feat(orchestrator-ui): add Hiring Cafe to source availability and run estimates

* chore(hiringcafe): wire CI/docker and add extractor documentation

* chore(format): apply biome formatting for Hiring Cafe integration

* add original websites

* coomints

* number or null
2026-02-19 12:51:55 +00:00
Shaheer Sarfaraz 5ed74bb59c Tracer links (#174)
* initial commit

* format links right

jobops.dakheera47.com/cv/shaheer-google-de

* don't support legacy

* remove phishing look

* smaller links

* readiness check in settings

* rework UX

* right col

* pop a modal

* modal improvements

* show links

* documentation disclaimer

* fix(tracer-links): preserve descriptive resume link labels

* fix(tracer-links): classify bot user agents before browser families

* fix(tracer-links): reject non-http redirect destinations

* fix(tracer-redirect): disable caching for tracked redirects

* fix(origin): prefer canonical public base url over forwarded headers

* fix(auth): protect tracer analytics routes behind basic auth

* fix(ui): rename misleading tracer drilldown human metric

* style(tests): format tracer-links invalid-destination assertion

* fix(tests): prevent mocked fs from breaking sqlite data-dir resolution

* style(docs): format versioned docs json for biome

* fix(tests): mock tracer-links in pdf skills validation suite
2026-02-18 22:05:15 +00:00
github-actions[bot] 1146d065f0 docs: cut version 0.1.23 2026-02-18 15:58:17 +00:00
Shaheer Sarfaraz 4f8664cb9c feat(command-bar): hide low relevance matches by default (#186) 2026-02-18 13:55:44 +00:00
Shaheer Sarfaraz 625264c3a2 docs: clarify Gmail OAuth setup and required scopes (#185) 2026-02-18 13:44:25 +00:00
Shaheer Sarfaraz 63bf5bdc87 fix: move docs button to sidebar footer and open in new tab (#184)
* fix(ui): move docs to sidebar footer button with new-tab icon

* sidebar documentation
2026-02-18 13:36:16 +00:00
Shaheer Sarfaraz 16fdb425d8 Add demo banner star-repo CTA analytics and fix CI formatting (#183)
* add star cta

* feat: track demo banner star repo clicks

* chore: format docs-site json for biome ci
2026-02-18 13:21:32 +00:00
github-actions[bot] ddf5130915 docs: cut version 0.1.22 2026-02-17 16:54:11 +00:00
Shaheer Sarfaraz c5c6675f04 feat: add Adzuna extractor with orchestrator integration (#177)
* feat(settings): add adzuna source fields and country compatibility

* feat(discovery): integrate adzuna extractor into pipeline

* feat(client): wire adzuna in source selection and run budgeting

* docs(extractors): add adzuna guide and configuration notes

* chore(workspaces): register adzuna extractor in lockfile

* fix(adzuna): run extractor via npm script instead of npx

* fix(adzuna): execute extractor via node+tsx without shell

* fix(adzuna): prefer npm run start without shell, fallback to tsx

* fix(docker): include adzuna extractor workspace in image

* chore(adzuna): reuse shared type-conversion utilities

* type-check adzuna

* formatting

* deeedooop

* better instructions
2026-02-17 16:49:42 +00:00
Shaheer Sarfaraz 4da264eb48 Add better account details for reactive resume section (#175) 2026-02-17 13:05:50 +00:00