Skip to content

INDA-HR/python_sdk

Repository files navigation

alt text

Introduction

INDA (INtelligent Data Analysis) is an Intervieweb AI solution provided as a RESTful API.

The INDA pricing model is credits-based, which means that a certain number of credits is associated to each API request. Hence, users have to purchase a certain amount of credits (established according to their needs) which will be reduced at each API call. INDA accepts and processes a user's request only if their credits quota is greater than - or, at least, equal to - the number of credits required by that request. To obtain further details on the pricing, please visit our site or contact us.

INDA HR embraces a wide range of functionalities to manage the main elements of a recruitment process:

  • candidate (hereafter also referred to as resume or applicant), or rather a person looking for a job;
  • job advertisement (hereafter also referred to as job ad), which is a document that collects all the main information and details about a job vacancy;
  • application, that binds candidates to job ads; it is generated whenever a candidate applies for a job.

Each of them has a specific set of methods that grants users the ability to create, read, update and delete the relative documents, plus some special features based on AI approaches (such as document parsing or semantic search). They can be explored in their respective sections.

Data about the listed document types can be enriched by connecting them to other INDA supported entities, such as companies and universities, so that recruiters may get a better and more detailed idea on the candidates' experiences and acquired skills.

All the functionalities mentioned above are meant to help recruiters during the talent acquisition process, by exploiting the power of AI systems. Among the advantages a recruiter has by using this kind of systems, tackling the bias problem is surely one of the most relevant. Bias in recruitment is a serious issue that affect both recruiters and candidates, since it may cause wrong hiring decisions. As we care a lot about this problem, we are constantly working on reduce the bias in original data so that INDA results may be as fair as possible. As of now, in order to tackle the bias issue, INDA automatically ignores specific fields (such as name, gender, age and nationality) during the initial processing of each candidate data.

Furthermore, we decided to let users collect data of various types, including personal or sensitive details, but we do not allow their usage if it is different from statistical purposes; our aim is to discourage recruiters from focusing on candidates' personal information, and to put their attention on the candidate's skills and abilities.

We want to help recruiters to prevent any kind of bias while searching for the most valuable candidates they really need.

The following documentation is addressed both to developers, in order to provide all technical details for INDA integration, and to managers, to guide them in the exploration of the implementation possibilities.

The host of the API is https://api.inda.ai/hr/v2. We recommend to check the API version and build (displayed near the documentation title). You can contact us at support@intervieweb.it in case of problems, suggestions, or particular needs.

This Python package is automatically generated by the OpenAPI Generator project:

  • API version: >= 2.0.0
  • Package version: 2.2.0
  • Build package: org.openapitools.codegen.languages.PythonClientCodegen For more information, please visit https://inda.ai

Requirements.

Python >=3.6

Installation & Usage

pip install

If the python package is hosted on a repository, you can install directly using:

pip install git+https://github.com/GIT_USER_ID/GIT_REPO_ID.git

