Jobs Scoring

To match profiles and jobs, there is the scoring endpoint.

Index Jobs for Scoring

To score jobs from a source, there must be profiles in it. For this, there is the endpoint indexing, permitting to index a profile with its json.

from hrflow import Hrflow

client = Hrflow(api_secret="Your API Key", api_user="Your API user email")

job_json = {
    "name": "Data Engineer",
    "agent_key": None,
    "reference": "123",
    "created_at": "2020-12-24T09:32:11",
    "url": "https://www.pole-emploi.ai/jobs/data_engineer",
    "summary": """As an engineer for the Data Engineering Infrastructure team, 
                you will design, build, scale, and evolve our data engineering
                platform, services and tooling. Your work will have a critical 
                impact on all areas of business: powering core data pipelines,
                supporting detailed internal analytics, calculating customer
                usage, securing our platform, and much more.""",
    "location": {
                  "text": "Dampierre en Burly (45)",
                  "lat": 47.7667,
                  "lng": 2.5167
                 },
    "sections": [{
                    "name": "profile",
                    "title": "Searched Profile",
                    "description": "Bac+5"
                  }],
    "skills": [{
                  "name": "python",
                  "value": None},
               {
                  "name": "spark",
                  "value": 0.9
               }],
    "languages": [{
                     "name": "english",
                     "value": 1
                  },
                 {  
                     "name": "french",
                     "value": 1
                  }],
    "tags": [{
                "name": "tag example",
                "value": True
             },
             {  
                "name": "tag2 example",
                "value": "tag"
              }],
    "ranges_date": [{
                       "name": "Dates",
                       "value_min": "2020-05-18T21:59",
                       "value_max": "2020-09-15T21:59"
                    }],
    "ranges_float": [{
                       "name": "salary",
                       "value_min": 30,
                       "value_max": 40,
                       "unit": "eur"
                    }],
    "metadatas": [{
                     "name": "metadata example",
                     "value": "metadata"
                  }],
}

client.job.indexing.add_json(board_key="board_key", job_json=job_json)
{'code': 201,
 'message': 'Job created',
 'data': {'id': 659117,
  'key': 'a7c4b7193a681771ff1a29427c4e730c18c23250',
  'board': {'key': '59d2c4521fbda289e66c6f401cd0da450c05fffc',
   'name': 'test unarchive',
   'type': 'api',
   'subtype': 'python',
   'environment': 'test'},
  'reference': '00010',
  'name': 'Data Engineer',
  'url': 'https://www.pole-emploi.ai/jobs/data_engineer',
  'summary': 'As an engineer for the Data Engineering Infrastructure team, \n                you will design, build, scale, and evolve our data engineering\n                platform, services and tooling. Your work will have a critical \n                impact on all areas of business: powering core data pipelines,\n                supporting detailed internal analytics, calculating customer\n                usage, securing our platform, and much more.',
  'sections': [{'name': 'profile',
    'title': 'Searched Profile',
    'description': 'Bac+5'}],
  'location': {'text': 'Dampierre en Burly (45)',
   'lat': 47.7667,
   'lng': 2.5167,
   'gmaps': None,
   'fields': None},
  'skills': [{'name': 'python', 'value': None},
   {'name': 'spark', 'value': 0.9}],
  'certifications': None,
  'courses': None,
  'tasks': None,
  'languages': [{'name': 'english', 'value': 1},
   {'name': 'french', 'value': 1}],
  'tags': [{'name': 'tag example', 'value': True},
   {'name': 'tag2 example', 'value': 'tag'}],
  'metadatas': [{'name': 'metadata example', 'value': 'metadata'}],
  'ranges_float': [{'name': 'salary',
    'value_min': 30,
    'value_max': 40,
    'unit': 'eur'}],
  'ranges_date': [{'name': 'Dates',
    'value_min': '2020-05-18T21:59',
    'value_max': '2020-09-15T21:59'}],
  'archive': None,
  'updated_at': '2021-11-09T15:10:39+0000',
  'created_at': '2020-12-24T09:32:11+0000'}}

Filter Jobs with queries

When you get jobs from a board you can filter them with the searching endpoint.

from hrflow import Hrflow

client = Hrflow(api_secret="Your API Key", api_user="Your API user email")

client.job.searching.list(board_keys=["board_key1", "board_key2"],
                          name="data scientist", page=1, limit=10, 
                          order_by="asc", sort_by="created_at",
                          text_keywords=["engineer", "python"],
                          tags_included=[[{"name": "active", "value": True}]],
                          location_distance=30,
                          location_geopoint={"lat":33.59662,"lng":-7.61889})

It is deprecated to get more than 200 jobs by request with the limit argument.
To get more you can do

resp = client.profile.searching.list(source_keys=[SOURCE_KEY], page=1, limit=1)
max_page = resp.get('meta').get('maxPage')

if max_page:
    for page in range(1, max_page+1):
        profiles = client.profile.searching.list(source_keys=[SOURCE_KEY],
                                                page=page, limit=200).get('data').get('profiles')

Score Jobs with Scoring Algorithm

Display Jobs Scoring Results


Did this page help you?