Spaces:
Sleeping
Sleeping
| title: Candidate Explorer | |
| emoji: π | |
| colorFrom: purple | |
| colorTo: gray | |
| sdk: docker | |
| app_port: 7860 | |
| ## Schemas | |
| ```plain | |
| 1. Build Schema | |
| a. table: cv_users β | |
| - user_id | |
| - username | |
| - hashed_password | |
| - full_name | |
| - role | |
| - is_active | |
| - tenant_id | |
| - created_at | |
| - date_modified | |
| - notes | |
| b. table: cv_tenant β | |
| - tenant_id | |
| - tenant_name | |
| - created_at | |
| - date_modified | |
| - notes | |
| c. table: cv_file β | |
| - file_id | |
| - file_type | |
| - filename | |
| - url | |
| - is_extracted | |
| - uploaded_at | |
| - date_modified | |
| d. table: cv_profile β | |
| - profile_id | |
| - fullname | |
| - gpa_edu_1 | |
| - univ_edu_1 | |
| - major_edu_1 | |
| - gpa_edu_2 | |
| - univ_edu_2 | |
| - major_edu_2 | |
| - gpa_edu_3 | |
| - univ_edu_3 | |
| - major_edu_3 | |
| - domicile | |
| - yoe | |
| - hardskills | |
| - softskills | |
| - certifications | |
| - business_domain | |
| - filename | |
| - file_id | |
| - created_at | |
| e. table: cv_filter | |
| - criteria_id | |
| - gpa_edu_1 | |
| - gpa_edu_2 | |
| - gpa_edu_3 | |
| - univ_edu_1 | |
| - univ_edu_2 | |
| - univ_edu_3 | |
| - major_edu_1 | |
| - major_edu_2 | |
| - major_edu_3 | |
| - domicile | |
| - yoe | |
| - hardskills | |
| - softskills | |
| - certifications | |
| - business_domain | |
| - created_at | |
| f. table: cv_weight β | |
| - weight_id | |
| - gpa_edu_1 | |
| - gpa_edu_2 | |
| - gpa_edu_3 | |
| - univ_edu_1 | |
| - univ_edu_2 | |
| - univ_edu_3 | |
| - major_edu_1 | |
| - major_edu_2 | |
| - major_edu_3 | |
| - domicile | |
| - yoe | |
| - hardskills | |
| - softskills | |
| - certifications | |
| - business_domain | |
| - created_at | |
| g. table: cv_matching β | |
| - matching_id | |
| - profile_id | |
| - criteria_id | |
| - gpa_edu_1 | |
| - gpa_edu_2 | |
| - gpa_edu_3 | |
| - univ_edu_1 | |
| - univ_edu_2 | |
| - univ_edu_3 | |
| - major_edu_1 | |
| - major_edu_2 | |
| - major_edu_3 | |
| - domicile | |
| - yoe | |
| - hardskills | |
| - softskills | |
| - certifications | |
| - business_domain | |
| - created_at | |
| g. table: profile_scores β | |
| - score_id | |
| - matching_id | |
| - score | |
| - created_at | |
| ``` | |
| ## List API | |
| ### User | |
| ```plain | |
| POST /admin/users β Create user | |
| POST /admin/login β Login, returns JWT Bearer token | |
| GET /admin/me β Get current authenticated user | |
| ``` | |
| ### Tenant | |
| ```plain | |
| POST /admin/tenants β Create tenant | |
| GET /admin/tenants/{name} β Get tenant by name | |
| ``` | |
| ### File | |
| ```plain | |
| POST /file/upload β Upload multiple PDF files | |
| GET /file/user/{user_id} β Get file metadata by user | |
| DELETE /file/{filename} β Soft-delete file (marks is_deleted=True) | |
| GET /file/score_card β Dashboard summary (total files, extracted profiles, %) | |
| ``` | |
| ### Profile | |
| ```plain | |
| POST /profile/extract_profile β Extract structured profile from a CV PDF | |
| GET /profile/{profile_id} β Get extracted profile by ID | |
| GET /profile/profiles/{criteria_id} β Get profiles by criteria ID | |
| ``` | |
| ### Agentic | |
| ```plain | |
| POST /agentic/create_filter β Create filter/criteria | |
| GET /agentic/filter/{criteria_id} β Get filter by ID | |
| POST /agentic/create_weight β Create weight config for scoring | |
| POST /agentic/calculate_score β οΈ DEPRECATED Old single scoring endpoint | |
| POST /agentic/v2/calculate_score β Bulk scoring (v2, recommended) | |
| ``` | |
| ## How To | |
| 1. Init schema on DB | |
| `uv run python -m externals.databases.pg_schema_up` | |
| 2. Drop schema on DB | |
| `uv run python -m externals.databases.pg_schema_down` | |
| Compile pyproject.toml to requirements.txt | |
| `uv pip compile pyproject.toml -o requirements.txt` |