File size: 4,142 Bytes
0099ece
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
import streamlit as st
import json
import torch
from inference import infer_from_text

# GPU check
if torch.cuda.is_available():
    st.info(f" GPU is available: {torch.cuda.get_device_name(0)}")
else:
    st.warning(" GPU is NOT available. Running on CPU.")

# Page config
st.set_page_config(
    page_title="Job Description Parser Demo",
    page_icon="📝",
    layout="wide"
)

# Title
st.markdown("## 📝 Job Description Parser Demo")

# Sample job descriptions
sample_jds = {
    " Machine Learning Engineer Example": """Job Title: Machine Learning Engineer 
About the Role:
At ZentrixAI, we're redefining how data-driven intelligence powers products in healthcare and insurance.
 We're looking for a Machine Learning Engineer to build, train, and optimize models that turn messy real-world data into actionable insights. 
 If you love solving complex problems, deploying scalable ML pipelines, and shipping features that matter, you'll thrive here.

Responsibilities:

Design and develop machine learning models for NLP, tabular prediction, and anomaly detection.

Preprocess and normalize large-scale structured and unstructured datasets.

Collaborate with MLOps to deploy models into production (TensorFlow Serving / TorchServe).

Evaluate model performance using AUC, precision-recall, F1, etc.

Work closely with Data Engineers and Product Managers to define model goals.

Continuously improve models using online learning and feedback loops.

Write scalable training and inference code using TensorFlow and PyTorch.

Maintain model versioning using MLflow and integrate with CI/CD pipelines.

Technical Skills:

Python (NumPy, Pandas, Scikit-learn)

TensorFlow, PyTorch, Keras

MLflow, Docker, FastAPI

SQL, Spark

Cloud ML tools (GCP AI Platform, AWS SageMaker)

NLP libraries (spaCy, Transformers, NLTK)

Git, GitHub Actions, Kubernetes basics

Soft Skills:

Team collaboration

Curiosity and continuous learning

Communication with non-tech stakeholders

Time prioritization

Initiative-taking mindset

Qualifications:

Bachelor's degree in Computer Science, AI, Data Science, or similar

Preferred: Master's in Machine Learning or Applied Mathematics

Certifications:

TensorFlow Developer Certificate

AWS Certified Machine Learning - Specialty

Languages:

English (Fluent)

Mandarin (Basic)

Compensation & Benefits:

Salary: SGD 7,500 - SGD 10,000 per month

Time Frequency: Monthly

Benefits: Remote work setup budget, flexible hours, learning allowance, stock grants, health insurance

Employment Details:

Full-time

Remote (preferably working in Singapore Standard Time)

Location:

Hiring: Remote (Singapore time zone overlap)

Org Location: Singapore

Contact Info:

Email: jobs@zentrixai.com

Phone: +65 6904 8899

Website: https://www.zentrixai.com/careers

About ZentrixAI:
ZentrixAI is an award-winning AI-first company focused on transforming decision-making for insurers and hospitals through intelligent automation. 
With a growing international team, we blend academic rigor with product agility.
"""
}

# Input section
selected = st.selectbox(
    "Select a sample JD to auto-fill the text area", 
    [""] + list(sample_jds.keys())
)
jd_text = st.text_area(
    "Job Description:", 
    value=sample_jds.get(selected, ""), 
    height=300
)

# Parse button and output
if st.button("⚡ Click here to Parse") and jd_text.strip():
    try:
        with st.spinner("Parsing job description..."):
            parsed_output, duration = infer_from_text(jd_text)
        st.success(f"✅ Parsed in {duration} seconds")
        # Try to parse and display as JSON
        try:
            parsed_json = json.loads(parsed_output)
            st.json(parsed_json)
            st.download_button(
                "📋 Download JSON",
                json.dumps(parsed_json, indent=2),
                file_name="parsed_jd.json",
                mime="application/json"
            )
        except Exception:
            st.error("Could not parse output as JSON. Showing raw output:")
            st.code(parsed_output, language="text")
    except Exception as e:
        st.error(f"Error during parsing: {str(e)}")