(you may need to run pip with root permission: sudo pip install git+https://github.com/GIT_USER_ID/GIT_REPO_ID.git)

Then import the package:

import inda_hr

Setuptools

Install via Setuptools.

python setup.py install --user

(or sudo python setup.py install to install the package for all users)

Then import the package:

import inda_hr

Getting Started

Please follow the installation procedure and then run the following:

import time
import inda_hr
from pprint import pprint
from inda_hr.api import application_management_api
from inda_hr.model.application_id_response import ApplicationIDResponse
from inda_hr.model.application_responses_status import ApplicationResponsesStatus
from inda_hr.model.application_status_request import ApplicationStatusRequest
from inda_hr.model.apply_item_request import ApplyItemRequest
from inda_hr.model.base_application_request import BaseApplicationRequest
from inda_hr.model.delete_application_response import DeleteApplicationResponse
from inda_hr.model.delete_applications_response import DeleteApplicationsResponse
from inda_hr.model.delete_candidates_response import DeleteCandidatesResponse
from inda_hr.model.error_model import ErrorModel
from inda_hr.model.get_application_response import GetApplicationResponse
from inda_hr.model.get_applications_response import GetApplicationsResponse
from inda_hr.model.get_candidates_response import GetCandidatesResponse
from inda_hr.model.http_validation_error import HTTPValidationError
from inda_hr.model.jobad_id import JobadId
from inda_hr.model.patch_application_request import PatchApplicationRequest
from inda_hr.model.patch_application_response import PatchApplicationResponse
# Defining the host is optional and defaults to https://api.inda.ai
# See configuration.py for a list of all supported configuration parameters.
configuration = inda_hr.Configuration(
    host = "https://api.inda.ai"
)

# The client must configure the authentication and authorization parameters
# in accordance with the API server security policy.
# Examples for each auth method are provided below, use the example that
# satisfies your auth use case.

# Configure Bearer authorization: APIKey
configuration = inda_hr.Configuration(
    access_token = 'YOUR_BEARER_TOKEN'
)


# Enter a context with an instance of the API client
with inda_hr.ApiClient(configuration) as api_client:
    # Create an instance of the API class
    api_instance = application_management_api.ApplicationManagementApi(api_client)
    indexname = "indexname_example" # str | 
    jobad_id = JobadId(None) # JobadId | 
    resume_id = "resume_id_example" # str | 
    base_application_request = BaseApplicationRequest(
        data=ApplicationCommonData(
            objective=BaseBenefitsValueModelStrictStr(
                value="value_example",
            ),
            professional_summary=BaseBenefitsValueModelStrictStr(
                value="value_example",
            ),
            desired_employment=ResumeEmployment(
                code=BaseBenefitsValueModelStrictStr(
                    value="value_example",
                ),
                category=BaseBenefitsValueModelStrictStr(
                    value="value_example",
                ),
                type=EmploymentType(
                    value="value_example",
                ),
                industries=[
                    BaseEmploymentsIndustry(
                        value="value_example",
                    ),
                ],
                functional_areas=[
                    BaseBenefitsValueModelStrictStr(
                        value="value_example",
                    ),
                ],
            ),
            desired_contracts=[
                ResumeContract(
                    type=ContractType(
                        value="value_example",
                    ),
                    duration=ValueModelInt(
                        value=1,
                    ),
                    start_date=ValueModelDatetime(
                        value=dateutil_parser('1970-01-01T00:00:00.00Z'),
                    ),
                    end_date=ValueModelDatetime(
                        value=dateutil_parser('1970-01-01T00:00:00.00Z'),
                    ),
                ),
            ],
            desired_salary=ResumeSalary(
                amount=RangeFloat(
                    range=Range(None),
                ),
                currency=Currency(
                    value="value_example",
                ),
                frequency=Frequency(
                    value="YEARLY",
                ),
                type=BaseSalariesType(
                    value="GROSS",
                ),
            ),
            desired_benefits=[
                ResumeBenefit(
                    value="value_example",
                ),
            ],
            desired_locations=[
                BaseLocationsLocation(
                    city=BaseBenefitsValueModelStrictStr(
                        value="value_example",
                    ),
                    country=BaseBenefitsValueModelStrictStr(
                        value="value_example",
                    ),
                    geo_coordinates=ValueModelGeoLocation(
                        value=GeoLocation(
                            lat=-90.0,
                            lon=-180.0,
                        ),
                    ),
                    country_code=BaseBenefitsValueModelStrictStr(
                        value="value_example",
                    ),
                    postal_code=BaseBenefitsValueModelStrictStr(
                        value="value_example",
                    ),
                    street_address=BaseBenefitsValueModelStrictStr(
                        value="value_example",
                    ),
                    county=BaseBenefitsValueModelStrictStr(
                        value="value_example",
                    ),
                    region=BaseBenefitsValueModelStrictStr(
                        value="value_example",
                    ),
                ),
            ],
            relocation_preferences=RelocationPreferences(
                details=RelocationBoolBaseModel(
                    is_possible=True,
                    is_mandatory=True,
                    is_all_expenses_paid=True,
                ),
                relocation_date=RangeDatetime(
                    range=Range1(None),
                ),
            ),
            remote_working=JobAdRemoteWorking(
                type=JobAdRemoteWorkingType(
                    details=BoolBaseModel(
                        is_possible=True,
                        is_mandatory=True,
                    ),
                    value="value_example",
                ),
                frequency=Frequency1(None),
            ),
            job_shift=JobShift(
                details=BoolBaseModel(
                    is_possible=True,
                    is_mandatory=True,
                ),
                type=JobShiftType(
                    value="DAY_SHIFT",
                ),
                frequency=Frequency2(None),
            ),
            origin_links=[
                JobadLinkLink(
                    url=JobadLinkURL(
                        value="value_example",
                    ),
                    label=JobadLinkLinkLabel(
                        value="value_example",
                    ),
                ),
            ],
        ),
        hiring_details=HiringDetails(
            application_date=dateutil_parser('1970-01-01').date(),
            hiring_date=dateutil_parser('1970-01-01').date(),
            hiring_pipeline=[
                HiringPipelineStage(
                    date=dateutil_parser('1970-01-01T00:00:00.00Z'),
                    description="description_example",
                    status="APPLIED",
                ),
            ],
        ),
    ) # BaseApplicationRequest |  (optional)

    try:
        # Add Application
        api_response = api_instance.add_application_post(indexname, jobad_id, resume_id, base_application_request=base_application_request)
        pprint(api_response)
    except inda_hr.ApiException as e:
        print("Exception when calling ApplicationManagementApi->add_application_post: %s\n" % e)

Documentation for API Endpoints

All URIs are relative to https://api.inda.ai

Class Method HTTP request Description
ApplicationManagementApi add_application_post POST /hr/v2/index/{indexname}/jobad/{jobad_id}/applications/resume/{resume_id}/ Add Application
ApplicationManagementApi add_application_stage_post POST /hr/v2/index/{indexname}/jobad/{jobad_id}/applications/resume/{resume_id}/hiring-pipeline/stage/ Add Application Stage
ApplicationManagementApi application_status_get GET /hr/v2/index/{indexname}/jobad/{jobad_id}/applications/resume/{resume_id}/status/ Application Status
ApplicationManagementApi apply_post POST /hr/v2/index/{indexname}/jobad/{jobad_id}/apply/ Apply
ApplicationManagementApi delete_applicants_delete DELETE /hr/v2/index/{indexname}/jobad/{jobad_id}/applications/resumes/ Delete Applicants
ApplicationManagementApi delete_application_delete DELETE /hr/v2/index/{indexname}/jobad/{jobad_id}/applications/resume/{resume_id}/ Delete Application
ApplicationManagementApi delete_application_stage_delete DELETE /hr/v2/index/{indexname}/jobad/{jobad_id}/applications/resume/{resume_id}/hiring-pipeline/stage/ Delete Application Stage
ApplicationManagementApi delete_applications_delete DELETE /hr/v2/index/{indexname}/resume/{resume_id}/applications/jobads/ Delete Applications
ApplicationManagementApi get_applicants_get GET /hr/v2/index/{indexname}/jobad/{jobad_id}/applications/resumes/ Get Applicants
ApplicationManagementApi get_application_get GET /hr/v2/index/{indexname}/jobad/{jobad_id}/applications/resume/{resume_id}/ Get Application
ApplicationManagementApi get_applications_get GET /hr/v2/index/{indexname}/resume/{resume_id}/applications/jobads/ Get Applications
ApplicationManagementApi patch_application_patch PATCH /hr/v2/index/{indexname}/jobad/{jobad_id}/applications/resume/{resume_id}/ Patch Application
AuthenticationApi log_in_post POST /hr/v2/auth/login/ Log In
ClearCacheApi clear_search_results_delete DELETE /hr/v2/index/{indexname}/resumes/search/scroll/ Clear Search Results
CompanyManagementApi add_company_post POST /hr/v2/company/ Add Company
CompanyManagementApi company_autocomplete_get GET /hr/v2/company/name/search/autocomplete/ Company Autocomplete
CompanyManagementApi get_company_get GET /hr/v2/company/{company_id}/ Get Company
CompanyManagementApi patch_company_patch PATCH /hr/v2/company/{company_id}/ Patch Company
CreditsManagementApi search_credits_post POST /hr/v2/index/{indexname}/credits/ Search Credits
CustomizationsApi customize_resumes_post POST /hr/v2/index/{indexname}/resumes/customize/ Customize Resumes
CustomizationsApi get_resume_customizations_get GET /hr/v2/index/{indexname}/resumes/mapping/ Get Resume Customizations
ESCOApi esco_occupations_hierarchy_get GET /hr/v2/occupations/similar/esco/hierarchy/ ESCO Occupations Hierarchy
ESCOApi esco_skills_hierarchy_get GET /hr/v2/skills/similar/esco/hierarchy/ ESCO Skills Hierarchy
ESCOApi from_description_to_esco_occupations_post POST /hr/v2/occupations/description/match/esco/ From description to ESCO Occupations
ESCOApi from_description_to_esco_skills_post POST /hr/v2/skills/description/match/esco/ From description to ESCO Skills
ESCOApi mapping_esco_get GET /hr/v2/occupations/mapping/esco/ Mapping ESCO
ESCOApi mapping_isco_get GET /hr/v2/occupations/mapping/isco/ Mapping ISCO
ESCOApi mapping_istat_cp2011_get GET /hr/v2/occupations/mapping/istat/ Mapping ISTAT-CP2011
ESCOApi mapping_onet_get GET /hr/v2/occupations/mapping/onet/ Mapping O*NET
ESCOApi similar_esco_occupations_get GET /hr/v2/occupations/similar/esco/ Similar ESCO Occupations
ESCOApi similar_esco_skills_get GET /hr/v2/skills/similar/esco/ Similar ESCO Skills
FailuresApi get_failures_get GET /hr/v2/index/{indexname}/failures/ Get Failures
FeedbackApi info_extraction_feedback_post POST /hr/v2/feedback/index/{indexname}/resume/{resume_id}/parse/data/ Info Extraction Feedback
FeedbackApi semantic_search_feedback_post POST /hr/v2/feedback/index/{indexname}/resume/{resume_id}/search/semantic/ Semantic Search Feedback
JobAdKnowledgeExtractionApi extract_jobtitles_from_jobad_post POST /hr/v2/parse/jobad/jobtitles/ Extract JobTitles from JobAd
JobAdKnowledgeExtractionApi extract_languages_from_jobad_post POST /hr/v2/parse/jobad/languages/ Extract Languages from JobAd
JobAdKnowledgeExtractionApi extract_skills_from_jobad_post POST /hr/v2/parse/jobad/skills/ Extract Skills from JobAd
JobAdManagementApi add_jobad_post POST /hr/v2/index/{indexname}/jobad/ Add JobAd
JobAdManagementApi delete_jobad_delete DELETE /hr/v2/index/{indexname}/jobad/{jobad_id}/ Delete JobAd
JobAdManagementApi get_jobad_get GET /hr/v2/index/{indexname}/jobad/{jobad_id}/ Get JobAd
JobAdManagementApi get_jobads_get GET /hr/v2/index/{indexname}/jobads/ Get JobAds
JobAdManagementApi patch_jobad_patch PATCH /hr/v2/index/{indexname}/jobad/{jobad_id}/ Patch JobAd
JobAdSearchApi full_text_search_on_jobads_post POST /hr/v2/index/{indexname}/jobads/search/full-text/ Full-Text Search on JobAds
JobAdSearchApi search_applications_post POST /hr/v2/index/{indexname}/resume/{resume_id}/applications/jobads/search/ Search Applications
JobAdToResumesApi match_resumes_evidence_from_indexed_jobad_post POST /hr/v2/index/{indexname}/resumes/matching/jobad/{jobad_id}/evidence/ Match Resumes Evidence from indexed JobAd
JobAdToResumesApi match_resumes_evidence_post POST /hr/v2/index/{indexname}/resumes/matching/jobad/evidence/ Match Resumes Evidence
JobAdToResumesApi match_resumes_from_indexed_jobad_post POST /hr/v2/index/{indexname}/resumes/matching/jobad/{jobad_id}/ Match Resumes from indexed JobAd
JobAdToResumesApi match_resumes_post POST /hr/v2/index/{indexname}/resumes/matching/jobad/ Match Resumes
KeywordsSearchApi keywords_autocomplete_get GET /hr/v2/keywords/search/autocomplete/ Keywords Autocomplete
KeywordsSearchApi similar_words_in_resume_post POST /hr/v2/index/{indexname}/resume/{resume_id}/keywords/search/semantic/ Similar Words in Resume
KeywordsSearchApi similar_words_post POST /hr/v2/keywords/search/semantic/ Similar Words
MappingCareerCausewaysApi career_recommendation_post POST /hr/v2/resume/career/occupation/recommendation/ Career Recommendation
MappingCareerCausewaysApi occupation_activities_comparison_post POST /hr/v2/resume/career/occupation/activities/comparison/ Occupation Activities Comparison
MappingCareerCausewaysApi occupation_skill_comparison_post POST /hr/v2/resume/career/occupation/skills/comparison/ Occupation Skill Comparison
MappingCareerCausewaysApi upskilling_simulator_post POST /hr/v2/resume/career/simulator/upskilling/ Upskilling simulator
OccupationsApi similar_jobtitles_get GET /hr/v2/occupations/similar/semantic/ Similar JobTitles
ResumeImportApi aws_import_post POST /hr/v2/index/{indexname}/resumes/import/aws/ AWS Import
ResumeImportApi import_status_get GET /hr/v2/index/{indexname}/resumes/import/aws/status/ Import Status
ResumeManagementApi add_resume_post POST /hr/v2/index/{indexname}/resume/ Add Resume
ResumeManagementApi delete_pic_delete DELETE /hr/v2/index/{indexname}/resume/{resume_id}/pic/ Delete Pic
ResumeManagementApi delete_resume_delete DELETE /hr/v2/index/{indexname}/resume/{resume_id}/ Delete Resume
ResumeManagementApi get_cv_get GET /hr/v2/index/{indexname}/resume/{resume_id}/document/ Get CV
ResumeManagementApi get_cv_text_get GET /hr/v2/index/{indexname}/resume/{resume_id}/text/ Get CV Text
ResumeManagementApi get_pic_get GET /hr/v2/index/{indexname}/resume/{resume_id}/pic/ Get Pic
ResumeManagementApi get_resume_get GET /hr/v2/index/{indexname}/resume/{resume_id}/ Get Resume
ResumeManagementApi patch_resume_patch PATCH /hr/v2/index/{indexname}/resume/{resume_id}/ Patch Resume
ResumeManagementApi resume_status_get GET /hr/v2/index/{indexname}/resume/{resume_id}/status/ Resume Status
ResumeManagementApi update_pic_put PUT /hr/v2/index/{indexname}/resume/{resume_id}/pic/ Update Pic
ResumeManagementApi update_resume_put PUT /hr/v2/index/{indexname}/resume/{resume_id}/ Update Resume
ResumeParsingApi anonymize_cv_post POST /hr/v2/parse/resume/anonymize/ Anonymize CV
ResumeParsingApi bulk_map_entity_post POST /hr/v2/keywords/bulk/map/entity/ Bulk Map Entity
ResumeParsingApi map_entity_post POST /hr/v2/keywords/map/entity/ Map Entity
ResumeParsingApi parse_resume_post POST /hr/v2/parse/resume/data/ Parse Resume
ResumeParsingApi text_extraction_post POST /hr/v2/parse/resume/text/ Text Extraction
ResumeSearchApi full_text_search_on_resumes_post POST /hr/v2/index/{indexname}/resumes/search/full-text/ Full-Text Search on Resumes
ResumeSearchApi search_applicants_post POST /hr/v2/index/{indexname}/jobad/{jobad_id}/applications/resumes/search/ Search Applicants
ResumeSearchApi search_resumes_evidence_post POST /hr/v2/index/{indexname}/resumes/search/semantic/evidence/ Search Resumes Evidence
ResumeSearchApi search_resumes_post POST /hr/v2/index/{indexname}/resumes/search/semantic/ Search Resumes
ResumeToJobAdsApi match_jobads_evidence_from_indexed_resume_post POST /hr/v2/index/{indexname}/jobads/matching/resume/{resume_id}/evidence/ Match JobAds Evidence from indexed Resume
ResumeToJobAdsApi match_jobads_evidence_post POST /hr/v2/index/{indexname}/jobads/matching/resume/evidence/ Match JobAds Evidence
ResumeToJobAdsApi match_jobads_from_indexed_resume_post POST /hr/v2/index/{indexname}/jobads/matching/resume/{resume_id}/ Match JobAds from indexed Resume
ResumeToJobAdsApi match_jobads_post POST /hr/v2/index/{indexname}/jobads/matching/resume/ Match JobAds
ResumeToResumesApi similar_resumes_post POST /hr/v2/index/{indexname}/resumes/matching/resume/{resume_id}/ Similar Resumes
SkillsApi similar_skills_get GET /hr/v2/skills/similar/semantic/ Similar Skills
SkillsApi skills_classification_post POST /hr/v2/skills/classification/ Skills Classification
StandardizedDataApi get_company_size_get GET /hr/v2/data/company/size/ Get Company Size
StandardizedDataApi get_company_type_get GET /hr/v2/data/company/type/ Get Company Type
StandardizedDataApi get_contract_type_get GET /hr/v2/data/contract/type/ Get Contract Type
StandardizedDataApi get_disability_get GET /hr/v2/data/disability/ Get Disability
StandardizedDataApi get_education_title_get GET /hr/v2/data/education/title/ Get Education Title
StandardizedDataApi get_email_label_get GET /hr/v2/data/email/label/ Get Email Label
StandardizedDataApi get_employment_type_get GET /hr/v2/data/employment/type/ Get Employment Type
StandardizedDataApi get_field_of_study_get GET /hr/v2/data/education/field-of-study/ Get Field Of Study
StandardizedDataApi get_gender_get GET /hr/v2/data/gender/ Get Gender
StandardizedDataApi get_industries_get GET /hr/v2/data/industries/ Get Industries
StandardizedDataApi get_job_function_get GET /hr/v2/data/job/function/ Get Job Function
StandardizedDataApi get_jobshift_type_get GET /hr/v2/data/jobshift/type/ Get Jobshift Type
StandardizedDataApi get_license_code_get GET /hr/v2/data/license/type/{license_type}/code/ Get License Code
StandardizedDataApi get_license_type_get GET /hr/v2/data/license/type/ Get License Type
StandardizedDataApi get_link_label_get GET /hr/v2/data/link/label/ Get Link Label
StandardizedDataApi get_marital_status_get GET /hr/v2/data/marital-status/ Get Marital Status
StandardizedDataApi get_name_prefix_get GET /hr/v2/data/name/prefix/ Get Name Prefix
StandardizedDataApi get_name_suffix_get GET /hr/v2/data/name/suffix/ Get Name Suffix
StandardizedDataApi get_patent_status_get GET /hr/v2/data/patent/status/ Get Patent Status
StandardizedDataApi get_phone_label_get GET /hr/v2/data/phone/label/ Get Phone Label
StandardizedDataApi get_protected_group_get GET /hr/v2/data/protected-group/ Get Protected Group
StandardizedDataApi get_remote_working_get GET /hr/v2/data/employment/remote-working/ Get Remote Working
StandardizedDataApi get_salary_frequency_get GET /hr/v2/data/salary/frequency/ Get Salary Frequency
StandardizedDataApi get_salary_type_get GET /hr/v2/data/salary/type/ Get Salary Type
StandardizedDataApi get_seniority_level_get GET /hr/v2/data/seniority/level/ Get Seniority Level
StartingWithIndicesApi most_recent_resumes_get GET /hr/v2/index/{indexname}/resumes/latest/ Most Recent Resumes
StartingWithIndicesApi stats_index_get GET /hr/v2/index/{indexname}/stats/ Stats Index
UniversitiesApi get_university_get GET /hr/v2/university/{university_id}/ Get University
UniversitiesApi university_autocomplete_get GET /hr/v2/university/name/search/autocomplete/ University Autocomplete
UtilitiesApi clear_index_cache_delete DELETE /hr/v2/index/{indexname}/cache/ Clear Index Cache
UtilitiesApi health_status_get GET /hr/v2/ Health Status

Documentation For Models

Documentation For Authorization

APIKey

  • Type: Bearer authentication

Author

info@intervieweb.it

Notes for Large OpenAPI documents

If the OpenAPI document is large, imports in inda_hr.apis and inda_hr.models may fail with a RecursionError indicating the maximum recursion limit has been exceeded. In that case, there are a couple of solutions:

Solution 1: Use specific imports for apis and models like:

  • from inda_hr.api.default_api import DefaultApi
  • from inda_hr.model.pet import Pet

Solution 2: Before importing the package, adjust the maximum recursion limit as shown below:

import sys
sys.setrecursionlimit(1500)
import inda_hr
from inda_hr.apis import *
from inda_hr.models import *