Skip to content

INDA-HR/php_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.

For more information, please visit https://inda.ai.

Installation & Usage

Requirements

PHP 7.4 and later. Should also work with PHP 8.0.

Composer

To install the latest version of the bindings via Packagist, run:

composer require inda-hr/php_sdk.

Manual Installation

Download the files and include autoload.php:

<?php
require_once('/path/to/OpenAPIClient-php/vendor/autoload.php');

Getting Started

Please follow the installation procedure and then run the following:

<?php
require_once(__DIR__ . '/vendor/autoload.php');



// Configure Bearer authorization: APIKey
$config = OpenAPI\Client\Configuration::getDefaultConfiguration()->setAccessToken('YOUR_ACCESS_TOKEN');


$apiInstance = new OpenAPI\Client\Api\ApplicationManagementApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);
$indexname = 'indexname_example'; // string
$jobad_id = new \OpenAPI\Client\Model\JobadId(); // JobadId
$resume_id = 'resume_id_example'; // string
$base_application_request = {"Data":{"Objective":{"Value":"PHP developer looking for a position at a small independent company."},"ProfessionalSummary":{"Value":"Software engineer with 3+ years experience and a particular interest for solving complex problems."},"DesiredSalary":{"Amount":{"Value":34000},"Currency":{"Value":"USD"},"Frequency":{"Value":"YEARLY"},"Type":{"Value":"GROSS"}},"DesiredBenefits":[{"Value":"vouchers"},{"Value":"pc"},{"Value":"phone"}],"OriginLinks":[{"Label":{"Value":"LinkedIn"},"URL":{"Value":"https://www.linkedin.com/jobs/view/php-developer-at-new-york-23415417368"}}]},"HiringDetails":{"ApplicationDate":"2021-04-12","HiringPipeline":[{"Date":"2021-04-12T09:20:23","Status":"APPLIED"}]}}; // \OpenAPI\Client\Model\BaseApplicationRequest

try {
    $result = $apiInstance->addApplicationPOST($indexname, $jobad_id, $resume_id, $base_application_request);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling ApplicationManagementApi->addApplicationPOST: ', $e->getMessage(), PHP_EOL;
}

API Endpoints

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

