Competition: Job Salary Prediction from Job Postings

Public files (participants can access):
- public/train.csv: Training features with the target column 'target_salary'.
- public/test.csv: Test features without the target column.
- public/sample_submission.csv: Example submission containing columns [job_id, target_salary].
- public/description.txt: Short description of the files above.

Evaluation:
- Metric: Root Mean Square Error (RMSE)
- Formula: RMSE = sqrt(mean((y_true - y_pred)^2))
- Lower scores are better
- Both ground truth and predictions are sorted by job_id before evaluation
- Submissions must have exactly the same job_ids as the test set
- Target values are converted to float for calculation

Columns:
- Train columns: ['job_id', 'company_id', 'company_name', 'title', 'description', 'skills_desc', 'formatted_work_type', 'work_type', 'formatted_experience_level', 'location', 'zip_code', 'fips', 'remote_allowed', 'views', 'applies', 'posting_domain', 'application_type', 'sponsored', 'listed_time', 'original_listed_time', 'expiry', 'closed_time', 'target_salary']
- Test columns: ['job_id', 'company_id', 'company_name', 'title', 'description', 'skills_desc', 'formatted_work_type', 'work_type', 'formatted_experience_level', 'location', 'zip_code', 'fips', 'remote_allowed', 'views', 'applies', 'posting_domain', 'application_type', 'sponsored', 'listed_time', 'original_listed_time', 'expiry', 'closed_time']

Notes:
- The identifier column is 'job_id' across all CSVs.
- The evaluation target is 'target_salary' (annualized salary in USD).
- Do not include any columns other than [job_id, target_salary] in your submission.
