14 Commits

Author SHA1 Message Date
Shaheer Sarfaraz
4e1ea28301
Enable Glassdoor as a JobSpy source (#126)
* feat(shared): add glassdoor to job source model

* feat(jobspy): support glassdoor site in scraper and discovery

* feat(pipeline): include glassdoor in source selection and API schema

* feat(ui): add glassdoor toggle to jobspy settings and run estimates

* test/docs: cover glassdoor jobspy integration end-to-end

* fix(jobspy): make glassdoor always-on without settings toggle

* fix(jobspy): fallback glassdoor when location is country-level

* refactor(jobspy): drop direct pandas usage in wrapper

* feat(pipeline): gate glassdoor by supported countries

* fix(jobspy): restore pandas output and keep glassdoor disable copy

* fix(jobspy): map country-level glassdoor searches to city fallbacks

* feat(ui): require glassdoor city for country-level runs
2026-02-10 17:57:49 +00:00
Shaheer Sarfaraz
d82c69b4b0
Edit job details in UI (#119)
* api(jobs): normalize PATCH /jobs/:id response contract and error mapping

* api(jobs): support core job detail edits in update schema

* feat(client): add JobDetailsEditDrawer with core metadata form

* feat(orchestrator): open edit drawer from JobDetailPanel more actions

* feat(orchestrator): add edit drawer trigger to ready and discovered more actions
2026-02-09 21:25:00 +00:00
Shaheer Sarfaraz
b456ab1951
Job api performance (#117)
* feat(api): add lightweight jobs list view without pagination

* refactor(client): use lightweight jobs list and on-demand job detail

* refactor(ui): separate job list rows from full job detail

* perf(home): reduce jobs payload to applied lightweight rows

* perf(db): add safe composite index for jobs list queries

* feat(api): default jobs endpoint to lightweight list view

* style: apply biome formatting for jobs list-view changes

* feat(api): add jobs revision endpoint for lightweight change detection

* refactor(client): switch jobs auto-refresh to revision checks

* perf(client): drive pipeline freshness via sse with polling fallback

* refactor(orchestrator): remove pipeline status polling loop from page

* chore(client): add periodic safety refresh and refresh lifecycle hardening

* refactor(types): define JobListItem via Pick<Job> to prevent drift
2026-02-09 20:49:54 +00:00
Copilot
3d7a014891
Remove /ukvisajobs page and related API surface (#115)
* Initial plan

* Remove ukvisajobs page and API

Co-authored-by: DaKheera47 <53654735+DaKheera47@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: DaKheera47 <53654735+DaKheera47@users.noreply.github.com>
2026-02-09 18:39:33 +00:00
Shaheer Sarfaraz
bd6834f99e
Hotfix location in pipeline search (#108)
* feat(shared): centralize supported country list and source-country rules

* feat(orchestrator): add country selector and UK-only source gating in automatic run modal

* feat(orchestrator): persist country selection and run only compatible extractors

* fix(pipeline): enforce country-source compatibility during discovery

* test(orchestrator): cover country-based source gating and pipeline enforcement

* formatting

* test fix

* lint

* comments

* prevent auto focus grab

* verification

* command and popover

* make sure scroll is working
2026-02-08 13:02:52 +00:00
Shaheer Sarfaraz
2fe0dc2c2f
Recalculate match in batch actions (#102)
* rescore in batch

* more tests!

* formatting!
2026-02-07 22:51:42 +00:00
Shaheer Sarfaraz
a409aa5ee0
Live scraping updates in pipeline UI (#100)
* initial commit

* fix clear script

* cancelling pipelines

* formatting
2026-02-07 22:44:00 +00:00
Shaheer Sarfaraz
cfabee5f45
Select multiple jobs for bulk actions (#94)
* Initial implementation

* UI

* UI

* floating bar animations

* UI and split up orchestrator page

* remove bulk action hint

* UI

* UI

* formatting

* fix lint

* enforce max actions
2026-02-07 14:39:49 +00:00
DaKheera47
855ac0c5a5 min 24 length 2026-02-07 14:37:49 +00:00
Shaheer Sarfaraz
6353a23f6f
Small wins style tickets (#88)
* wrap text

* version check!

* initial commit for "remove below score" in pipeline, or manually

* comments
2026-02-05 19:17:14 +00:00
Shaheer Sarfaraz
c4749b4211
feat: opinionated public DEMO_MODE with simulated/blocked actions, resets, and demo toasts (#87)
* feat(demo): add DEMO_MODE runtime helpers and /api/demo/info endpoint

* feat(demo): enforce simulated and blocked API actions under DEMO_MODE

* feat(demo): add deterministic seed dataset and 6-hour auto-reset

* feat(demo-ui): add demo banner and custom sonner toasts for simulated/blocked actions

* test+docs(demo): add demo mode coverage, behavior matrix, and operator docs

* formatting

* tests

* feat(demo): seed resets from typed baseline defaults

* formatting

* feat(demo): enrich baseline seed data and demo project catalog

* feat(demo): expand seeded applications and chart time ranges

* refactor(demo): split demo seed data from generation logic

* feat(demo): cap generated application history to 30 days

* feat(demo): rebalance generated job status distribution

* feat(demo-ui): make demo banner fixed and topmost

* minor fixes

* formatting

* duration revert

* durations

* feat(demo): share demo info hook, brighten demo toasts, and enforce webhook auth

* comment explaning

* formatting

* comments

* deadline builder comment
2026-02-05 16:04:04 +00:00
Devin Collins
d18464548e
feat: add salary display and missing salary penalty scoring (#86) 2026-02-05 07:35:17 +00:00
Shaheer Sarfaraz
16a8f1d15a
Use logger! add shim to convert backend responses to same format (#84)
* chore(orchestrator): add @infra import alias

* feat(server): add error/http/context/logger/sanitize infrastructure

* refactor(core): propagate request context, structured logs, and sanitization

* test/docs: update API contract assertions and contributor standards

* all pages working

* normalizing
2026-02-04 23:07:24 +00:00
Shaheer Sarfaraz
b94f85b149
Reduce low risk duplication (#79)
* clean up helpers

* shared in it's own top level folder

* workspaces setup

* build fix

* disable workspaces?

* run ci

* rename job-flow to gradcracker

* optional dependencies

* formatting?

* more optional modules

* allow post install runs

* node bump

* remove post install

* add optionals

* add more

* formatting

* comments, but im unsure

* run typescript DIRECTLY

* better build

* camoufox simplification

* lint

* build process doesn't exist

* build fix

* lockfile

* type check everything, build only for client

* rename steps correctly

* import from package!

* fix formatting

* don't fetch twice

* fix concern
2026-02-02 21:30:14 +00:00