ByteRiot/CandidateExplorer
1
1---2title: Candidate Explorer3emoji: ๐4colorFrom: purple5colorTo: gray6sdk: docker7app_port: 78608---9 10## Schemas11```plain121. Build Schema13 a. table: cv_users โ
14 - user_id15 - username16 - hashed_password17 - email18 - full_name19 - role20 - is_active21 - tenant_id22 - created_at23 - date_modified24 - notes25 b. table: cv_tenant โ
26 - tenant_id27 - tenant_name28 - created_at29 - date_modified30 - notes31 c. table: cv_file โ
32 - file_id33 - file_type34 - filename35 - url36 - is_extracted37 - uploaded_at38 - date_modified39 d. table: cv_profile โ
40 - profile_id41 - fullname42 - gpa_edu_143 - univ_edu_144 - major_edu_145 - gpa_edu_246 - univ_edu_247 - major_edu_248 - gpa_edu_349 - univ_edu_350 - major_edu_351 - domicile52 - yoe53 - hardskills54 - softskills55 - certifications56 - business_domain57 - filename58 - file_id59 - created_at60 e. table: cv_filter61 - criteria_id62 - gpa_edu_163 - gpa_edu_264 - gpa_edu_365 - univ_edu_166 - univ_edu_267 - univ_edu_368 - major_edu_169 - major_edu_270 - major_edu_371 - domicile72 - yoe73 - hardskills74 - softskills75 - certifications76 - business_domain77 - created_at78 f. table: cv_weight โ
79 - weight_id80 - gpa_edu_181 - gpa_edu_282 - gpa_edu_383 - univ_edu_184 - univ_edu_285 - univ_edu_386 - major_edu_187 - major_edu_288 - major_edu_389 - domicile90 - yoe91 - hardskills92 - softskills93 - certifications94 - business_domain95 - created_at96 g. table: cv_matching โ
97 - matching_id98 - profile_id99 - criteria_id100 - gpa_edu_1101 - gpa_edu_2102 - gpa_edu_3103 - univ_edu_1104 - univ_edu_2105 - univ_edu_3106 - major_edu_1107 - major_edu_2108 - major_edu_3109 - domicile110 - yoe111 - hardskills112 - softskills113 - certifications114 - business_domain115 - created_at116 g. table: profile_scores โ
117 - score_id118 - matching_id119 - score120 - created_at121```122 123 124## List API125### User126```plain127POST /admin/users โ
Create user128POST /admin/login โ
Login, returns JWT Bearer token129GET /admin/me โ
Get current authenticated user130```131### Tenant132```plain133POST /admin/tenants โ
Create tenant134GET /admin/tenants/{name} โ
Get tenant by name135```136### File137```plain138POST /file/upload โ
Upload multiple PDF files139GET /file/user/{user_id} โ
Get file metadata by user140DELETE /file/{filename} โ
Soft-delete file (marks is_deleted=True)141GET /file/score_card โ
Dashboard summary (total files, extracted profiles, %)142```143### Profile144```plain145POST /profile/extract_profile โ
Extract structured profile from a CV PDF146GET /profile/{profile_id} โ
Get extracted profile by ID147GET /profile/profiles/{criteria_id} โ
Get profiles by criteria ID148```149### Agentic150```plain151POST /agentic/create_filter โ
Create filter/criteria152GET /agentic/filter/{criteria_id} โ
Get filter by ID153POST /agentic/create_weight โ
Create weight config for scoring154POST /agentic/calculate_score โ ๏ธ DEPRECATED Old single scoring endpoint155POST /agentic/v2/calculate_score โ
Bulk scoring (v2, recommended)156```157 158## How To 1591. Init schema on DB160`uv run python -m externals.databases.pg_schema_up`161 1622. Drop schema on DB163`uv run python -m externals.databases.pg_schema_down`164 165 166Compile pyproject.toml to requirements.txt167`uv pip compile pyproject.toml -o requirements.txt`