Commit Graph

472 Commits (756023e30450ab99cdf9544850cd7027613f18ac)

Author SHA1 Message Date
ahmed.mujtaba 63672be613 Merge pull request 'added canddiates listing' (#37) from Canidates_listong_order into main
Deploy to S3 / deploy (push) Successful in 32s Details
Reviewed-on: #37
2026-08-31 08:21:22 +00:00
ahmed.mujtaba 62491d5f75 added canddiates listing 2026-08-31 13:20:08 +05:00
ahmed.mujtaba 259c41c049 Merge pull request 'Account_Hide' (#36) from Account_Hide into main
Deploy to S3 / deploy (push) Successful in 35s Details
Reviewed-on: #36
2026-08-31 08:05:47 +00:00
ahmed.mujtaba 245cda736f Merge branch 'main' of https://git.utopiadeals.com/utopia-ai/HR-ATS-Portal into Account_Hide 2026-08-31 13:04:59 +05:00
ahmed.mujtaba eff4c166b3 hide account coloumn 2026-08-31 13:03:29 +05:00
ahmed.mujtaba 3660fec0a8 Merge pull request 'Coorect_Order_by' (#35) from Coorect_Order_by into main
Deploy to S3 / deploy (push) Successful in 38s Details
Reviewed-on: #35
2026-08-31 07:55:26 +00:00
ahmed.mujtaba 56f529afa1 frontend skip logic done 2026-08-31 12:54:24 +05:00
ahmed.mujtaba 17ddc09b00 Merge branch 'main' of https://git.utopiadeals.com/utopia-ai/HR-ATS-Portal into Coorect_Order_by 2026-08-31 12:42:52 +05:00
ahmed.mujtaba 31742c2c49 correct sort implemented 2026-08-31 12:42:00 +05:00
ahmed.mujtaba cd2dd5a5c0 Merge pull request 'Connect_Talent_x_Recruiter' (#34) from Connect_Talent_x_Recruiter into main
Deploy to S3 / deploy (push) Successful in 33s Details
Reviewed-on: #34
2026-08-31 07:12:21 +00:00
ahmed.mujtaba b0b73bdf4a Merge branch 'main' of https://git.utopiadeals.com/utopia-ai/HR-ATS-Portal into Connect_Talent_x_Recruiter 2026-08-31 00:32:19 +05:00
ahmed.mujtaba bb056456fc the pipeline and dashboard synced 2026-08-31 00:27:27 +05:00
ahmed.mujtaba 4b84ae4a30 recruiterhub activity improvement 2026-08-30 23:24:00 +05:00
ahmed.mujtaba 9dadcb4698 dropdwon inserted 2026-08-30 22:01:43 +05:00
ahmed.mujtaba fd53730efe add hiring manager added 2026-08-30 21:49:08 +05:00
ahmed.mujtaba 7f3735362e talentpool filter workds 2026-08-30 20:50:06 +05:00
ahmed.mujtaba 07f849a699 Merge pull request 'is approved and file uplaod done' (#33) from Is_Approved into main
Deploy to S3 / deploy (push) Successful in 42s Details
Reviewed-on: #33
2026-08-28 15:04:45 +00:00
ahmed.mujtaba 893e32f666 Merge branch 'main' of https://git.utopiadeals.com/utopia-ai/HR-ATS-Portal into Is_Approved 2026-08-28 20:03:46 +05:00
ahmed.mujtaba db176cf672 is approved and file uplaod done 2026-08-28 20:02:38 +05:00
ahmed.mujtaba 2fcc4eab6a Merge pull request 'Is_Approved' (#32) from Is_Approved into main
Deploy to S3 / deploy (push) Successful in 34s Details
Reviewed-on: #32
2026-08-28 14:38:25 +00:00
ahmed.mujtaba 76e4552679 Merge branch 'main' of https://git.utopiadeals.com/utopia-ai/HR-ATS-Portal into Is_Approved 2026-08-28 19:37:45 +05:00
ahmed.mujtaba e4c5ffec20 is_approved, and file_pat aded 2026-08-28 19:36:22 +05:00
ahmed.mujtaba 8c55b17919 Merge pull request 'frotnedn and bnackend crashing check' (#31) from RELIMIt into main
Deploy to S3 / deploy (push) Successful in 39s Details
Reviewed-on: #31
2026-08-28 13:23:38 +00:00
ahmed.mujtaba 7921b54141 Merge branch 'RELIMIt' of https://git.utopiadeals.com/utopia-ai/HR-ATS-Portal into RELIMIt 2026-08-28 18:23:12 +05:00
ahmed.mujtaba d316a57edb Merge branch 'main' of https://git.utopiadeals.com/utopia-ai/HR-ATS-Portal into RELIMIt 2026-08-28 18:23:09 +05:00
ahmed.mujtaba 2e0c04a70e Merge branch 'main' into RELIMIt 2026-08-28 13:22:49 +00:00
ahmed.mujtaba 4e1efa559c frotnedn and bnackend crashing check 2026-08-28 18:22:13 +05:00
ahmed.mujtaba 60438cf271 Merge pull request 'candidate s3 lkinked' (#30) from RELIMIt into main
Deploy to S3 / deploy (push) Successful in 37s Details
Reviewed-on: #30
2026-08-28 13:16:09 +00:00
ahmed.mujtaba 1c3f29ca49 Merge branch 'main' of https://git.utopiadeals.com/utopia-ai/HR-ATS-Portal into RELIMIt 2026-08-28 18:15:18 +05:00
ahmed.mujtaba fef9fa827b candidate s3 lkinked 2026-08-28 18:10:28 +05:00
ahmed.mujtaba a3960e4ac7 Merge pull request 'RELIMIt' (#29) from RELIMIt into main
Deploy to S3 / deploy (push) Successful in 34s Details
Reviewed-on: #29
2026-08-28 11:46:01 +00:00
ahmed.mujtaba 617e8bae43 ditrect foirst dirtect last 2026-08-28 16:44:14 +05:00
ahmed.mujtaba b6703f31dc add cout 2026-08-28 16:38:37 +05:00
ahmed.mujtaba a21d7c3eca . 2026-08-28 16:38:04 +05:00
ahmed.mujtaba 4d343c991a . 2026-08-28 16:29:01 +05:00
ahmed.mujtaba 12fa4f87fc Merge branch 'main' of https://git.utopiadeals.com/utopia-ai/HR-ATS-Portal into RELIMIt 2026-08-28 16:28:55 +05:00
ahmed.mujtaba b5d2b05a6d Hiring manager 2026-08-28 15:54:21 +05:00
ahmed.mujtaba c03a640c96 hiring manager and page limti implmeneted 2026-08-28 15:54:07 +05:00
ahmed.mujtaba 7e07df18ca s3 configured pending testing 2026-08-28 13:32:25 +05:00
ahmed.mujtaba 1ab52b7292 canidate flow 2026-08-27 21:03:06 +05:00
Talha Ahmed 5575a1a6aa UI fixes and job lifecycle actions
Deploy to S3 / deploy (push) Successful in 35s Details
- Jobs list: close/reopen action per requisition with confirm on close
- Settings: real timezone and currency option lists
- Assigned-role chip: readable color pairing on soft background
- Scrollbars: Chromium honors the styled ::-webkit-scrollbar again
  (scrollbar-color now gated to Firefox), slightly wider hit area
- Topbar hamburger: hidden on desktop (specificity fix) and the drawer
  closes itself when the window grows past the mobile breakpoint
- Content scroller: removed overscroll containment that killed wheel
  scrolling everywhere except the scrollbar thumb

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-27 19:43:24 +05:00
Talha Ahmed 1ae5249d18 CV bank: production-safe file storage + candidates visibility
Deploy to S3 / deploy (push) Successful in 37s Details
The banked PDF now lives IN the database (new cv_bank_files table,
manual migration 010, auto-applied at startup) instead of the container
filesystem, so production redeploys cannot lose a stored CV; upload
writes row + bytes in one commit and creates no disk file at all. New
GET /candidate/cv-bank/file serves the bytes for both download and the
in-app preview.

Per user request, banking a CV with a detectable email also creates or
reactivates the candidate account (same pattern as manual add, no setup
email), so banked people appear on the Candidates screen; a CV without
an email still banks fine, account-less. Existing bank rows were
backfilled locally.

E2E-verified: upload -> bank row + DB bytes + zero disk files, preview
and download served from the DB, candidate visible on the Candidates
screen.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-27 19:38:40 +05:00
Talha Ahmed 0b19f3ce08 CV bank: in-app preview — view a stored CV without downloading
Deploy to S3 / deploy (push) Successful in 37s Details
Each bank row gains an eye action that opens the PDF in a modal iframe.
fetchBlobUrl learned an optional MIME re-type: /documents/download sends
octet-stream, which would trigger a download instead of the inline
viewer, so the blob is re-wrapped as application/pdf. Object URL revoked
on close. Download and remove actions unchanged.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-27 19:26:31 +05:00
ahmed.mujtaba d47e90b9ec . 2026-08-27 19:21:33 +05:00
Talha Ahmed 9f610a9078 CV bank: private storage for No-Job CV imports
Deploy to S3 / deploy (push) Successful in 36s Details
Storing a CV without a job no longer rides the cv_upload pipeline, which
created a candidate user account and an inbox row — stored CVs were
leaking into the Candidates screen. New cv-bank endpoints instead write
apply_via=cv_bank rows in manual_upload_candidate (nullable user/job
FKs): file + parsed text only, no account, no inbox entry, no scoring,
and email is optional (captured when the CV contains one). The CV Import
screen now shows the bank itself below the dropzone — browse, download
(existing /documents/download route) and delete.

E2E-verified: uploads land as BANKED rows with user_id NULL, zero new
accounts or inbox rows, UI delete works, Candidates screen unchanged.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-27 19:20:38 +05:00
Talha Ahmed d1ca1e933d CV Import: No-Job mode — store CVs in the CV bank
Deploy to S3 / deploy (push) Successful in 36s Details
The job picker gains a No job / store in CV bank option: files upload
one-per-request through the existing POST /candidate/cv_upload pipeline
(email auto-detected from the CV, saved as an UNASSIGNED inbox item with
background job suggestions) instead of being scored. Queue rows show
Stored plus the detected email; a CV with no detectable email fails
alone with a clear message. In this mode the scored grid gives way to a
panel linking Job Matching and the Inbox, where stored CVs are browsed
and later assigned. Also guarded the matcher enqueue in ingest_upload:
with the broker down the upload used to 500 after the row was inserted.

E2E-verified: two CVs stored (emails detected), rows visible in DB with
assigned_job_post_id NULL, both surfaced in Job Matching and the Inbox.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-27 19:11:13 +05:00
ahmed.mujtaba d5a51a28b0 / 2026-08-27 18:54:40 +05:00
ahmed.mujtaba b10d02f325 . 2026-08-27 17:59:21 +05:00
ahmed.mujtaba ecd9b3597a form integrated 2026-08-27 17:32:03 +05:00
Talha Ahmed ccec7d48db Job cover images: move storage from disk into the database
Deploy to S3 / deploy (push) Successful in 31s Details
Production containers have ephemeral filesystems, so the disk-backed
image from the previous commit would vanish on redeploy. New
job_post_images table (bytea, PK = job_posts FK so re-upload replaces),
created everywhere by manual migration 009 which run_manual_sql applies
automatically at startup — prod boots with DB_AUTOGENERATE=false and
never autogenerates tables. Upload/fetch endpoints unchanged for the
frontend; fetch now serves bytes from the row. The one locally stored
disk image was imported into the table and backend/uploads removed.

E2E re-verified: create-with-image 200, fetch 200, cover renders.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-27 16:34:04 +05:00