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
DaKheera47
5ed9069813
Use optimistic skip mutation across Jobs page actions
2026-02-20 21:58:42 +00:00
DaKheera47
096ac21b19
Use optimistic mark-as-applied mutation across client entry points
2026-02-20 21:15:22 +00:00
Shaheer Sarfaraz
483e5f49e0
fix(orchestrator): keep search term chips when backspacing empty input ( #215 )
2026-02-20 18:22:05 +00:00
Shaheer Sarfaraz
1e0767a4ed
Avoid reprocessing previously ingested Gmail messages ( #213 )
...
* Avoid reprocessing previously ingested Gmail messages
* Avoid duplicate message lookup in Gmail sync upsert path
2026-02-20 17:20:06 +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
Shaheer Sarfaraz
952e4e6db9
fix(ci): include biome linux binary for docs version workflow ( #209 )
2026-02-20 12:08:26 +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 Sarfaraz
eed5c2adba
Gemini api key issue ( #204 )
...
* uggo ternary fix
* fix ai studio url
* service returns a 403 if unauthed
* pass validation correctly
* fix response format
* Update orchestrator/src/client/pages/settings/utils.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix nested ternaries client
* server fix
* Address PR #204 review feedback and stabilize CI
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-20 00:01:34 +00:00
Shaheer Sarfaraz
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
8b71bef5cf
Feat/job page relevant actions ( #197 )
...
* initial commit
* ui better-ish
* ci fix
2026-02-19 18:59: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
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
16dd17ebea
Fix Tailor CV adding new skills and restore original skills on revert ( #190 )
...
* Initial commit
* refactor slightly
* refactor and fix bugs
2026-02-18 23:23:33 +00:00
Shaheer Sarfaraz
b88d00b15d
Make projects optional when moving jobs to Ready ( #189 )
...
* Make resume projects optional and reuse selection rules
* Apply Biome import/format fixes
* Handle explicit empty project selection in PDF generation
* Hide selected projects section when catalog is empty
* Avoid projects section flash while catalog is loading
2026-02-18 22:31:59 +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
Shaheer Sarfaraz
032626bd7d
Fix #162 : real-time bulk action streaming progress ( #187 )
...
* initial
* refactor: centralize SSE plumbing for client and server
* docs: add centralized SSE usage standards to agents guide
* use sse to stream actions to the client
* ui: align bulk progress toast with default sonner style
* ui: remove hide action from bulk progress toast
* full width progress bar
* fix(stream): track client disconnect and writability
* fix(stream): stop bulk loop when SSE client disconnects
* fix(stream): avoid writing error/end to closed SSE response
* fix(stream): gate started/progress frames on writable SSE socket
* types(api): narrow SSE stream payload input contract
* refactor(ui): share clamp helper for bulk progress
* fix(stream): add heartbeat to bulk action SSE route
* feat(stream): include completed count in bulk completion event
* fix(client-sse): separate parse vs handler errors and cancel reader
2026-02-18 15:54:39 +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
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
Shaheer Sarfaraz
1f929dfc7f
Create the setup for the documentation page ( #171 )
...
* don't run for generated docusaurus
* format
* workflow to autoupdate docs version
* fix versioning
* add link back to app
* remove old docs
* html link???
* don't track .docusaurus
* documantation build
2026-02-15 22:50:52 +00:00
DaKheera47
3c41df9ba8
Initial setup
2026-02-15 22:20:56 +00:00
DaKheera47
420299fffe
race condition 2
2026-02-15 22:20:56 +00:00
DaKheera47
2fc692557f
race condition
2026-02-15 22:20:56 +00:00
DaKheera47
2536e184a7
add tests
2026-02-15 22:20:56 +00:00
DaKheera47
ac7eca190a
formatting
2026-02-15 22:20:41 +00:00
DaKheera47
bd3edcaae5
better settings menu
2026-02-15 22:20:41 +00:00
DaKheera47
048da93b72
meta shortcut
2026-02-15 22:20:41 +00:00
DaKheera47
239e6955ba
ghostwriter copy
2026-02-15 22:20:41 +00:00
DaKheera47
07b3c23492
better UX
2026-02-15 22:20:41 +00:00
DaKheera47
06dfda996c
ghostwriter button placement
2026-02-15 22:20:31 +00:00
DaKheera47
2e76235e13
markdown renderer
2026-02-15 22:20:08 +00:00
DaKheera47
ff6a64656f
dont pop up keyboard shortcuts
2026-02-15 22:20:08 +00:00
DaKheera47
8d2d80fcc1
copy improvement
2026-02-15 22:20:08 +00:00
DaKheera47
8b8120bf1d
single thread
2026-02-15 22:19:55 +00:00
DaKheera47
91f08b944d
ui improvements
2026-02-15 22:19:34 +00:00
DaKheera47
3b86e56c22
separate component
2026-02-15 22:19:26 +00:00
DaKheera47
5a5cbb40ac
ghostwriter panel
2026-02-15 22:17:37 +00:00
DaKheera47
f9abd6ff74
rename code
2026-02-15 22:17:19 +00:00
DaKheera47
672eb3d2b9
Ghostwriter always enabled
2026-02-15 22:16:50 +00:00
DaKheera47
00531c83c4
initlal commit
2026-02-15 22:16:50 +00:00
Shaheer Sarfaraz
d0b4091a60
Ghostwriter Introduced ( #166 )
...
* initlal commit
* Ghostwriter always enabled
* rename code
* ghostwriter panel
* separate component
* ui improvements
* single thread
* copy improvement
* dont pop up keyboard shortcuts
* markdown renderer
* ghostwriter button placement
* better UX
* ghostwriter copy
* meta shortcut
* better settings menu
* formatting
* doocumentation
* add tests
* race condition
* race condition 2
* pass title
* more comments
* comments
* formtting
2026-02-15 22:03:37 +00:00
Shaheer Sarfaraz
e6563e74c3
Add visual feedback for Move to Ready action ( #165 )
...
* feat(orchestrator): add visual feedback when moving jobs to Ready
- Added `toast.message("Moving job to Ready...")` in `OrchestratorPage.tsx` for single item keyboard shortcut action.
- Added `toast.message("Moving jobs to Ready...")` in `useBulkJobSelection.ts` for bulk `move_to_ready` action.
- Updated `OrchestratorPage.test.tsx` to verify the toast notification.
This addresses the issue where pressing 'R' provided no visual feedback until the action completed.
* fix(orchestrator): remove accidental db files
Removed `orchestrator/data/jobs.db`, `orchestrator/data/jobs.db-shm`, and `orchestrator/data/jobs.db-wal` which were accidentally created during testing.
* fix(orchestrator): remove accidental root sqlite.db
Removed `orchestrator/sqlite.db` which was also accidentally created.
2026-02-15 18:44:28 +00:00
Shaheer Sarfaraz
f8b5dc2f42
In progress flow ( #163 )
...
* initial commit
* move from applied to in-progress
* KANBAN BOARD!
* backfill jobs
* backfill rejected jobs
* drag events 😋
* fix backfill bug
* UI improvements
* remove applied
* gold near offer
* team match meeting swim lane
* formatting
* Add tests for InProgressBoardPage and enhance job stage handling
2026-02-15 00:45:45 +00:00
Marcin Szymański
cc84157149
support RXResume config URL config in onboarding ( #159 )
...
* support RXResume config URL config in onboarding
* update documentation and fix linting
2026-02-12 22:04:32 +00:00
Shaheer Sarfaraz
d4d2c0c26b
initial commit ( #158 )
2026-02-12 19:59:25 +00:00
Shaheer Sarfaraz
687fd5e91f
feat(post-application): automatically pull from email ( #145 )
...
* feat(post-application): add schema and shared types for provider ingestion (#136 )
* test(orchestrator): ensure full localStorage shape in vitest setup
* feat(post-application): add provider registry and dispatcher framework (#137 ) (#146 )
* Implement Gmail provider credential persistence (#147 )
* Add unified post-application provider action API (#148 )
* Implement Gmail ingestion sync with 95/60 relevance policy
* Implement Gmail ingestion sync with 95/60 relevance policy (#149 )
* feat(post-application): add job mapping engine with llm rerank fallback
* feat(post-application): add inbox review APIs with transactional approve/deny (#151 )
* feat(post-application): add tracking inbox UI with provider controls (#152 )
* oauth implementation
* UI changes
* see past runs in more detail
* occurred at comes from email
* state mismatch
* better UI representation
* comments
* comments
* comments
* comments
* documentation
* explainer
* set things manually
* scrolling
* any found email can be pending
* searchable download
* Email-to-Job Matching Decision Tree
* email viewer list improvement
* simplification initial commit
* exclude discovered jobs
* show only resady
* dropdown
* mermaid
* syntax
* targets is the same as logging that is done manually
* event label
* duplicate avoidance
* clean up html
* token saving
* print
* send idx not uuid
* remove logging
* formatting
* better documentation
* documentation
* comments
* process all
* comments
2026-02-12 19:48:25 +00:00