---
# System prepended metadata

title: Transformation Engine

---

# 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
```