Class Method HTTP request Description
ApplicationManagementApi addApplicationPOST POST /hr/v2/index/{indexname}/jobad/{jobad_id}/applications/resume/{resume_id}/ Add Application
ApplicationManagementApi addApplicationStagePOST POST /hr/v2/index/{indexname}/jobad/{jobad_id}/applications/resume/{resume_id}/hiring-pipeline/stage/ Add Application Stage
ApplicationManagementApi applicationStatusGET GET /hr/v2/index/{indexname}/jobad/{jobad_id}/applications/resume/{resume_id}/status/ Application Status
ApplicationManagementApi applyPOST POST /hr/v2/index/{indexname}/jobad/{jobad_id}/apply/ Apply
ApplicationManagementApi deleteApplicantsDELETE DELETE /hr/v2/index/{indexname}/jobad/{jobad_id}/applications/resumes/ Delete Applicants
ApplicationManagementApi deleteApplicationDELETE DELETE /hr/v2/index/{indexname}/jobad/{jobad_id}/applications/resume/{resume_id}/ Delete Application
ApplicationManagementApi deleteApplicationStageDELETE DELETE /hr/v2/index/{indexname}/jobad/{jobad_id}/applications/resume/{resume_id}/hiring-pipeline/stage/ Delete Application Stage
ApplicationManagementApi deleteApplicationsDELETE DELETE /hr/v2/index/{indexname}/resume/{resume_id}/applications/jobads/ Delete Applications
ApplicationManagementApi getApplicantsGET GET /hr/v2/index/{indexname}/jobad/{jobad_id}/applications/resumes/ Get Applicants
ApplicationManagementApi getApplicationGET GET /hr/v2/index/{indexname}/jobad/{jobad_id}/applications/resume/{resume_id}/ Get Application
ApplicationManagementApi getApplicationsGET GET /hr/v2/index/{indexname}/resume/{resume_id}/applications/jobads/ Get Applications
ApplicationManagementApi patchApplicationPATCH PATCH /hr/v2/index/{indexname}/jobad/{jobad_id}/applications/resume/{resume_id}/ Patch Application
AuthenticationApi logInPOST POST /hr/v2/auth/login/ Log In
ClearCacheApi clearSearchResultsDELETE DELETE /hr/v2/index/{indexname}/resumes/search/scroll/ Clear Search Results
CompanyManagementApi addCompanyPOST POST /hr/v2/company/ Add Company
CompanyManagementApi companyAutocompleteGET GET /hr/v2/company/name/search/autocomplete/ Company Autocomplete
CompanyManagementApi getCompanyGET GET /hr/v2/company/{company_id}/ Get Company
CompanyManagementApi patchCompanyPATCH PATCH /hr/v2/company/{company_id}/ Patch Company
CreditsManagementApi searchCreditsPOST POST /hr/v2/index/{indexname}/credits/ Search Credits
CustomizationsApi customizeResumesPOST POST /hr/v2/index/{indexname}/resumes/customize/ Customize Resumes
CustomizationsApi getResumeCustomizationsGET GET /hr/v2/index/{indexname}/resumes/mapping/ Get Resume Customizations
ESCOApi escoOccupationsHierarchyGET GET /hr/v2/occupations/similar/esco/hierarchy/ ESCO Occupations Hierarchy
ESCOApi escoSkillsHierarchyGET GET /hr/v2/skills/similar/esco/hierarchy/ ESCO Skills Hierarchy
ESCOApi fromDescriptionToEscoOccupationsPOST POST /hr/v2/occupations/description/match/esco/ From description to ESCO Occupations
ESCOApi fromDescriptionToEscoSkillsPOST POST /hr/v2/skills/description/match/esco/ From description to ESCO Skills
ESCOApi mappingEscoGET GET /hr/v2/occupations/mapping/esco/ Mapping ESCO
ESCOApi mappingIscoGET GET /hr/v2/occupations/mapping/isco/ Mapping ISCO
ESCOApi mappingIstatCp2011GET GET /hr/v2/occupations/mapping/istat/ Mapping ISTAT-CP2011
ESCOApi mappingOnetGET GET /hr/v2/occupations/mapping/onet/ Mapping O*NET
ESCOApi similarEscoOccupationsGET GET /hr/v2/occupations/similar/esco/ Similar ESCO Occupations
ESCOApi similarEscoSkillsGET GET /hr/v2/skills/similar/esco/ Similar ESCO Skills
FailuresApi getFailuresGET GET /hr/v2/index/{indexname}/failures/ Get Failures
FeedbackApi infoExtractionFeedbackPOST POST /hr/v2/feedback/index/{indexname}/resume/{resume_id}/parse/data/ Info Extraction Feedback
FeedbackApi semanticSearchFeedbackPOST POST /hr/v2/feedback/index/{indexname}/resume/{resume_id}/search/semantic/ Semantic Search Feedback
JobAdKnowledgeExtractionApi extractJobtitlesFromJobadPOST POST /hr/v2/parse/jobad/jobtitles/ Extract JobTitles from JobAd
JobAdKnowledgeExtractionApi extractLanguagesFromJobadPOST POST /hr/v2/parse/jobad/languages/ Extract Languages from JobAd
JobAdKnowledgeExtractionApi extractSkillsFromJobadPOST POST /hr/v2/parse/jobad/skills/ Extract Skills from JobAd
JobAdManagementApi addJobadPOST POST /hr/v2/index/{indexname}/jobad/ Add JobAd
JobAdManagementApi deleteJobadDELETE DELETE /hr/v2/index/{indexname}/jobad/{jobad_id}/ Delete JobAd
JobAdManagementApi getJobadGET GET /hr/v2/index/{indexname}/jobad/{jobad_id}/ Get JobAd
JobAdManagementApi getJobadsGET GET /hr/v2/index/{indexname}/jobads/ Get JobAds
JobAdManagementApi patchJobadPATCH PATCH /hr/v2/index/{indexname}/jobad/{jobad_id}/ Patch JobAd
JobAdSearchApi fullTextSearchOnJobadsPOST POST /hr/v2/index/{indexname}/jobads/search/full-text/ Full-Text Search on JobAds
JobAdSearchApi searchApplicationsPOST POST /hr/v2/index/{indexname}/resume/{resume_id}/applications/jobads/search/ Search Applications
JobAdToResumesApi matchResumesEvidenceFromIndexedJobadPOST POST /hr/v2/index/{indexname}/resumes/matching/jobad/{jobad_id}/evidence/ Match Resumes Evidence from indexed JobAd
JobAdToResumesApi matchResumesEvidencePOST POST /hr/v2/index/{indexname}/resumes/matching/jobad/evidence/ Match Resumes Evidence
JobAdToResumesApi matchResumesFromIndexedJobadPOST POST /hr/v2/index/{indexname}/resumes/matching/jobad/{jobad_id}/ Match Resumes from indexed JobAd
JobAdToResumesApi matchResumesPOST POST /hr/v2/index/{indexname}/resumes/matching/jobad/ Match Resumes
KeywordsSearchApi keywordsAutocompleteGET GET /hr/v2/keywords/search/autocomplete/ Keywords Autocomplete
KeywordsSearchApi similarWordsInResumePOST POST /hr/v2/index/{indexname}/resume/{resume_id}/keywords/search/semantic/ Similar Words in Resume
KeywordsSearchApi similarWordsPOST POST /hr/v2/keywords/search/semantic/ Similar Words
MappingCareerCausewaysApi careerRecommendationPOST POST /hr/v2/resume/career/occupation/recommendation/ Career Recommendation
MappingCareerCausewaysApi occupationActivitiesComparisonPOST POST /hr/v2/resume/career/occupation/activities/comparison/ Occupation Activities Comparison
MappingCareerCausewaysApi occupationSkillComparisonPOST POST /hr/v2/resume/career/occupation/skills/comparison/ Occupation Skill Comparison
MappingCareerCausewaysApi upskillingSimulatorPOST POST /hr/v2/resume/career/simulator/upskilling/ Upskilling simulator
OccupationsApi similarJobtitlesGET GET /hr/v2/occupations/similar/semantic/ Similar JobTitles
ResumeImportApi awsImportPOST POST /hr/v2/index/{indexname}/resumes/import/aws/ AWS Import
ResumeImportApi importStatusGET GET /hr/v2/index/{indexname}/resumes/import/aws/status/ Import Status
ResumeManagementApi addResumePOST POST /hr/v2/index/{indexname}/resume/ Add Resume
ResumeManagementApi deletePicDELETE DELETE /hr/v2/index/{indexname}/resume/{resume_id}/pic/ Delete Pic
ResumeManagementApi deleteResumeDELETE DELETE /hr/v2/index/{indexname}/resume/{resume_id}/ Delete Resume
ResumeManagementApi getCvGET GET /hr/v2/index/{indexname}/resume/{resume_id}/document/ Get CV
ResumeManagementApi getCvTextGET GET /hr/v2/index/{indexname}/resume/{resume_id}/text/ Get CV Text
ResumeManagementApi getPicGET GET /hr/v2/index/{indexname}/resume/{resume_id}/pic/ Get Pic
ResumeManagementApi getResumeGET GET /hr/v2/index/{indexname}/resume/{resume_id}/ Get Resume
ResumeManagementApi patchResumePATCH PATCH /hr/v2/index/{indexname}/resume/{resume_id}/ Patch Resume
ResumeManagementApi resumeStatusGET GET /hr/v2/index/{indexname}/resume/{resume_id}/status/ Resume Status
ResumeManagementApi updatePicPUT PUT /hr/v2/index/{indexname}/resume/{resume_id}/pic/ Update Pic
ResumeManagementApi updateResumePUT PUT /hr/v2/index/{indexname}/resume/{resume_id}/ Update Resume
ResumeParsingApi anonymizeCvPOST POST /hr/v2/parse/resume/anonymize/ Anonymize CV
ResumeParsingApi bulkMapEntityPOST POST /hr/v2/keywords/bulk/map/entity/ Bulk Map Entity
ResumeParsingApi mapEntityPOST POST /hr/v2/keywords/map/entity/ Map Entity
ResumeParsingApi parseResumePOST POST /hr/v2/parse/resume/data/ Parse Resume
ResumeParsingApi textExtractionPOST POST /hr/v2/parse/resume/text/ Text Extraction
ResumeSearchApi fullTextSearchOnResumesPOST POST /hr/v2/index/{indexname}/resumes/search/full-text/ Full-Text Search on Resumes
ResumeSearchApi searchApplicantsPOST POST /hr/v2/index/{indexname}/jobad/{jobad_id}/applications/resumes/search/ Search Applicants
ResumeSearchApi searchResumesEvidencePOST POST /hr/v2/index/{indexname}/resumes/search/semantic/evidence/ Search Resumes Evidence
ResumeSearchApi searchResumesPOST POST /hr/v2/index/{indexname}/resumes/search/semantic/ Search Resumes
ResumeToJobAdsApi matchJobadsEvidenceFromIndexedResumePOST POST /hr/v2/index/{indexname}/jobads/matching/resume/{resume_id}/evidence/ Match JobAds Evidence from indexed Resume
ResumeToJobAdsApi matchJobadsEvidencePOST POST /hr/v2/index/{indexname}/jobads/matching/resume/evidence/ Match JobAds Evidence
ResumeToJobAdsApi matchJobadsFromIndexedResumePOST POST /hr/v2/index/{indexname}/jobads/matching/resume/{resume_id}/ Match JobAds from indexed Resume
ResumeToJobAdsApi matchJobadsPOST POST /hr/v2/index/{indexname}/jobads/matching/resume/ Match JobAds
ResumeToResumesApi similarResumesPOST POST /hr/v2/index/{indexname}/resumes/matching/resume/{resume_id}/ Similar Resumes
SkillsApi similarSkillsGET GET /hr/v2/skills/similar/semantic/ Similar Skills
SkillsApi skillsClassificationPOST POST /hr/v2/skills/classification/ Skills Classification
StandardizedDataApi getCompanySizeGET GET /hr/v2/data/company/size/ Get Company Size
StandardizedDataApi getCompanyTypeGET GET /hr/v2/data/company/type/ Get Company Type
StandardizedDataApi getContractTypeGET GET /hr/v2/data/contract/type/ Get Contract Type
StandardizedDataApi getDisabilityGET GET /hr/v2/data/disability/ Get Disability
StandardizedDataApi getEducationTitleGET GET /hr/v2/data/education/title/ Get Education Title
StandardizedDataApi getEmailLabelGET GET /hr/v2/data/email/label/ Get Email Label
StandardizedDataApi getEmploymentTypeGET GET /hr/v2/data/employment/type/ Get Employment Type
StandardizedDataApi getFieldOfStudyGET GET /hr/v2/data/education/field-of-study/ Get Field Of Study
StandardizedDataApi getGenderGET GET /hr/v2/data/gender/ Get Gender
StandardizedDataApi getIndustriesGET GET /hr/v2/data/industries/ Get Industries
StandardizedDataApi getJobFunctionGET GET /hr/v2/data/job/function/ Get Job Function
StandardizedDataApi getJobshiftTypeGET GET /hr/v2/data/jobshift/type/ Get Jobshift Type
StandardizedDataApi getLicenseCodeGET GET /hr/v2/data/license/type/{license_type}/code/ Get License Code
StandardizedDataApi getLicenseTypeGET GET /hr/v2/data/license/type/ Get License Type
StandardizedDataApi getLinkLabelGET GET /hr/v2/data/link/label/ Get Link Label
StandardizedDataApi getMaritalStatusGET GET /hr/v2/data/marital-status/ Get Marital Status
StandardizedDataApi getNamePrefixGET GET /hr/v2/data/name/prefix/ Get Name Prefix
StandardizedDataApi getNameSuffixGET GET /hr/v2/data/name/suffix/ Get Name Suffix
StandardizedDataApi getPatentStatusGET GET /hr/v2/data/patent/status/ Get Patent Status
StandardizedDataApi getPhoneLabelGET GET /hr/v2/data/phone/label/ Get Phone Label
StandardizedDataApi getProtectedGroupGET GET /hr/v2/data/protected-group/ Get Protected Group
StandardizedDataApi getRemoteWorkingGET GET /hr/v2/data/employment/remote-working/ Get Remote Working
StandardizedDataApi getSalaryFrequencyGET GET /hr/v2/data/salary/frequency/ Get Salary Frequency
StandardizedDataApi getSalaryTypeGET GET /hr/v2/data/salary/type/ Get Salary Type
StandardizedDataApi getSeniorityLevelGET GET /hr/v2/data/seniority/level/ Get Seniority Level
StartingWithIndicesApi mostRecentResumesGET GET /hr/v2/index/{indexname}/resumes/latest/ Most Recent Resumes
StartingWithIndicesApi statsIndexGET GET /hr/v2/index/{indexname}/stats/ Stats Index
UniversitiesApi getUniversityGET GET /hr/v2/university/{university_id}/ Get University
UniversitiesApi universityAutocompleteGET GET /hr/v2/university/name/search/autocomplete/ University Autocomplete
UtilitiesApi clearIndexCacheDELETE DELETE /hr/v2/index/{indexname}/cache/ Clear Index Cache
UtilitiesApi healthStatusGET GET /hr/v2/ Health Status

Models

Authorization

APIKey

  • Type: Bearer authentication

Tests

To run the tests, use:

composer install
vendor/bin/phpunit

Author

info@intervieweb.it

About this package

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

  • API version: 2.0.0
  • Build package: org.openapitools.codegen.languages.PhpClientCodegen