# Transformation Engine Develop an independent python script 1. Design a schema to store mappings between source(ORC/workday) to integration entity; title -> job_title, desc -> description 2. Call an API to get the entity payload in source(ORC/Workday/any other ATS) format 3. Get the required mapping from DB 4. Convert entity payload to integration entity payload and return the data ## Workday ```python= { "id": "1234", "title": "Python Developer", "jobDescription": "abcdefghijklmnopqrstuvwxyz", "jobLocation": "Bangalore", "openPositions": 100, "endDate": "12/04/2023", "jobType": "onsite", "jobSite": "https://naukri.com/jd=1234" } ``` ## ORC ```python= { "job_id": "1234", "job_title": "Python Developer", "job_description": "abcdefghijklmnopqrstuvwxyz", "job_location": "Bangalore", "vacancy": 100, "closing_date": "12/04/2023", "job_type": "onsite", "job_site": "https://naukri.com/jd=1234", "working_hours_type": "flexible" } ``` ## Brassrings ```python= { "id": "1234", "Title": "Python Developer", "Description": "abcdefghijklmnopqrstuvwxyz", "Location": "Bangalore", "Positions": 100, "ClosingDate": "12/04/2023", "OpportunityType": "onsite", "Site": "https://naukri.com/jd=1234", "WorkType": "flexible" } ``` ## Integration Job ```python= { "ar_id": "1234", "ar_title": "Python Developer", "ar_description": "abcdefghijklmnopqrstuvwxyz", "posting_location": "Bangalore", "vacancies": 100, "closing_time": "12/04/2023", "posting_type": "onsite", "job_source": "https://naukri.com/jd=1234", "posting_hours": "flexible", "recruiter_email": "edge_admin@getedge.ai" } ``` ## Mappings Store it in DB table - Propose a schema | source | entity_type | input_field | output_field | destination | |:------------- | ----------- | ----------- |:-------------- |:----------- | | orc_candidate | candidate | name | candidate_name | Integration | | wd_job | Job | id | ar_id | Integration | ### workday ``` id -> ar_id title -> ar_title jobDescription -> ar_description jobLocation -> posting_location ... ``` ### ORC ``` job_id -> ar_id job_title -> ar_title job_description -> ar_description job_location -> posting_location vacancy -> vacancies ... ``` ## Boilerplate code ```python= data = { "id": "1234", "title": "Python Developer", "jobDescription": "abcdefghijklmnopqrstuvwxyz", "jobLocation": "Bangalore", "openPositions": 100, "endDate": "12/04/2023", "jobType": "onsite", "jobSite": "https://naukri.com/jd=1234" } def transform_job(source: str, data: dict) -> dict: """ source = wd_job """ pass ```