Commit Graph

374 Commits (2e0e6b1ddaa40f6c8327d482a45f99ec7dcd23ca)

Author SHA1 Message Date
ahmed.mujtaba 2e0e6b1dda notification 2026-09-07 13:55:32 +05:00
ahmed.mujtaba ac49a903ae . 2026-09-04 21:00:54 +05:00
ahmed.mujtaba 74ad8dd7e1 Merge branch 'main' of https://git.utopiadeals.com/utopia-ai/HR-ATS-Portal into SQS_BROKER 2026-09-04 19:26:11 +05:00
ahmed.mujtaba 40c25caeff frontend bar 2026-09-04 19:24:13 +05:00
ahmed.mujtaba 7e11d136e8 Merge pull request 'Implement application history retrieval for candidates and enhance reapplication tracking' (#71) from SQS_BROKER into main
Deploy to S3 / deploy (push) Successful in 33s Details
Reviewed-on: #71
2026-09-04 14:08:39 +00:00
ahmed.mujtaba 6ae6f0538d Merge branch 'main' of https://git.utopiadeals.com/utopia-ai/HR-ATS-Portal into SQS_BROKER 2026-09-04 19:07:53 +05:00
ahmed.mujtaba 6b4ad6b0dd Implement application history retrieval for candidates and enhance reapplication tracking
- Added methods to retrieve application history by email across various sources (inbox, manual uploads, form data).
- Introduced new serializers for application history items and overall history.
- Updated candidate and inbox views to include application history in responses.
- Enhanced frontend components to display reapplication badges and previous application details.
- Adjusted API endpoints to support fetching application history based on email input.
2026-09-04 19:06:22 +05:00
ahmed.mujtaba 14a2817afd Merge pull request 'approved permission' (#70) from SQS_BROKER into main
Deploy to S3 / deploy (push) Successful in 32s Details
Reviewed-on: #70
2026-09-04 13:00:19 +00:00
ahmed.mujtaba b33aa0c322 Merge branch 'main' of https://git.utopiadeals.com/utopia-ai/HR-ATS-Portal into SQS_BROKER 2026-09-04 17:59:48 +05:00
ahmed.mujtaba c5d603c621 approved permission 2026-09-04 17:58:19 +05:00
ahmed.mujtaba 0365ee3a8f Merge pull request 'permission module base applied' (#69) from SQS_BROKER into main
Deploy to S3 / deploy (push) Successful in 37s Details
Reviewed-on: #69
2026-09-04 11:49:42 +00:00
ahmed.mujtaba 3cdfdd4c4c Merge branch 'main' of https://git.utopiadeals.com/utopia-ai/HR-ATS-Portal into SQS_BROKER 2026-09-04 16:49:14 +05:00
ahmed.mujtaba 4086bbdeb4 permission module base applied 2026-09-04 16:48:30 +05:00
ahmed.mujtaba 6a1f5ba9fa Merge pull request 'SQS_BROKER' (#68) from SQS_BROKER into main
Deploy to S3 / deploy (push) Successful in 33s Details
Reviewed-on: #68
2026-09-04 11:12:47 +00:00
ahmed.mujtaba c353f41b20 Merge branch 'main' of https://git.utopiadeals.com/utopia-ai/HR-ATS-Portal into SQS_BROKER 2026-09-04 16:11:53 +05:00
ahmed.mujtaba 0558af52c4 . 2026-09-04 16:10:56 +05:00
ahmed.mujtaba d541b82067 Merge pull request 'deparmetn req1 maanged' (#67) from SQS_BROKER into main
Deploy to S3 / deploy (push) Successful in 35s Details
Reviewed-on: #67
2026-09-04 08:08:28 +00:00
ahmed.mujtaba 6ebdd7c5ba deparmetn req1 maanged 2026-09-04 13:07:18 +05:00
Talha Ahmed 0d209315ab Candidates: show ATS score, stage and recruiter instead of just an email column
Deploy to S3 / deploy (push) Successful in 34s Details
The recruiter table was user-centric (GET /candidate/fetch/users), so it could
only ever render account fields - name, email, created date. Everything a
recruiter actually triages on lives on the application, not the user.

Point the table at GET /candidate/fetch and map application rows through a new
toApplicationListView, adding Job, ATS (score + band chip), Stage and Recruiter
columns. Stage and band become real filters; the dead Department facet is gone.

Manual uploads came back unscored because the list path never joined the ATS
results, so attach scores there and expose ai_score/recommendation from the
manager serializer, deriving the band from the score when the model omitted it.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-03 20:59:04 +05:00
Talha Ahmed 8540577531 Fix inbox loading stall
Deploy to S3 / deploy (push) Successful in 34s Details
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-03 19:59:26 +05:00
ahmed.mujtaba 2101fbac74 Merge pull request 'remove the ui bnutton' (#66) from Implement_Changes into main
Deploy to S3 / deploy (push) Successful in 39s Details
Reviewed-on: #66
2026-09-03 14:01:41 +00:00
ahmed.mujtaba 3ca8e2d287 Merge branch 'main' of https://git.utopiadeals.com/utopia-ai/HR-ATS-Portal into Implement_Changes 2026-09-03 19:00:44 +05:00
ahmed.mujtaba cb94d8bc51 remove the ui bnutton 2026-09-03 18:59:47 +05:00
ahmed.mujtaba d1455ed117 Merge pull request 'Implement_Changes' (#65) from Implement_Changes into main
Deploy to S3 / deploy (push) Successful in 36s Details
Reviewed-on: #65
2026-09-03 13:18:40 +00:00
ahmed.mujtaba a6d12be5fb Merge branch 'main' of https://git.utopiadeals.com/utopia-ai/HR-ATS-Portal into Implement_Changes 2026-09-03 18:17:51 +05:00
ahmed.mujtaba 6c1d4c848e dater format done 2026-09-03 18:16:30 +05:00
ahmed.mujtaba 3f142570f6 Merge pull request 'Implement_Changes' (#64) from Implement_Changes into main
Deploy to S3 / deploy (push) Successful in 37s Details
Reviewed-on: #64
2026-09-03 11:27:42 +00:00
ahmed.mujtaba fb94db5f41 Merge branch 'main' of https://git.utopiadeals.com/utopia-ai/HR-ATS-Portal into Implement_Changes 2026-09-03 16:25:22 +05:00
ahmed.mujtaba e22da6ed0b . 2026-09-03 16:13:09 +05:00
ahmed.mujtaba 1133517117 . 2026-09-03 16:03:42 +05:00
ahmed.mujtaba 1399cf3fec Cv_extractor of g_sheet 2026-09-03 15:15:16 +05:00
talha.ahmed 2400f0fef8 Merge pull request 'Roles: consolidate the hand-made Manager role; Title Case role names' (#63) from Talha into main
Deploy to S3 / deploy (push) Successful in 31s Details
2026-09-02 17:11:11 +00:00
Talha Ahmed e7752b94e6 Roles: consolidate the hand-made Manager role; Title Case role names
Migration 027 moves live members of the UI-created Manager role onto
the seeded hiring_manager (which has carried the same
manager_candidates bundle since 024) and soft-deletes it - guarded and
idempotent, the seeded role is never matched.

Access Control no longer lists candidate: it is the applicant account
type every candidate user sits on, managed nowhere near a permission
matrix. The row stays in the DB.

New lib/format.js formatRole renders snake_case role names and
ALL-CAPS status enums as Title Case everywhere users see them -
Access Control, Settings user badges and role picker, the topbar
profile, Candidates role column and export, and the inbox
application-status badges (INTERVIEW -> Interview).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-02 22:10:17 +05:00
talha.ahmed e292714b88 Merge pull request 'Roles: prune unused seeded staff roles down to the org�s four' (#62) from Talha into main
Deploy to S3 / deploy (push) Successful in 35s Details
2026-09-02 17:01:10 +00:00
Talha Ahmed b7700b766a Roles: prune unused seeded staff roles down to the org's four
The organisation runs four staff roles - system_administrator,
recruiter, hiring_manager, department_head. Migration 026 soft-deletes
hr_administrator, interviewer and ceo (listings filter on is_deleted,
so they vanish from Access Control and every role picker). candidate
stays: it is the applicant account type every candidate user sits on,
not a staff role. Guarded: a role that still has live members is left
untouched until they are reassigned, and the idempotent migration picks
it up on a later boot.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-02 21:59:08 +05:00
Talha Ahmed cc9d7c08d1 Brand-styled XLSX exports across Inbox, Candidates and Talent Pool
New shared lib/exportXlsx.js: every Export button now downloads a
dashboard-flavoured .xlsx - deep-green title band with lime text, mint
meta row (view, row count, date), ink-teal header row, zebra data rows,
frozen header and autofilter. exceljs is imported dynamically so its
~1MB chunk only downloads when an export is clicked.

- Inbox: exports the loaded view (DB-filtered; no extra request)
- Candidates: the Export button was a stub that only fired a toast -
  it now really exports the filtered account list
- Talent Pool: upgraded from plain CSV to the same styled workbook

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-02 20:40:43 +05:00
talha.ahmed 30123563e9 Merge pull request 'Brand-styled XLSX exports (Inbox, Candidates, Talent Pool)' (#61) from Talha into main
Deploy to S3 / deploy (push) Successful in 32s Details
2026-09-02 15:40:26 +00:00
talha.ahmed 15bdd5c08a Merge pull request 'Inbox: Export CSV button; graceful partial failure on the All channel' (#60) from Talha into main
Deploy to S3 / deploy (push) Successful in 37s Details
2026-09-02 15:25:01 +00:00
Talha Ahmed 56a05f840f Inbox: Export CSV button; graceful partial failure on the All channel
Export downloads the current view - channel, tab and search respected,
fetched unpaged - as UTF-8 CSV (BOM for Excel) with both sources'
columns: name, contact, position, channel, source, received, status,
city, notice period, ATS score, assigned job.

All channel resilience: when exactly one source fails, the healthy
list stays with a one-line notice naming the gap; the full error state
now renders only when there are no rows at all (cached rows beat a
scary banner over a working list).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-02 20:20:36 +05:00
talha.ahmed 0be2ba035a Merge pull request 'Inbox: single page scroll on phones, detail takes over from the list' (#59) from Talha into main
Deploy to S3 / deploy (push) Successful in 41s Details
2026-09-02 15:12:48 +00:00
Talha Ahmed 2abc28fc14 Inbox: single page scroll on phones, detail takes over from the list
The stacked split nested two scroll wells (list and detail each carried
max-height + overflow-y auto) inside the page scroll - scrollbars within
scrollbars on small screens. At <=900px both panes now flow naturally in
the one page scroll, and selecting an application swaps the list out for
the detail pane with a Back to list button (standard master-detail
collapse); selection also scrolls to the top so the detail header is in
view. Desktop keeps the two-pane split unchanged.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-02 20:12:18 +05:00
Talha Ahmed fbfcbb4eb8 Inbox: redesign the form applicant detail pane
Standard card language instead of the email-head strips: Contact &
application, Profile and Matching roles are now proper cards with
card-heads. The roles panel collapses three overlapping controls into
one flow - a single Browse roles action, with Assign appearing only
once a selection exists (a permanently disabled primary button read as
broken UI). Sheet provenance moves off the floating header corner into
the Imported from ... row N caption, and the action bar gains a
divider (email pane too, for consistency).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-02 19:40:03 +05:00
talha.ahmed 0e3c5d5551 Merge pull request 'Inbox: redesign the form applicant detail pane' (#58) from Talha into main
Deploy to S3 / deploy (push) Successful in 39s Details
2026-09-02 14:39:44 +00:00
Talha Ahmed ef8d77ccfe Inbox: tidy the queue pagination
The stacked pager read as three loose rows with 'of N' printed twice.
Queue-scoped: drop the duplicate page-size total (the Showing line
already carries it), wrap page-controls with even gaps, and slim the
page buttons so all nine nav controls (4 chevrons + up to 5 numbers)
fit the ~350px split column on one row.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-02 19:20:49 +05:00
talha.ahmed 25382cdce7 Merge pull request 'Inbox: tidy the queue pagination' (#57) from Talha into main
Deploy to S3 / deploy (push) Successful in 34s Details
2026-09-02 14:20:31 +00:00
Talha Ahmed 2e66c91d63 Inbox: drop the Google Sheets status chip too
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-02 19:13:42 +05:00
talha.ahmed c08e28a18c Merge pull request 'Inbox: drop the Google Sheets status chip too' (#56) from Talha into main
Deploy to S3 / deploy (push) Successful in 32s Details
2026-09-02 14:13:23 +00:00
talha.ahmed 12dc77542d Merge pull request 'Inbox: drop the Microsoft Graph API status chip' (#55) from Talha into main
Deploy to S3 / deploy (push) Successful in 34s Details
2026-09-02 12:59:06 +00:00
Talha Ahmed 59afcadec9 Inbox: drop the Microsoft Graph API status chip from the header
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-02 17:57:27 +05:00
talha.ahmed 08db8dda15 Merge pull request 'Inbox: All channel first and default' (#54) from Talha into main
Deploy to S3 / deploy (push) Successful in 33s Details
2026-09-02 12:52:15 +00:00