Adisri99 commited on
Commit
4013eed
·
verified ·
1 Parent(s): cc63914

Upload 26 files

Browse files
Dockerfile ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ FROM python:3.11-slim
2
+
3
+ ENV PYTHONDONTWRITEBYTECODE=1
4
+ ENV PYTHONUNBUFFERED=1
5
+ ENV PORT=7860
6
+ ENV PYTHONPATH=/app
7
+
8
+ WORKDIR /app
9
+
10
+ RUN apt-get update && apt-get install -y --no-install-recommends build-essential curl && rm -rf /var/lib/apt/lists/*
11
+
12
+ COPY requirements.txt .
13
+ RUN pip install --no-cache-dir -r requirements.txt
14
+
15
+ COPY backend /app/backend
16
+ COPY data_samples /app/data_samples
17
+
18
+ RUN mkdir -p /data/uploads /data/artifacts
19
+
20
+ EXPOSE 7860
21
+
22
+ CMD ["uvicorn", "backend.app.main:app", "--host", "0.0.0.0", "--port", "7860"]
README.md ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: ClusterBuster API
3
+ emoji: 📊
4
+ colorFrom: blue
5
+ colorTo: indigo
6
+ sdk: docker
7
+ app_port: 7860
8
+ pinned: false
9
+ ---
10
+
11
+ # ClusterBuster Multi Algorithm
12
+
13
+ Backend:
14
+ - FastAPI
15
+ - SQLite at /data/clusterforge.db
16
+ - Upload datasets
17
+ - Profile datasets
18
+ - Run clustering experiments
19
+ - PCA scatter points
20
+ - Runs and compare APIs
21
+ - CSV export
22
+ - Multi algorithm clustering
23
+
24
+ Frontend:
25
+ - Next.js
26
+ - Upload page
27
+ - New experiment page
28
+ - Runs page
29
+ - Compare page
30
+ - PCA scatter plot
31
+
32
+ Deploy:
33
+ - backend repo to Hugging Face Docker Space
34
+ - frontend repo to Vercel
backend/__init__.py ADDED
File without changes
backend/app/__init__.py ADDED
File without changes
backend/app/api/__init__.py ADDED
File without changes
backend/app/api/compare.py ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+
3
+ from fastapi import APIRouter, Depends, Query
4
+ from sqlalchemy.orm import Session
5
+
6
+ from backend.app.db import get_db
7
+ from backend.app.repositories.experiment_repo import get_experiments_by_ids, list_experiments
8
+
9
+ router = APIRouter(tags=["compare"])
10
+
11
+
12
+ @router.get("/compare")
13
+ def compare_experiments(experiment_ids: str | None = Query(default=None), db: Session = Depends(get_db)):
14
+ if experiment_ids:
15
+ ids = [x.strip() for x in experiment_ids.split(",") if x.strip()]
16
+ experiments = get_experiments_by_ids(db, ids)
17
+ else:
18
+ experiments = list_experiments(db)
19
+
20
+ return {
21
+ "experiments": [
22
+ {
23
+ "experiment_id": exp.id,
24
+ "dataset_id": exp.dataset_id,
25
+ "algorithm": exp.algorithm,
26
+ "status": exp.status,
27
+ "config": json.loads(exp.config_json) if exp.config_json else {},
28
+ "metrics": json.loads(exp.metrics_json) if exp.metrics_json else {},
29
+ "summary": json.loads(exp.summary_json) if exp.summary_json else {},
30
+ "runtime_ms": exp.runtime_ms,
31
+ "error_message": exp.error_message,
32
+ }
33
+ for exp in experiments
34
+ ]
35
+ }
backend/app/api/datasets.py ADDED
@@ -0,0 +1,89 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+ from pathlib import Path
3
+
4
+ import pandas as pd
5
+ from fastapi import APIRouter, Depends, File, HTTPException, UploadFile
6
+ from sqlalchemy.orm import Session
7
+
8
+ from backend.app.db import get_db
9
+ from backend.app.repositories.dataset_repo import create_dataset, get_dataset, list_datasets
10
+ from backend.app.services.profiling_service import profile_dataframe
11
+ from backend.app.utils.ids import make_dataset_id
12
+
13
+ router = APIRouter(tags=["datasets"])
14
+
15
+ UPLOAD_DIR = Path("/data/uploads")
16
+ UPLOAD_DIR.mkdir(parents=True, exist_ok=True)
17
+
18
+
19
+ @router.get("/datasets")
20
+ def datasets_list(db: Session = Depends(get_db)):
21
+ datasets = list_datasets(db)
22
+ return {
23
+ "datasets": [
24
+ {
25
+ "id": d.id,
26
+ "name": d.name,
27
+ "row_count": d.row_count,
28
+ "column_count": d.column_count,
29
+ }
30
+ for d in datasets
31
+ ]
32
+ }
33
+
34
+
35
+ @router.post("/datasets/upload")
36
+ async def upload_dataset(file: UploadFile = File(...), db: Session = Depends(get_db)):
37
+ if not file.filename:
38
+ raise HTTPException(status_code=400, detail="Missing file name")
39
+
40
+ suffix = Path(file.filename).suffix.lower()
41
+ if suffix not in {".csv", ".xlsx", ".xls"}:
42
+ raise HTTPException(status_code=400, detail="Only CSV and Excel files are supported")
43
+
44
+ dataset_id = make_dataset_id()
45
+ path = UPLOAD_DIR / f"{dataset_id}{suffix}"
46
+
47
+ content = await file.read()
48
+ path.write_bytes(content)
49
+
50
+ if suffix == ".csv":
51
+ df = pd.read_csv(path)
52
+ else:
53
+ df = pd.read_excel(path)
54
+
55
+ profile = profile_dataframe(df)
56
+
57
+ create_dataset(
58
+ db=db,
59
+ id=dataset_id,
60
+ name=file.filename,
61
+ file_path=str(path),
62
+ row_count=int(len(df)),
63
+ column_count=int(len(df.columns)),
64
+ schema_json=json.dumps({"columns": list(df.columns)}),
65
+ profile_json=json.dumps(profile),
66
+ )
67
+
68
+ return {
69
+ "dataset_id": dataset_id,
70
+ "name": file.filename,
71
+ "row_count": int(len(df)),
72
+ "column_count": int(len(df.columns)),
73
+ }
74
+
75
+
76
+ @router.get("/datasets/{dataset_id}/profile")
77
+ def dataset_profile(dataset_id: str, db: Session = Depends(get_db)):
78
+ dataset = get_dataset(db, dataset_id)
79
+ if not dataset:
80
+ raise HTTPException(status_code=404, detail="Dataset not found")
81
+
82
+ return {
83
+ "dataset_id": dataset.id,
84
+ "name": dataset.name,
85
+ "row_count": dataset.row_count,
86
+ "column_count": dataset.column_count,
87
+ "schema": json.loads(dataset.schema_json),
88
+ "profile": json.loads(dataset.profile_json),
89
+ }
backend/app/api/experiments.py ADDED
@@ -0,0 +1,240 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+ import time
3
+
4
+ import pandas as pd
5
+ from fastapi import APIRouter, Depends, HTTPException
6
+ from pydantic import BaseModel
7
+ from sqlalchemy.orm import Session
8
+ from sklearn.cluster import (
9
+ AffinityPropagation,
10
+ AgglomerativeClustering,
11
+ Birch,
12
+ BisectingKMeans,
13
+ DBSCAN,
14
+ KMeans,
15
+ MeanShift,
16
+ MiniBatchKMeans,
17
+ OPTICS,
18
+ SpectralClustering,
19
+ )
20
+ from sklearn.decomposition import PCA
21
+ from sklearn.metrics import silhouette_score
22
+ from sklearn.mixture import GaussianMixture
23
+
24
+ from backend.app.db import get_db
25
+ from backend.app.repositories.dataset_repo import get_dataset
26
+ from backend.app.repositories.experiment_repo import create_experiment
27
+ from backend.app.utils.ids import make_experiment_id
28
+
29
+ try:
30
+ import hdbscan
31
+ except ImportError:
32
+ hdbscan = None
33
+
34
+ router = APIRouter(tags=["experiments"])
35
+
36
+
37
+ class RunRequest(BaseModel):
38
+ dataset_id: str
39
+ name: str | None = None
40
+ algorithm: str = "kmeans"
41
+ n_clusters: int = 4
42
+ feature_columns: list[str]
43
+ algorithm_params: dict | None = None
44
+
45
+
46
+ def build_model(algorithm: str, n_clusters: int, params: dict):
47
+ if algorithm == "kmeans":
48
+ return KMeans(
49
+ n_clusters=params.get("n_clusters", n_clusters),
50
+ n_init=10,
51
+ random_state=42,
52
+ ), "fit_predict"
53
+
54
+ if algorithm == "mini_batch_kmeans":
55
+ return MiniBatchKMeans(
56
+ n_clusters=params.get("n_clusters", n_clusters),
57
+ random_state=42,
58
+ batch_size=params.get("batch_size", 1024),
59
+ ), "fit_predict"
60
+
61
+ if algorithm == "agglomerative":
62
+ return AgglomerativeClustering(
63
+ n_clusters=params.get("n_clusters", n_clusters),
64
+ linkage=params.get("linkage", "ward"),
65
+ ), "fit_predict"
66
+
67
+ if algorithm == "birch":
68
+ return Birch(
69
+ n_clusters=params.get("n_clusters", n_clusters),
70
+ threshold=params.get("threshold", 0.5),
71
+ ), "fit_predict"
72
+
73
+ if algorithm == "dbscan":
74
+ return DBSCAN(
75
+ eps=params.get("eps", 0.5),
76
+ min_samples=params.get("min_samples", 5),
77
+ ), "fit_predict"
78
+
79
+ if algorithm == "optics":
80
+ return OPTICS(
81
+ min_samples=params.get("min_samples", 5),
82
+ ), "fit_predict"
83
+
84
+ if algorithm == "mean_shift":
85
+ return MeanShift(), "fit_predict"
86
+
87
+ if algorithm == "spectral":
88
+ return SpectralClustering(
89
+ n_clusters=params.get("n_clusters", n_clusters),
90
+ random_state=42,
91
+ assign_labels="kmeans",
92
+ affinity=params.get("affinity", "nearest_neighbors"),
93
+ ), "fit_predict"
94
+
95
+ if algorithm == "gaussian_mixture":
96
+ return GaussianMixture(
97
+ n_components=params.get("n_components", n_clusters),
98
+ random_state=42,
99
+ ), "predict_after_fit"
100
+
101
+ if algorithm == "affinity_propagation":
102
+ return AffinityPropagation(random_state=42), "fit_predict"
103
+
104
+ if algorithm == "bisecting_kmeans":
105
+ return BisectingKMeans(
106
+ n_clusters=params.get("n_clusters", n_clusters),
107
+ random_state=42,
108
+ ), "fit_predict"
109
+
110
+ if algorithm == "hdbscan":
111
+ if hdbscan is None:
112
+ raise HTTPException(status_code=400, detail="HDBSCAN is not installed")
113
+ return hdbscan.HDBSCAN(
114
+ min_cluster_size=params.get("min_cluster_size", 10),
115
+ min_samples=params.get("min_samples", 5),
116
+ ), "fit_predict"
117
+
118
+ raise HTTPException(status_code=400, detail="Unsupported algorithm")
119
+
120
+
121
+ @router.post("/experiments/run")
122
+ def run_experiment(req: RunRequest, db: Session = Depends(get_db)):
123
+ dataset = get_dataset(db, req.dataset_id)
124
+ if not dataset:
125
+ raise HTTPException(status_code=404, detail="Dataset not found")
126
+
127
+ if dataset.file_path.endswith(".csv"):
128
+ df = pd.read_csv(dataset.file_path)
129
+ else:
130
+ df = pd.read_excel(dataset.file_path)
131
+
132
+ if not req.feature_columns:
133
+ raise HTTPException(status_code=400, detail="feature_columns is required")
134
+
135
+ missing = [c for c in req.feature_columns if c not in df.columns]
136
+ if missing:
137
+ raise HTTPException(status_code=400, detail=f"Missing columns: {', '.join(missing)}")
138
+
139
+ X = df[req.feature_columns].copy()
140
+ X = pd.get_dummies(X)
141
+ X = X.fillna(0)
142
+
143
+ params = req.algorithm_params or {}
144
+ start = time.time()
145
+
146
+ model, mode = build_model(req.algorithm, req.n_clusters, params)
147
+
148
+ if mode == "fit_predict":
149
+ labels = model.fit_predict(X)
150
+ elif mode == "predict_after_fit":
151
+ model.fit(X)
152
+ labels = model.predict(X)
153
+ else:
154
+ raise HTTPException(status_code=400, detail="Invalid model execution mode")
155
+
156
+ runtime_ms = int((time.time() - start) * 1000)
157
+ unique_labels = sorted(set(labels.tolist()))
158
+
159
+ score = None
160
+ valid_labels = [x for x in unique_labels if x != -1]
161
+ if len(valid_labels) > 1 and len(valid_labels) < len(X):
162
+ try:
163
+ score = float(silhouette_score(X, labels))
164
+ except Exception:
165
+ score = None
166
+
167
+ pca = PCA(n_components=2, random_state=42)
168
+ coords = pca.fit_transform(X)
169
+
170
+ points = [
171
+ {
172
+ "row_index": int(i),
173
+ "cluster_label": int(labels[i]),
174
+ "x": float(coords[i][0]),
175
+ "y": float(coords[i][1]),
176
+ }
177
+ for i in range(len(labels))
178
+ ]
179
+
180
+ cluster_sizes = {str(label): int((labels == label).sum()) for label in unique_labels}
181
+ experiment_id = make_experiment_id()
182
+
183
+ metrics = {
184
+ "silhouette_score": score,
185
+ "cluster_count": len(valid_labels) if valid_labels else len(unique_labels),
186
+ "row_count": int(len(X)),
187
+ "runtime_ms": runtime_ms,
188
+ "noise_count": int((labels == -1).sum()) if -1 in unique_labels else 0,
189
+ }
190
+
191
+ summary = {
192
+ "feature_columns": req.feature_columns,
193
+ "cluster_sizes": cluster_sizes,
194
+ "points": points,
195
+ }
196
+
197
+ create_experiment(
198
+ db=db,
199
+ id=experiment_id,
200
+ dataset_id=req.dataset_id,
201
+ algorithm=req.algorithm,
202
+ status="completed",
203
+ config_json=json.dumps(req.model_dump()),
204
+ metrics_json=json.dumps(metrics),
205
+ summary_json=json.dumps(summary),
206
+ runtime_ms=runtime_ms,
207
+ error_message=None,
208
+ )
209
+
210
+ return {
211
+ "experiment_id": experiment_id,
212
+ "status": "completed",
213
+ "silhouette_score": score,
214
+ "cluster_count": metrics["cluster_count"],
215
+ "cluster_sizes": cluster_sizes,
216
+ "runtime_ms": runtime_ms,
217
+ "noise_count": metrics["noise_count"],
218
+ "points": points,
219
+ }
220
+
221
+
222
+ @router.get("/experiments/{experiment_id}/results")
223
+ def experiment_results(experiment_id: str, db: Session = Depends(get_db)):
224
+ from backend.app.repositories.experiment_repo import get_experiment
225
+
226
+ exp = get_experiment(db, experiment_id)
227
+ if not exp:
228
+ raise HTTPException(status_code=404, detail="Experiment not found")
229
+
230
+ return {
231
+ "experiment_id": exp.id,
232
+ "dataset_id": exp.dataset_id,
233
+ "algorithm": exp.algorithm,
234
+ "status": exp.status,
235
+ "config": json.loads(exp.config_json) if exp.config_json else {},
236
+ "metrics": json.loads(exp.metrics_json) if exp.metrics_json else {},
237
+ "summary": json.loads(exp.summary_json) if exp.summary_json else {},
238
+ "runtime_ms": exp.runtime_ms,
239
+ "error_message": exp.error_message,
240
+ }
backend/app/api/exports.py ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import io
2
+ import json
3
+
4
+ import pandas as pd
5
+ from fastapi import APIRouter, Depends, HTTPException
6
+ from fastapi.responses import StreamingResponse
7
+ from sqlalchemy.orm import Session
8
+
9
+ from backend.app.db import get_db
10
+ from backend.app.repositories.dataset_repo import get_dataset
11
+ from backend.app.repositories.experiment_repo import get_experiment
12
+
13
+ router = APIRouter(tags=["exports"])
14
+
15
+
16
+ @router.get("/exports/{experiment_id}")
17
+ def export_experiment(experiment_id: str, db: Session = Depends(get_db)):
18
+ experiment = get_experiment(db, experiment_id)
19
+ if not experiment:
20
+ raise HTTPException(status_code=404, detail="Experiment not found")
21
+
22
+ dataset = get_dataset(db, experiment.dataset_id)
23
+ if not dataset:
24
+ raise HTTPException(status_code=404, detail="Dataset not found")
25
+
26
+ if dataset.file_path.endswith(".csv"):
27
+ df = pd.read_csv(dataset.file_path)
28
+ else:
29
+ df = pd.read_excel(dataset.file_path)
30
+
31
+ summary = json.loads(experiment.summary_json) if experiment.summary_json else {}
32
+ points = summary.get("points", [])
33
+ export_df = df.copy()
34
+ if points and len(points) == len(df):
35
+ export_df["cluster_label"] = [p["cluster_label"] for p in points]
36
+ export_df["pca_x"] = [p["x"] for p in points]
37
+ export_df["pca_y"] = [p["y"] for p in points]
38
+
39
+ metrics = json.loads(experiment.metrics_json) if experiment.metrics_json else {}
40
+ for key, value in metrics.items():
41
+ export_df[f"metric_{key}"] = value
42
+
43
+ buffer = io.StringIO()
44
+ export_df.to_csv(buffer, index=False)
45
+ buffer.seek(0)
46
+
47
+ return StreamingResponse(
48
+ iter([buffer.getvalue()]),
49
+ media_type="text/csv",
50
+ headers={"Content-Disposition": f"attachment; filename={experiment_id}_export.csv"},
51
+ )
backend/app/api/health.py ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ from fastapi import APIRouter
2
+
3
+ router = APIRouter(tags=["health"])
4
+
5
+ @router.get("/health")
6
+ def health():
7
+ return {"ok": True, "service": "clusterbuster-api"}
backend/app/api/presets.py ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from fastapi import APIRouter
2
+
3
+ router = APIRouter(tags=["presets"])
4
+
5
+
6
+ @router.get("/presets/algorithms")
7
+ def list_algorithms():
8
+ return {
9
+ "algorithms": [
10
+ {"key": "kmeans", "label": "KMeans", "params": {"n_clusters": 4}},
11
+ {"key": "mini_batch_kmeans", "label": "MiniBatchKMeans", "params": {"n_clusters": 4, "batch_size": 1024}},
12
+ {"key": "agglomerative", "label": "Agglomerative", "params": {"n_clusters": 4}},
13
+ {"key": "birch", "label": "Birch", "params": {"n_clusters": 4, "threshold": 0.5}},
14
+ {"key": "dbscan", "label": "DBSCAN", "params": {"eps": 0.5, "min_samples": 5}},
15
+ {"key": "optics", "label": "OPTICS", "params": {"min_samples": 5}},
16
+ {"key": "mean_shift", "label": "Mean Shift", "params": {}},
17
+ {"key": "spectral", "label": "Spectral Clustering", "params": {"n_clusters": 4, "affinity": "nearest_neighbors"}},
18
+ {"key": "gaussian_mixture", "label": "Gaussian Mixture", "params": {"n_components": 4}},
19
+ {"key": "affinity_propagation", "label": "Affinity Propagation", "params": {}},
20
+ {"key": "bisecting_kmeans", "label": "Bisecting KMeans", "params": {"n_clusters": 4}},
21
+ {"key": "hdbscan", "label": "HDBSCAN", "params": {"min_cluster_size": 10, "min_samples": 5}}
22
+ ]
23
+ }
backend/app/api/runs.py ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+
3
+ from fastapi import APIRouter, Depends
4
+ from sqlalchemy.orm import Session
5
+
6
+ from backend.app.db import get_db
7
+ from backend.app.repositories.experiment_repo import list_experiments
8
+
9
+ router = APIRouter(tags=["runs"])
10
+
11
+
12
+ @router.get("/runs")
13
+ def get_runs(db: Session = Depends(get_db)):
14
+ experiments = list_experiments(db)
15
+ return {
16
+ "runs": [
17
+ {
18
+ "experiment_id": exp.id,
19
+ "dataset_id": exp.dataset_id,
20
+ "algorithm": exp.algorithm,
21
+ "status": exp.status,
22
+ "metrics": json.loads(exp.metrics_json) if exp.metrics_json else {},
23
+ "summary": json.loads(exp.summary_json) if exp.summary_json else {},
24
+ "runtime_ms": exp.runtime_ms,
25
+ "error_message": exp.error_message,
26
+ }
27
+ for exp in experiments
28
+ ]
29
+ }
backend/app/db.py ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ from sqlalchemy import create_engine
3
+ from sqlalchemy.orm import declarative_base, sessionmaker
4
+
5
+ DB_PATH = os.getenv("DB_PATH", "/data/clusterforge.db")
6
+ DATABASE_URL = f"sqlite:///{DB_PATH}"
7
+
8
+ engine = create_engine(
9
+ DATABASE_URL,
10
+ connect_args={"check_same_thread": False},
11
+ )
12
+
13
+ SessionLocal = sessionmaker(
14
+ autocommit=False,
15
+ autoflush=False,
16
+ bind=engine,
17
+ )
18
+
19
+ Base = declarative_base()
20
+
21
+
22
+ def init_db() -> None:
23
+ import backend.app.models.dataset
24
+ import backend.app.models.experiment
25
+
26
+ Base.metadata.create_all(bind=engine)
27
+
28
+
29
+ def get_db():
30
+ db = SessionLocal()
31
+ try:
32
+ yield db
33
+ finally:
34
+ db.close()
backend/app/main.py ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from fastapi import FastAPI
2
+ from fastapi.middleware.cors import CORSMiddleware
3
+
4
+ from backend.app.db import init_db
5
+ from backend.app.api.health import router as health_router
6
+ from backend.app.api.datasets import router as datasets_router
7
+ from backend.app.api.presets import router as presets_router
8
+ from backend.app.api.experiments import router as experiments_router
9
+ from backend.app.api.compare import router as compare_router
10
+ from backend.app.api.exports import router as exports_router
11
+ from backend.app.api.runs import router as runs_router
12
+
13
+ app = FastAPI(title="ClusterBuster API")
14
+
15
+
16
+ @app.on_event("startup")
17
+ def on_startup() -> None:
18
+ init_db()
19
+
20
+
21
+ origins = [
22
+ "http://localhost:3000",
23
+ "https://cluster-buster.vercel.app",
24
+ ]
25
+
26
+ app.add_middleware(
27
+ CORSMiddleware,
28
+ allow_origins=origins,
29
+ allow_credentials=True,
30
+ allow_methods=["*"],
31
+ allow_headers=["*"],
32
+ )
33
+
34
+ app.include_router(health_router, prefix="/api")
35
+ app.include_router(datasets_router, prefix="/api")
36
+ app.include_router(presets_router, prefix="/api")
37
+ app.include_router(experiments_router, prefix="/api")
38
+ app.include_router(compare_router, prefix="/api")
39
+ app.include_router(exports_router, prefix="/api")
40
+ app.include_router(runs_router, prefix="/api")
41
+
42
+
43
+ @app.get("/")
44
+ def root():
45
+ return {"ok": True, "service": "clusterbuster-api"}
backend/app/models/__init__.py ADDED
File without changes
backend/app/models/dataset.py ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from sqlalchemy import Column, Integer, String, Text
2
+ from backend.app.db import Base
3
+
4
+
5
+ class Dataset(Base):
6
+ __tablename__ = "datasets"
7
+
8
+ id = Column(String, primary_key=True, index=True)
9
+ name = Column(String, nullable=False)
10
+ file_path = Column(String, nullable=False)
11
+ row_count = Column(Integer, nullable=False)
12
+ column_count = Column(Integer, nullable=False)
13
+ schema_json = Column(Text, nullable=False)
14
+ profile_json = Column(Text, nullable=False)
backend/app/models/experiment.py ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from sqlalchemy import Column, Integer, String, Text
2
+ from backend.app.db import Base
3
+
4
+
5
+ class Experiment(Base):
6
+ __tablename__ = "experiments"
7
+
8
+ id = Column(String, primary_key=True, index=True)
9
+ dataset_id = Column(String, nullable=False, index=True)
10
+ algorithm = Column(String, nullable=False)
11
+ status = Column(String, nullable=False)
12
+ config_json = Column(Text, nullable=True)
13
+ metrics_json = Column(Text, nullable=True)
14
+ summary_json = Column(Text, nullable=True)
15
+ runtime_ms = Column(Integer, nullable=True)
16
+ error_message = Column(Text, nullable=True)
backend/app/repositories/__init__.py ADDED
File without changes
backend/app/repositories/dataset_repo.py ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from sqlalchemy.orm import Session
2
+ from backend.app.models.dataset import Dataset
3
+
4
+
5
+ def create_dataset(
6
+ db: Session,
7
+ id: str,
8
+ name: str,
9
+ file_path: str,
10
+ row_count: int,
11
+ column_count: int,
12
+ schema_json: str,
13
+ profile_json: str,
14
+ ) -> Dataset:
15
+ dataset = Dataset(
16
+ id=id,
17
+ name=name,
18
+ file_path=file_path,
19
+ row_count=row_count,
20
+ column_count=column_count,
21
+ schema_json=schema_json,
22
+ profile_json=profile_json,
23
+ )
24
+ db.add(dataset)
25
+ db.commit()
26
+ db.refresh(dataset)
27
+ return dataset
28
+
29
+
30
+ def get_dataset(db: Session, dataset_id: str) -> Dataset | None:
31
+ return db.query(Dataset).filter(Dataset.id == dataset_id).first()
32
+
33
+
34
+ def list_datasets(db: Session) -> list[Dataset]:
35
+ return db.query(Dataset).order_by(Dataset.name.asc()).all()
backend/app/repositories/experiment_repo.py ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from sqlalchemy.orm import Session
2
+ from backend.app.models.experiment import Experiment
3
+
4
+
5
+ def create_experiment(
6
+ db: Session,
7
+ id: str,
8
+ dataset_id: str,
9
+ algorithm: str,
10
+ status: str,
11
+ config_json: str | None = None,
12
+ metrics_json: str | None = None,
13
+ summary_json: str | None = None,
14
+ runtime_ms: int | None = None,
15
+ error_message: str | None = None,
16
+ ) -> Experiment:
17
+ experiment = Experiment(
18
+ id=id,
19
+ dataset_id=dataset_id,
20
+ algorithm=algorithm,
21
+ status=status,
22
+ config_json=config_json,
23
+ metrics_json=metrics_json,
24
+ summary_json=summary_json,
25
+ runtime_ms=runtime_ms,
26
+ error_message=error_message,
27
+ )
28
+ db.add(experiment)
29
+ db.commit()
30
+ db.refresh(experiment)
31
+ return experiment
32
+
33
+
34
+ def get_experiment(db: Session, experiment_id: str) -> Experiment | None:
35
+ return db.query(Experiment).filter(Experiment.id == experiment_id).first()
36
+
37
+
38
+ def list_experiments(db: Session) -> list[Experiment]:
39
+ return db.query(Experiment).order_by(Experiment.id.desc()).all()
40
+
41
+
42
+ def get_experiments_by_ids(db: Session, experiment_ids: list[str]) -> list[Experiment]:
43
+ if not experiment_ids:
44
+ return []
45
+ return db.query(Experiment).filter(Experiment.id.in_(experiment_ids)).all()
backend/app/services/__init__.py ADDED
File without changes
backend/app/services/profiling_service.py ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ def profile_dataframe(df):
2
+ numeric_cols = df.select_dtypes(include=["int64", "float64", "int32", "float32"]).columns.tolist()
3
+ categorical_cols = df.select_dtypes(include=["object", "bool"]).columns.tolist()
4
+
5
+ recommended = []
6
+ if numeric_cols:
7
+ recommended.extend(["kmeans", "mini_batch_kmeans", "birch", "bisecting_kmeans", "gaussian_mixture"])
8
+ if categorical_cols:
9
+ recommended.extend(["agglomerative", "dbscan", "optics", "spectral", "hdbscan"])
10
+
11
+ cols = []
12
+ for col in df.columns:
13
+ cols.append({
14
+ "name": col,
15
+ "inferred_type": str(df[col].dtype),
16
+ "missing_pct": float(df[col].isna().mean()),
17
+ "cardinality": int(df[col].nunique(dropna=True)),
18
+ })
19
+
20
+ return {
21
+ "columns": cols,
22
+ "recommended_algorithms": recommended,
23
+ }
backend/app/utils/__init__.py ADDED
File without changes
backend/app/utils/ids.py ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ import secrets
2
+
3
+ def make_dataset_id() -> str:
4
+ return "ds_" + secrets.token_hex(4)
5
+
6
+ def make_experiment_id() -> str:
7
+ return "exp_" + secrets.token_hex(4)
data_samples/access_demo.csv ADDED
@@ -0,0 +1,801 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ user_id,department,title,location,application_name,entitlement_count,privileged_access_flag,mfa_enabled,risk_score,peer_access_overlap_score,last_login_days_ago,granted_count_6m,revoked_count_6m,review_count_6m,sensitive_access_flag
2
+ user_0,Engineering,Admin,SF,SAP,26,0,1,0.765,0.798,3,19,1,4,0
3
+ user_1,Sales,Specialist,Remote,Oracle,11,1,1,0.377,0.531,37,1,5,8,0
4
+ user_2,Finance,Engineer,NY,Workday,27,0,1,0.807,0.237,40,16,8,6,1
5
+ user_3,HR,Manager,NY,Workday,20,0,1,0.613,0.878,7,17,4,12,0
6
+ user_4,Engineering,Manager,Remote,Jira,21,1,0,0.611,0.231,178,13,0,5,1
7
+ user_5,Sales,Engineer,Remote,GitHub,12,0,1,0.652,0.203,180,7,0,10,1
8
+ user_6,HR,Manager,NY,SAP,15,0,1,0.81,0.448,91,13,0,2,1
9
+ user_7,HR,Engineer,SF,GitHub,10,0,0,0.651,0.457,172,3,0,6,1
10
+ user_8,Sales,Manager,SF,SAP,12,0,1,0.852,0.489,4,0,10,3,0
11
+ user_9,Support,Manager,NY,SAP,43,1,0,0.724,0.607,65,9,10,7,0
12
+ user_10,Engineering,Analyst,Remote,Workday,35,1,0,0.377,0.2,147,20,9,9,1
13
+ user_11,Support,Admin,TX,Jira,5,1,1,0.413,0.318,43,18,0,3,0
14
+ user_12,Sales,Manager,SF,Jira,34,1,0,0.683,0.938,166,7,7,1,1
15
+ user_13,Finance,Manager,TX,Jira,14,1,1,0.666,0.848,150,0,5,8,0
16
+ user_14,Support,Admin,Remote,Oracle,20,1,0,0.264,0.103,178,11,8,8,0
17
+ user_15,Engineering,Admin,TX,Oracle,32,1,0,0.868,0.902,23,14,3,3,0
18
+ user_16,Sales,Specialist,Remote,Workday,41,1,1,0.355,0.453,170,14,9,9,0
19
+ user_17,Finance,Manager,SF,SAP,45,1,0,0.697,0.947,161,8,0,7,0
20
+ user_18,Sales,Analyst,SF,Oracle,18,0,0,0.84,0.851,104,14,4,6,0
21
+ user_19,Support,Engineer,NY,SAP,42,1,1,0.748,0.599,142,7,8,9,0
22
+ user_20,Support,Specialist,TX,Oracle,25,1,0,0.705,0.15,145,10,6,5,1
23
+ user_21,Support,Specialist,Remote,GitHub,11,0,1,0.842,0.609,31,9,9,1,1
24
+ user_22,Sales,Admin,TX,Oracle,27,1,0,0.919,0.189,32,13,1,11,0
25
+ user_23,Sales,Engineer,TX,Oracle,25,0,0,0.924,0.607,55,5,4,1,1
26
+ user_24,Finance,Engineer,NY,SAP,6,0,0,0.715,0.492,163,5,9,2,0
27
+ user_25,Support,Manager,NY,Oracle,13,0,1,0.303,0.549,100,5,2,1,0
28
+ user_26,Engineering,Analyst,Remote,Oracle,6,0,1,0.34,0.279,143,6,3,3,0
29
+ user_27,Engineering,Analyst,SF,Oracle,20,0,0,0.92,0.374,159,3,1,7,0
30
+ user_28,Finance,Specialist,SF,GitHub,21,1,1,0.221,0.965,135,14,0,12,0
31
+ user_29,HR,Analyst,SF,Oracle,29,0,1,0.95,0.693,135,0,2,9,1
32
+ user_30,Sales,Engineer,Remote,Oracle,26,0,1,0.715,0.709,30,20,7,10,0
33
+ user_31,Engineering,Engineer,SF,SAP,9,0,1,0.738,0.235,140,16,4,11,1
34
+ user_32,HR,Engineer,TX,Jira,6,1,1,0.61,0.504,136,16,5,5,0
35
+ user_33,Sales,Admin,SF,Oracle,42,0,0,0.371,0.691,139,0,0,3,0
36
+ user_34,HR,Analyst,NY,Oracle,15,0,0,0.367,0.421,79,3,7,6,0
37
+ user_35,Sales,Specialist,TX,SAP,28,1,0,0.833,0.317,89,8,0,12,0
38
+ user_36,Sales,Analyst,SF,Oracle,23,1,0,0.643,0.479,125,9,2,12,1
39
+ user_37,Sales,Analyst,TX,Jira,9,1,1,0.245,0.476,37,12,7,6,0
40
+ user_38,Sales,Specialist,Remote,Oracle,14,1,1,0.229,0.767,174,10,7,3,1
41
+ user_39,Engineering,Admin,SF,GitHub,35,1,1,0.46,0.101,57,1,6,10,1
42
+ user_40,Support,Admin,NY,SAP,43,1,1,0.946,0.904,97,13,9,4,0
43
+ user_41,Sales,Admin,SF,SAP,36,0,1,0.82,0.923,174,16,7,1,0
44
+ user_42,Sales,Specialist,Remote,SAP,29,1,0,0.305,0.286,11,16,8,1,1
45
+ user_43,Support,Manager,TX,SAP,14,0,0,0.72,0.557,89,18,2,2,0
46
+ user_44,Support,Manager,NY,SAP,34,1,1,0.759,0.27,116,0,5,8,0
47
+ user_45,Engineering,Analyst,Remote,Oracle,5,0,1,0.707,0.578,150,9,7,9,1
48
+ user_46,Engineering,Engineer,Remote,Workday,26,0,1,0.798,0.664,143,3,5,4,0
49
+ user_47,Engineering,Engineer,SF,Jira,30,1,1,0.864,0.135,83,19,6,2,0
50
+ user_48,Finance,Specialist,Remote,Jira,16,0,1,0.553,0.953,3,19,6,0,0
51
+ user_49,HR,Specialist,Remote,GitHub,12,1,1,0.372,0.712,66,14,4,9,0
52
+ user_50,HR,Analyst,TX,Workday,20,1,0,0.817,0.818,91,0,8,0,0
53
+ user_51,HR,Analyst,SF,SAP,36,0,1,0.591,0.776,119,8,4,3,0
54
+ user_52,Finance,Engineer,NY,SAP,30,0,0,0.672,0.822,33,10,0,4,0
55
+ user_53,Support,Manager,TX,Oracle,10,1,1,0.302,0.819,54,17,0,8,1
56
+ user_54,Engineering,Manager,NY,Jira,42,1,1,0.901,0.6,91,19,3,10,1
57
+ user_55,Engineering,Manager,Remote,Workday,41,1,1,0.552,0.34,49,16,6,3,1
58
+ user_56,Support,Admin,TX,Oracle,21,1,1,0.754,0.359,30,7,7,0,1
59
+ user_57,HR,Analyst,TX,GitHub,28,0,0,0.666,0.409,112,12,10,1,1
60
+ user_58,Support,Engineer,TX,SAP,22,0,1,0.889,0.952,40,18,5,8,0
61
+ user_59,Finance,Analyst,NY,SAP,9,1,0,0.912,0.358,8,16,7,10,0
62
+ user_60,Support,Manager,NY,SAP,23,0,0,0.518,0.391,166,18,3,9,1
63
+ user_61,Finance,Admin,SF,GitHub,20,1,0,0.576,0.236,55,4,5,8,1
64
+ user_62,Support,Admin,Remote,Oracle,43,0,0,0.721,0.693,140,15,6,4,0
65
+ user_63,Finance,Specialist,Remote,SAP,44,1,1,0.78,0.904,5,16,10,11,1
66
+ user_64,Engineering,Engineer,SF,SAP,21,1,0,0.934,0.489,65,15,4,4,0
67
+ user_65,Engineering,Engineer,NY,SAP,31,1,1,0.689,0.757,144,6,1,6,1
68
+ user_66,HR,Specialist,SF,GitHub,15,1,1,0.692,0.576,62,14,5,6,0
69
+ user_67,HR,Specialist,TX,Oracle,43,1,0,0.437,0.913,75,17,10,7,1
70
+ user_68,Support,Engineer,Remote,SAP,45,1,1,0.75,0.724,176,19,3,1,1
71
+ user_69,Finance,Engineer,Remote,Workday,20,0,0,0.283,0.729,17,0,10,4,0
72
+ user_70,Finance,Admin,NY,Jira,5,0,0,0.471,0.634,87,6,1,8,0
73
+ user_71,HR,Specialist,Remote,SAP,26,0,0,0.896,0.241,77,1,0,10,1
74
+ user_72,Sales,Manager,TX,Jira,34,1,1,0.92,0.875,49,1,0,5,0
75
+ user_73,Support,Specialist,Remote,Workday,19,1,0,0.935,0.526,74,19,4,8,0
76
+ user_74,HR,Admin,Remote,GitHub,8,1,0,0.91,0.569,31,19,1,12,1
77
+ user_75,Finance,Engineer,Remote,GitHub,44,0,0,0.391,0.741,168,4,7,10,1
78
+ user_76,Finance,Admin,SF,Workday,30,1,1,0.628,0.277,38,2,6,0,1
79
+ user_77,Engineering,Engineer,TX,GitHub,42,0,0,0.595,0.393,21,14,6,0,1
80
+ user_78,Sales,Engineer,NY,Oracle,5,1,0,0.712,0.161,57,12,7,9,1
81
+ user_79,HR,Manager,Remote,Oracle,38,1,1,0.231,0.648,107,11,9,4,1
82
+ user_80,Finance,Admin,NY,GitHub,20,1,1,0.26,0.623,6,15,2,7,1
83
+ user_81,HR,Engineer,Remote,GitHub,30,1,0,0.477,0.756,15,7,5,12,0
84
+ user_82,Sales,Specialist,Remote,Workday,37,1,0,0.547,0.449,27,12,0,3,1
85
+ user_83,Support,Analyst,NY,Oracle,32,0,1,0.569,0.823,138,18,6,11,1
86
+ user_84,HR,Manager,SF,Jira,35,0,0,0.43,0.895,75,15,6,9,0
87
+ user_85,Engineering,Specialist,Remote,Jira,43,0,0,0.856,0.276,34,1,0,1,1
88
+ user_86,Support,Admin,TX,GitHub,11,0,1,0.37,0.133,99,0,8,10,1
89
+ user_87,HR,Admin,SF,SAP,36,1,1,0.908,0.896,71,13,6,5,0
90
+ user_88,Sales,Specialist,NY,Workday,43,0,1,0.234,0.496,106,16,9,5,1
91
+ user_89,HR,Manager,TX,Oracle,40,0,1,0.83,0.527,117,9,5,5,1
92
+ user_90,Support,Specialist,SF,Oracle,40,1,1,0.373,0.869,94,2,0,7,1
93
+ user_91,Finance,Engineer,Remote,Jira,27,1,1,0.383,0.346,76,15,2,2,0
94
+ user_92,HR,Admin,TX,GitHub,24,1,0,0.737,0.89,166,18,7,1,1
95
+ user_93,Sales,Specialist,Remote,Oracle,23,0,1,0.439,0.454,24,15,7,2,0
96
+ user_94,Engineering,Engineer,Remote,Jira,15,1,0,0.349,0.847,104,19,6,5,1
97
+ user_95,HR,Analyst,SF,Workday,45,1,1,0.421,0.301,157,4,3,6,1
98
+ user_96,Sales,Specialist,TX,Jira,31,1,1,0.895,0.215,83,16,8,10,1
99
+ user_97,HR,Specialist,Remote,SAP,42,1,1,0.906,0.69,147,11,10,4,0
100
+ user_98,Engineering,Engineer,NY,Jira,20,1,0,0.627,0.889,163,8,9,8,1
101
+ user_99,Finance,Manager,TX,SAP,40,1,1,0.456,0.179,122,12,3,0,1
102
+ user_100,HR,Admin,Remote,Workday,37,0,1,0.847,0.439,108,16,6,9,0
103
+ user_101,Sales,Engineer,SF,Oracle,34,1,0,0.919,0.31,135,3,5,9,1
104
+ user_102,Engineering,Manager,TX,SAP,32,1,0,0.518,0.615,5,11,1,6,1
105
+ user_103,Engineering,Manager,Remote,SAP,11,1,1,0.553,0.951,92,11,10,4,0
106
+ user_104,HR,Admin,TX,Jira,30,1,0,0.492,0.85,57,5,2,8,1
107
+ user_105,Finance,Admin,Remote,GitHub,22,0,1,0.427,0.818,16,10,8,6,0
108
+ user_106,HR,Specialist,SF,Jira,7,0,0,0.294,0.207,89,11,0,11,0
109
+ user_107,Sales,Engineer,TX,Workday,12,0,1,0.301,0.23,61,0,8,1,0
110
+ user_108,Support,Manager,Remote,Oracle,9,1,1,0.926,0.106,132,5,10,5,0
111
+ user_109,Sales,Admin,Remote,Workday,9,1,0,0.335,0.915,160,19,10,0,1
112
+ user_110,Engineering,Admin,TX,Jira,45,1,1,0.627,0.952,63,2,6,7,0
113
+ user_111,HR,Analyst,TX,Oracle,10,0,0,0.688,0.958,161,18,3,0,0
114
+ user_112,Engineering,Analyst,SF,GitHub,36,1,0,0.896,0.965,134,2,3,12,0
115
+ user_113,Sales,Engineer,Remote,GitHub,19,0,1,0.356,0.334,115,3,0,2,0
116
+ user_114,Finance,Manager,NY,SAP,15,0,1,0.292,0.925,154,7,8,12,0
117
+ user_115,Engineering,Analyst,SF,Workday,23,0,1,0.564,0.85,6,12,7,9,0
118
+ user_116,Sales,Specialist,SF,Jira,44,0,1,0.3,0.658,14,14,7,1,0
119
+ user_117,Engineering,Manager,TX,Oracle,32,0,1,0.406,0.343,11,0,3,3,1
120
+ user_118,Support,Admin,TX,GitHub,33,0,1,0.558,0.29,138,15,3,1,1
121
+ user_119,Engineering,Admin,NY,Jira,11,1,1,0.642,0.803,179,4,4,8,1
122
+ user_120,Sales,Specialist,TX,Workday,27,0,0,0.473,0.27,82,16,7,11,1
123
+ user_121,Engineering,Manager,TX,Oracle,37,0,0,0.49,0.301,92,13,1,3,0
124
+ user_122,Engineering,Admin,Remote,Workday,11,1,0,0.44,0.799,170,17,5,6,1
125
+ user_123,Support,Engineer,NY,Jira,30,1,0,0.66,0.208,176,0,2,1,0
126
+ user_124,Support,Manager,Remote,Jira,38,0,0,0.455,0.185,129,7,7,6,0
127
+ user_125,HR,Admin,SF,Jira,15,0,1,0.798,0.907,18,3,8,9,0
128
+ user_126,HR,Specialist,Remote,Oracle,45,0,0,0.604,0.585,78,13,3,11,0
129
+ user_127,Sales,Admin,TX,Workday,30,0,1,0.34,0.781,10,16,5,9,0
130
+ user_128,Sales,Engineer,SF,Jira,11,0,0,0.497,0.555,107,7,10,8,1
131
+ user_129,HR,Engineer,Remote,SAP,11,1,1,0.718,0.238,145,8,2,10,1
132
+ user_130,Engineering,Manager,Remote,Workday,7,0,0,0.692,0.838,83,9,4,12,0
133
+ user_131,Sales,Admin,NY,Jira,31,1,1,0.241,0.962,127,4,3,6,0
134
+ user_132,Sales,Manager,TX,Jira,11,1,0,0.776,0.72,39,10,4,7,1
135
+ user_133,HR,Specialist,TX,Workday,10,0,0,0.501,0.62,28,5,4,4,1
136
+ user_134,Finance,Admin,Remote,GitHub,44,1,0,0.674,0.707,108,14,1,3,0
137
+ user_135,Support,Analyst,SF,Oracle,27,1,0,0.414,0.784,50,0,0,5,0
138
+ user_136,Support,Manager,NY,SAP,39,1,0,0.473,0.34,61,3,0,4,1
139
+ user_137,Engineering,Analyst,NY,SAP,14,1,1,0.383,0.53,91,17,0,10,0
140
+ user_138,Finance,Admin,NY,Jira,42,0,0,0.212,0.68,176,3,5,0,0
141
+ user_139,HR,Manager,TX,GitHub,38,1,1,0.939,0.624,116,10,2,2,1
142
+ user_140,Support,Specialist,SF,Jira,6,0,0,0.778,0.307,66,9,4,12,1
143
+ user_141,Finance,Engineer,Remote,Jira,18,1,0,0.908,0.349,80,3,5,0,1
144
+ user_142,Support,Admin,NY,SAP,13,0,0,0.607,0.37,168,11,2,9,1
145
+ user_143,Finance,Admin,NY,GitHub,32,1,1,0.349,0.6,166,12,10,9,1
146
+ user_144,Sales,Analyst,Remote,SAP,37,0,1,0.307,0.391,92,11,5,3,0
147
+ user_145,Finance,Engineer,SF,Jira,10,1,1,0.447,0.512,49,11,4,7,1
148
+ user_146,Finance,Admin,TX,Jira,14,0,1,0.232,0.596,145,6,7,11,0
149
+ user_147,Engineering,Specialist,SF,Workday,32,1,0,0.697,0.143,56,12,6,0,0
150
+ user_148,HR,Engineer,TX,Jira,25,0,0,0.37,0.579,74,8,8,8,1
151
+ user_149,Engineering,Specialist,SF,Workday,16,1,0,0.405,0.246,125,6,5,5,1
152
+ user_150,Support,Analyst,TX,Oracle,15,0,0,0.583,0.236,95,7,7,1,0
153
+ user_151,HR,Specialist,NY,Jira,38,1,0,0.266,0.79,40,14,8,10,0
154
+ user_152,Finance,Specialist,Remote,SAP,34,0,0,0.48,0.77,63,7,2,6,0
155
+ user_153,Finance,Manager,SF,SAP,32,0,0,0.662,0.683,75,14,10,2,0
156
+ user_154,Sales,Engineer,TX,Oracle,10,0,1,0.386,0.863,21,6,2,6,0
157
+ user_155,Finance,Manager,SF,Workday,33,0,0,0.649,0.984,130,10,5,7,1
158
+ user_156,Support,Specialist,SF,SAP,27,0,1,0.23,0.481,161,7,9,3,1
159
+ user_157,Support,Specialist,NY,Jira,35,1,1,0.624,0.121,53,7,3,4,0
160
+ user_158,HR,Engineer,SF,GitHub,23,0,0,0.579,0.684,147,8,1,8,0
161
+ user_159,Engineering,Manager,NY,SAP,26,0,1,0.276,0.32,40,17,6,11,1
162
+ user_160,Engineering,Manager,SF,Oracle,23,1,0,0.624,0.549,144,8,1,2,1
163
+ user_161,Support,Manager,NY,GitHub,17,0,0,0.205,0.95,140,0,2,0,1
164
+ user_162,Support,Analyst,TX,Jira,13,1,0,0.657,0.492,133,15,9,4,1
165
+ user_163,Engineering,Specialist,NY,Oracle,12,0,0,0.675,0.466,137,9,6,3,0
166
+ user_164,Finance,Admin,SF,Oracle,14,1,1,0.285,0.949,149,17,9,10,0
167
+ user_165,Support,Admin,Remote,Workday,33,1,0,0.926,0.484,125,17,10,0,1
168
+ user_166,Sales,Admin,SF,GitHub,5,0,1,0.58,0.484,37,8,3,6,1
169
+ user_167,Support,Engineer,TX,SAP,23,0,0,0.502,0.773,108,4,1,12,0
170
+ user_168,Sales,Specialist,SF,SAP,31,0,0,0.745,0.733,157,19,0,6,1
171
+ user_169,Support,Specialist,SF,Oracle,33,1,0,0.652,0.283,47,1,7,8,0
172
+ user_170,Sales,Manager,NY,Workday,9,0,1,0.255,0.543,7,10,0,0,1
173
+ user_171,Engineering,Specialist,SF,Jira,23,1,1,0.93,0.777,56,9,0,3,1
174
+ user_172,Engineering,Specialist,Remote,Workday,25,0,0,0.872,0.568,142,9,0,10,0
175
+ user_173,Finance,Engineer,SF,Oracle,6,0,1,0.378,0.408,99,5,0,11,0
176
+ user_174,Sales,Manager,Remote,GitHub,10,0,1,0.486,0.76,146,17,10,4,1
177
+ user_175,Engineering,Analyst,TX,Jira,31,0,1,0.388,0.981,18,4,6,12,0
178
+ user_176,Engineering,Analyst,Remote,Workday,41,1,0,0.591,0.809,117,8,8,9,1
179
+ user_177,Engineering,Analyst,SF,Oracle,10,0,1,0.889,0.143,93,16,10,12,0
180
+ user_178,Engineering,Specialist,TX,Workday,37,0,0,0.642,0.721,90,2,1,9,0
181
+ user_179,Engineering,Engineer,Remote,Workday,36,0,0,0.659,0.556,66,2,1,8,0
182
+ user_180,Engineering,Engineer,NY,SAP,38,0,1,0.247,0.168,59,17,1,12,0
183
+ user_181,Support,Manager,SF,Workday,44,0,1,0.466,0.733,98,12,5,8,1
184
+ user_182,Sales,Analyst,NY,SAP,20,0,0,0.916,0.476,61,13,2,12,0
185
+ user_183,Sales,Manager,TX,Jira,5,1,1,0.375,0.213,84,18,5,4,1
186
+ user_184,Support,Engineer,Remote,Oracle,5,1,1,0.821,0.644,76,4,2,0,0
187
+ user_185,Finance,Specialist,Remote,Workday,17,0,1,0.866,0.285,52,1,8,7,1
188
+ user_186,Finance,Manager,NY,GitHub,6,0,1,0.895,0.704,118,13,7,2,1
189
+ user_187,HR,Manager,Remote,Jira,32,0,0,0.308,0.41,67,18,8,12,0
190
+ user_188,Finance,Analyst,SF,Jira,23,0,1,0.598,0.686,108,1,4,11,1
191
+ user_189,Support,Analyst,NY,GitHub,5,0,1,0.621,0.42,102,8,2,6,1
192
+ user_190,Finance,Specialist,Remote,GitHub,21,1,1,0.56,0.325,89,10,1,12,0
193
+ user_191,HR,Engineer,Remote,GitHub,11,0,0,0.636,0.892,92,19,4,9,1
194
+ user_192,Finance,Manager,TX,GitHub,31,0,0,0.715,0.682,120,4,10,0,0
195
+ user_193,Finance,Analyst,NY,SAP,15,1,0,0.262,0.604,74,0,8,2,1
196
+ user_194,Sales,Manager,Remote,Workday,21,1,0,0.539,0.105,52,1,2,10,0
197
+ user_195,HR,Specialist,TX,Oracle,33,0,0,0.699,0.924,56,12,4,11,1
198
+ user_196,Finance,Manager,NY,Workday,43,1,1,0.517,0.114,77,15,2,7,0
199
+ user_197,Sales,Admin,SF,GitHub,12,1,1,0.858,0.159,83,6,4,0,1
200
+ user_198,Finance,Manager,SF,Workday,12,0,0,0.463,0.195,3,1,7,10,1
201
+ user_199,Engineering,Analyst,TX,GitHub,17,0,0,0.841,0.57,107,6,1,8,1
202
+ user_200,Support,Engineer,Remote,Workday,38,1,0,0.692,0.622,11,13,0,6,0
203
+ user_201,HR,Manager,Remote,Jira,29,0,1,0.596,0.192,29,9,3,11,1
204
+ user_202,Finance,Admin,NY,GitHub,13,0,1,0.754,0.572,14,20,7,2,0
205
+ user_203,Sales,Analyst,TX,GitHub,20,0,0,0.428,0.802,130,15,0,9,1
206
+ user_204,Support,Engineer,Remote,Jira,25,1,0,0.502,0.742,44,18,1,4,1
207
+ user_205,Finance,Analyst,Remote,Oracle,42,0,1,0.883,0.144,131,16,7,12,0
208
+ user_206,Engineering,Manager,SF,Workday,43,1,1,0.456,0.345,14,7,2,0,1
209
+ user_207,Finance,Engineer,Remote,Jira,41,1,1,0.406,0.145,68,8,4,8,0
210
+ user_208,Finance,Analyst,Remote,GitHub,33,1,0,0.913,0.948,23,3,7,1,1
211
+ user_209,Sales,Admin,Remote,Oracle,31,1,1,0.266,0.43,133,3,0,11,1
212
+ user_210,Sales,Engineer,TX,Oracle,45,0,0,0.657,0.377,9,12,6,4,1
213
+ user_211,Sales,Analyst,NY,GitHub,31,1,0,0.465,0.444,138,20,5,0,0
214
+ user_212,Finance,Analyst,TX,GitHub,33,0,0,0.837,0.182,37,11,9,1,0
215
+ user_213,Finance,Specialist,TX,Jira,32,0,1,0.948,0.61,39,20,7,12,0
216
+ user_214,Finance,Admin,TX,GitHub,42,0,1,0.346,0.928,156,20,7,12,1
217
+ user_215,Support,Manager,TX,GitHub,10,1,0,0.759,0.82,138,3,0,2,1
218
+ user_216,Finance,Engineer,Remote,SAP,8,0,1,0.41,0.741,9,14,6,0,0
219
+ user_217,Sales,Analyst,SF,Oracle,20,1,1,0.746,0.7,129,12,9,1,1
220
+ user_218,Engineering,Analyst,SF,Oracle,9,0,0,0.871,0.645,82,13,2,7,1
221
+ user_219,HR,Engineer,Remote,Workday,15,1,0,0.545,0.395,12,11,10,11,1
222
+ user_220,Support,Engineer,NY,SAP,18,1,0,0.491,0.478,178,11,10,1,0
223
+ user_221,Engineering,Analyst,SF,SAP,43,0,1,0.638,0.214,26,19,3,5,0
224
+ user_222,Support,Admin,SF,GitHub,44,1,1,0.835,0.6,30,2,9,7,0
225
+ user_223,Sales,Specialist,NY,Workday,45,0,0,0.49,0.404,24,15,1,3,1
226
+ user_224,Engineering,Engineer,NY,Oracle,12,0,1,0.736,0.896,110,16,7,6,1
227
+ user_225,Engineering,Engineer,TX,GitHub,5,1,0,0.637,0.83,29,14,10,0,0
228
+ user_226,HR,Specialist,Remote,Jira,25,0,0,0.345,0.534,104,10,3,11,0
229
+ user_227,Engineering,Engineer,SF,Workday,36,0,1,0.225,0.631,139,11,10,12,0
230
+ user_228,HR,Specialist,NY,Jira,41,0,0,0.909,0.871,107,19,4,4,0
231
+ user_229,HR,Analyst,SF,SAP,27,1,0,0.66,0.313,174,12,6,2,0
232
+ user_230,HR,Admin,TX,Jira,18,0,0,0.204,0.257,50,13,4,1,0
233
+ user_231,Finance,Manager,Remote,Oracle,30,0,0,0.212,0.431,14,2,5,5,0
234
+ user_232,Support,Specialist,TX,Oracle,16,0,1,0.846,0.143,105,0,10,12,0
235
+ user_233,HR,Engineer,Remote,Oracle,21,0,1,0.652,0.637,115,15,1,1,1
236
+ user_234,Support,Analyst,TX,Jira,14,0,0,0.281,0.965,19,15,6,10,0
237
+ user_235,Sales,Manager,SF,Workday,34,0,1,0.27,0.428,79,13,4,12,1
238
+ user_236,HR,Specialist,TX,SAP,23,1,0,0.37,0.827,42,1,8,1,1
239
+ user_237,Sales,Analyst,TX,SAP,10,0,1,0.483,0.538,173,10,2,11,0
240
+ user_238,Engineering,Engineer,TX,Workday,23,0,1,0.554,0.94,110,15,0,5,1
241
+ user_239,Support,Engineer,NY,Jira,29,1,1,0.909,0.847,4,0,9,0,1
242
+ user_240,Sales,Manager,TX,Jira,34,1,1,0.776,0.664,76,1,0,11,1
243
+ user_241,HR,Analyst,TX,Jira,36,0,1,0.677,0.173,4,15,3,0,0
244
+ user_242,HR,Admin,SF,Oracle,27,0,0,0.872,0.772,48,14,9,10,0
245
+ user_243,Engineering,Analyst,TX,Jira,32,0,1,0.699,0.684,174,2,2,7,0
246
+ user_244,HR,Specialist,SF,Jira,43,0,1,0.343,0.209,19,9,2,10,0
247
+ user_245,Sales,Admin,TX,SAP,36,0,0,0.201,0.139,140,2,2,10,1
248
+ user_246,Sales,Engineer,Remote,Jira,10,1,0,0.47,0.407,129,1,7,10,1
249
+ user_247,Support,Engineer,TX,Workday,11,0,1,0.788,0.686,168,12,4,1,0
250
+ user_248,Sales,Manager,NY,Oracle,9,0,1,0.333,0.246,101,6,8,10,1
251
+ user_249,Finance,Engineer,Remote,SAP,9,1,0,0.73,0.706,71,15,2,10,1
252
+ user_250,Finance,Specialist,NY,Workday,6,0,1,0.894,0.393,29,7,10,1,1
253
+ user_251,Sales,Admin,Remote,SAP,14,1,0,0.593,0.83,39,7,4,4,0
254
+ user_252,Finance,Analyst,NY,Workday,18,1,1,0.304,0.558,123,16,2,12,1
255
+ user_253,Engineering,Manager,Remote,Jira,5,1,0,0.832,0.534,33,13,6,8,1
256
+ user_254,Finance,Manager,Remote,GitHub,30,0,1,0.233,0.42,36,12,3,2,0
257
+ user_255,Sales,Engineer,TX,GitHub,20,0,0,0.911,0.638,133,5,0,0,1
258
+ user_256,Sales,Admin,NY,GitHub,44,1,0,0.206,0.565,173,11,2,8,0
259
+ user_257,Support,Analyst,SF,Workday,24,0,1,0.368,0.559,64,6,8,0,0
260
+ user_258,Support,Analyst,NY,GitHub,29,0,0,0.66,0.76,124,2,5,8,1
261
+ user_259,Engineering,Specialist,SF,Jira,17,1,1,0.392,0.223,180,18,7,8,1
262
+ user_260,HR,Specialist,SF,Jira,17,1,0,0.907,0.113,12,9,0,2,1
263
+ user_261,Finance,Manager,NY,SAP,16,1,0,0.344,0.166,5,9,4,8,1
264
+ user_262,Engineering,Engineer,Remote,SAP,16,0,1,0.726,0.782,173,12,9,8,1
265
+ user_263,HR,Admin,SF,Workday,30,1,0,0.376,0.771,166,5,2,11,0
266
+ user_264,Engineering,Analyst,SF,Workday,23,1,0,0.503,0.529,62,3,7,0,0
267
+ user_265,Engineering,Admin,SF,Jira,17,0,1,0.487,0.537,114,9,0,1,0
268
+ user_266,Support,Manager,Remote,Jira,24,1,0,0.649,0.758,138,10,1,1,1
269
+ user_267,HR,Admin,TX,Workday,34,0,1,0.374,0.662,152,0,1,9,1
270
+ user_268,HR,Engineer,NY,Workday,9,1,0,0.804,0.481,104,19,10,3,1
271
+ user_269,Finance,Admin,TX,Workday,37,1,1,0.515,0.379,14,12,2,8,1
272
+ user_270,Engineering,Admin,Remote,Jira,35,1,0,0.322,0.156,58,8,10,2,0
273
+ user_271,Sales,Manager,NY,Oracle,26,0,1,0.793,0.148,88,0,9,8,1
274
+ user_272,Support,Engineer,Remote,SAP,36,1,0,0.853,0.392,16,0,5,12,0
275
+ user_273,Sales,Specialist,Remote,Oracle,35,1,1,0.621,0.964,104,2,5,11,1
276
+ user_274,Engineering,Manager,SF,Jira,10,0,0,0.258,0.425,28,14,9,12,1
277
+ user_275,Finance,Analyst,Remote,Jira,31,0,1,0.284,0.495,80,14,0,5,1
278
+ user_276,Finance,Engineer,NY,Jira,20,1,0,0.454,0.736,127,15,0,11,0
279
+ user_277,HR,Analyst,SF,Jira,30,1,1,0.389,0.244,144,0,6,10,1
280
+ user_278,Engineering,Analyst,TX,Oracle,26,0,1,0.686,0.393,40,17,6,12,0
281
+ user_279,Finance,Specialist,TX,Oracle,9,1,1,0.633,0.936,69,15,3,4,1
282
+ user_280,Sales,Admin,NY,Workday,41,1,0,0.923,0.404,127,14,9,5,1
283
+ user_281,HR,Specialist,TX,Jira,6,0,1,0.328,0.551,163,16,10,7,1
284
+ user_282,HR,Engineer,SF,Jira,23,0,1,0.861,0.771,26,17,9,5,0
285
+ user_283,Support,Manager,NY,GitHub,27,0,1,0.234,0.275,141,2,1,2,1
286
+ user_284,Finance,Manager,NY,GitHub,23,1,0,0.638,0.332,142,13,6,12,0
287
+ user_285,Support,Manager,Remote,GitHub,27,0,0,0.748,0.95,102,19,6,8,1
288
+ user_286,Support,Specialist,NY,GitHub,36,1,1,0.949,0.972,56,7,8,10,0
289
+ user_287,Finance,Engineer,TX,SAP,33,0,0,0.625,0.497,119,20,4,8,1
290
+ user_288,HR,Analyst,TX,Oracle,12,1,1,0.333,0.904,60,10,0,9,0
291
+ user_289,Finance,Admin,Remote,Jira,28,0,1,0.931,0.316,81,18,3,2,0
292
+ user_290,Engineering,Analyst,TX,Oracle,11,1,1,0.519,0.54,7,2,2,11,1
293
+ user_291,HR,Engineer,TX,Workday,38,1,1,0.464,0.245,162,3,8,10,1
294
+ user_292,Engineering,Manager,Remote,Workday,37,1,1,0.306,0.931,67,2,7,6,0
295
+ user_293,HR,Engineer,TX,SAP,18,1,0,0.72,0.285,103,9,4,8,0
296
+ user_294,Sales,Analyst,Remote,Oracle,21,1,0,0.309,0.49,1,9,9,10,1
297
+ user_295,Sales,Analyst,Remote,Jira,19,1,1,0.364,0.39,117,3,1,1,0
298
+ user_296,HR,Analyst,SF,Workday,12,0,0,0.7,0.638,29,2,2,5,1
299
+ user_297,Engineering,Specialist,NY,SAP,42,0,1,0.579,0.97,107,3,4,7,0
300
+ user_298,HR,Analyst,Remote,SAP,39,0,0,0.377,0.617,128,20,0,4,1
301
+ user_299,HR,Manager,Remote,SAP,29,0,0,0.616,0.958,97,10,8,9,0
302
+ user_300,Support,Analyst,TX,Workday,38,1,0,0.9,0.169,161,16,3,3,0
303
+ user_301,Support,Specialist,TX,Workday,31,1,0,0.313,0.811,53,5,4,1,0
304
+ user_302,HR,Engineer,TX,SAP,14,1,1,0.633,0.36,89,19,5,0,1
305
+ user_303,Engineering,Specialist,Remote,Workday,25,0,0,0.624,0.135,0,11,7,3,0
306
+ user_304,Sales,Manager,NY,Jira,8,0,1,0.232,0.132,163,15,1,7,1
307
+ user_305,Sales,Specialist,TX,SAP,13,1,1,0.441,0.398,165,17,4,6,0
308
+ user_306,Support,Specialist,NY,Workday,42,1,0,0.31,0.147,51,5,0,9,0
309
+ user_307,Sales,Analyst,NY,SAP,43,0,0,0.567,0.56,26,20,3,2,0
310
+ user_308,HR,Specialist,Remote,Oracle,37,0,1,0.826,0.203,122,11,3,10,1
311
+ user_309,Engineering,Analyst,TX,GitHub,9,1,1,0.335,0.729,116,3,0,9,0
312
+ user_310,Finance,Admin,Remote,Oracle,23,0,0,0.594,0.881,116,9,3,1,0
313
+ user_311,Support,Manager,TX,GitHub,26,1,0,0.504,0.526,21,5,2,8,0
314
+ user_312,Engineering,Specialist,Remote,Oracle,14,0,1,0.674,0.739,12,19,1,4,0
315
+ user_313,HR,Manager,NY,GitHub,17,1,0,0.313,0.779,150,12,0,3,1
316
+ user_314,HR,Manager,NY,GitHub,33,0,1,0.747,0.163,143,1,2,9,0
317
+ user_315,Support,Analyst,SF,GitHub,9,1,0,0.369,0.976,141,1,3,3,0
318
+ user_316,Finance,Engineer,SF,Oracle,19,0,1,0.91,0.695,163,9,4,8,0
319
+ user_317,Engineering,Specialist,Remote,SAP,36,1,0,0.724,0.699,165,4,10,9,0
320
+ user_318,HR,Analyst,TX,SAP,36,1,0,0.54,0.988,166,4,8,3,1
321
+ user_319,HR,Admin,NY,Jira,26,0,0,0.866,0.862,135,11,0,3,1
322
+ user_320,Sales,Admin,Remote,GitHub,34,1,0,0.391,0.213,40,5,10,2,1
323
+ user_321,Support,Analyst,NY,GitHub,21,0,1,0.255,0.232,135,16,7,12,0
324
+ user_322,HR,Specialist,SF,Workday,20,0,1,0.703,0.204,20,14,9,9,1
325
+ user_323,HR,Admin,TX,Oracle,6,1,0,0.856,0.86,179,11,5,2,0
326
+ user_324,Support,Manager,Remote,Workday,24,0,0,0.486,0.615,121,4,10,1,0
327
+ user_325,Finance,Manager,SF,SAP,31,0,0,0.832,0.616,148,7,9,0,0
328
+ user_326,Engineering,Manager,SF,GitHub,9,1,0,0.89,0.674,96,4,0,2,0
329
+ user_327,Engineering,Analyst,TX,GitHub,13,0,0,0.304,0.77,16,10,7,10,0
330
+ user_328,Engineering,Specialist,TX,Oracle,42,1,0,0.45,0.644,130,20,5,9,1
331
+ user_329,Support,Admin,NY,GitHub,17,1,1,0.263,0.926,0,12,2,2,1
332
+ user_330,Engineering,Specialist,Remote,Jira,45,1,1,0.461,0.49,88,17,2,9,0
333
+ user_331,Engineering,Specialist,TX,Jira,29,0,0,0.228,0.645,130,20,10,5,0
334
+ user_332,HR,Specialist,TX,Workday,25,0,0,0.896,0.777,32,11,3,8,0
335
+ user_333,Finance,Admin,Remote,Workday,11,0,1,0.398,0.468,132,12,4,5,1
336
+ user_334,Engineering,Analyst,SF,GitHub,29,0,1,0.641,0.119,89,8,3,11,0
337
+ user_335,Engineering,Admin,SF,SAP,39,0,1,0.354,0.284,143,13,1,2,0
338
+ user_336,Sales,Admin,TX,Oracle,35,1,0,0.742,0.505,48,16,9,3,1
339
+ user_337,Support,Admin,SF,GitHub,23,1,0,0.563,0.389,80,15,3,9,1
340
+ user_338,Engineering,Admin,Remote,GitHub,7,1,1,0.437,0.757,11,20,3,9,1
341
+ user_339,Finance,Engineer,Remote,SAP,38,0,0,0.579,0.79,141,10,4,3,1
342
+ user_340,Finance,Manager,TX,Jira,25,1,0,0.869,0.249,110,18,7,7,0
343
+ user_341,Support,Analyst,TX,Workday,32,0,0,0.369,0.915,91,3,0,10,0
344
+ user_342,Support,Admin,Remote,GitHub,32,1,0,0.329,0.562,93,7,1,4,1
345
+ user_343,HR,Analyst,NY,Oracle,25,1,1,0.91,0.418,70,11,8,11,1
346
+ user_344,Finance,Engineer,TX,SAP,7,0,1,0.947,0.662,8,19,8,2,1
347
+ user_345,Engineering,Manager,NY,Jira,28,0,0,0.945,0.873,148,6,1,1,1
348
+ user_346,Sales,Engineer,TX,Jira,5,0,0,0.809,0.625,57,10,3,11,0
349
+ user_347,HR,Engineer,SF,Workday,9,0,0,0.602,0.338,66,18,5,7,0
350
+ user_348,Support,Analyst,Remote,Workday,17,0,1,0.628,0.188,151,11,3,0,0
351
+ user_349,Engineering,Admin,SF,Jira,38,1,0,0.352,0.29,38,15,6,10,1
352
+ user_350,HR,Specialist,Remote,Oracle,36,0,0,0.249,0.479,117,12,2,0,1
353
+ user_351,Support,Manager,TX,GitHub,27,0,0,0.314,0.173,159,20,8,11,0
354
+ user_352,HR,Engineer,NY,Jira,8,0,1,0.755,0.562,25,1,8,2,0
355
+ user_353,Finance,Analyst,NY,SAP,18,0,0,0.306,0.154,20,1,5,9,0
356
+ user_354,HR,Analyst,NY,Workday,21,1,1,0.355,0.114,36,12,5,11,0
357
+ user_355,Engineering,Specialist,SF,Workday,25,0,0,0.426,0.124,137,3,0,12,1
358
+ user_356,Support,Engineer,SF,Oracle,37,0,0,0.542,0.622,3,20,6,0,0
359
+ user_357,Finance,Analyst,NY,Jira,44,1,1,0.305,0.313,10,7,9,8,0
360
+ user_358,Engineering,Engineer,Remote,SAP,30,1,1,0.934,0.469,66,15,9,8,1
361
+ user_359,Finance,Manager,TX,GitHub,12,0,1,0.314,0.458,172,14,2,7,0
362
+ user_360,Support,Admin,SF,SAP,25,1,0,0.581,0.581,63,3,8,4,1
363
+ user_361,Support,Manager,TX,GitHub,30,1,0,0.379,0.256,74,16,10,2,1
364
+ user_362,Support,Analyst,Remote,SAP,11,1,1,0.397,0.212,48,7,9,6,0
365
+ user_363,Finance,Specialist,TX,Workday,40,1,1,0.25,0.466,20,19,0,0,1
366
+ user_364,Sales,Specialist,Remote,Jira,42,0,0,0.269,0.529,54,3,0,0,1
367
+ user_365,Sales,Specialist,Remote,Jira,20,0,1,0.746,0.235,162,1,10,10,0
368
+ user_366,Engineering,Admin,SF,Workday,6,0,1,0.337,0.631,24,15,6,1,1
369
+ user_367,Support,Admin,NY,Jira,40,1,1,0.544,0.26,4,7,6,2,0
370
+ user_368,Support,Manager,TX,GitHub,12,1,1,0.734,0.15,131,3,10,7,0
371
+ user_369,Engineering,Admin,Remote,Jira,44,0,0,0.709,0.606,129,0,6,3,0
372
+ user_370,Engineering,Analyst,TX,Jira,9,0,1,0.464,0.75,153,9,7,9,1
373
+ user_371,Sales,Analyst,SF,SAP,40,0,1,0.323,0.212,52,11,4,9,1
374
+ user_372,Engineering,Specialist,TX,SAP,26,1,1,0.694,0.61,47,10,7,3,1
375
+ user_373,Support,Admin,NY,Workday,9,0,0,0.66,0.131,66,11,2,5,1
376
+ user_374,Support,Admin,SF,SAP,35,1,1,0.723,0.636,179,5,0,9,0
377
+ user_375,Engineering,Engineer,TX,Jira,27,1,0,0.661,0.492,3,20,4,9,0
378
+ user_376,Finance,Analyst,TX,SAP,40,1,1,0.242,0.781,180,8,1,5,0
379
+ user_377,Support,Manager,SF,Jira,38,0,0,0.432,0.704,141,20,1,12,1
380
+ user_378,Finance,Manager,SF,GitHub,5,0,0,0.556,0.837,154,13,10,5,1
381
+ user_379,HR,Analyst,SF,Workday,21,0,0,0.562,0.392,158,5,2,9,1
382
+ user_380,Support,Specialist,NY,SAP,40,1,1,0.627,0.656,9,14,5,12,0
383
+ user_381,HR,Engineer,TX,GitHub,9,1,0,0.495,0.389,121,0,4,7,0
384
+ user_382,HR,Engineer,Remote,GitHub,5,1,1,0.947,0.102,71,8,1,6,1
385
+ user_383,HR,Specialist,Remote,Jira,28,1,1,0.218,0.689,67,9,8,1,1
386
+ user_384,Support,Analyst,NY,Workday,30,0,0,0.21,0.468,65,15,10,5,0
387
+ user_385,Sales,Manager,SF,GitHub,28,0,1,0.596,0.321,53,13,7,6,0
388
+ user_386,Sales,Analyst,TX,Oracle,6,1,0,0.785,0.467,143,0,4,1,0
389
+ user_387,Support,Engineer,TX,GitHub,30,0,1,0.678,0.11,5,9,1,9,1
390
+ user_388,Support,Admin,Remote,Jira,9,0,0,0.848,0.322,75,2,2,1,1
391
+ user_389,Finance,Specialist,Remote,SAP,30,0,0,0.833,0.958,115,2,4,5,0
392
+ user_390,HR,Engineer,Remote,Oracle,17,0,0,0.35,0.836,149,15,0,1,0
393
+ user_391,Finance,Specialist,Remote,Workday,10,0,1,0.901,0.23,121,13,10,1,0
394
+ user_392,HR,Specialist,TX,Workday,43,0,1,0.776,0.793,100,15,9,1,1
395
+ user_393,Finance,Manager,NY,Jira,13,1,1,0.619,0.492,69,8,1,1,0
396
+ user_394,Support,Admin,NY,SAP,40,1,1,0.464,0.931,57,9,1,4,0
397
+ user_395,Finance,Specialist,SF,GitHub,21,0,0,0.642,0.25,67,4,10,10,0
398
+ user_396,Support,Engineer,Remote,SAP,25,0,0,0.244,0.72,111,10,2,9,1
399
+ user_397,Finance,Manager,NY,Oracle,37,1,0,0.587,0.374,96,7,1,3,1
400
+ user_398,Finance,Analyst,TX,Workday,37,0,0,0.59,0.472,86,13,7,3,1
401
+ user_399,Finance,Engineer,Remote,Oracle,33,0,1,0.389,0.125,82,5,5,8,1
402
+ user_400,Sales,Manager,TX,GitHub,36,0,0,0.401,0.972,4,12,9,5,1
403
+ user_401,Engineering,Analyst,TX,Workday,21,0,0,0.376,0.455,59,20,1,1,0
404
+ user_402,Engineering,Manager,Remote,Jira,42,0,0,0.602,0.479,35,10,8,4,1
405
+ user_403,Engineering,Engineer,TX,Oracle,27,1,1,0.579,0.597,137,3,3,7,1
406
+ user_404,Sales,Admin,NY,Workday,27,1,0,0.298,0.16,141,6,7,6,0
407
+ user_405,Finance,Manager,NY,SAP,17,0,0,0.833,0.219,75,13,7,9,0
408
+ user_406,Sales,Engineer,NY,Oracle,10,0,0,0.408,0.631,124,3,10,5,0
409
+ user_407,HR,Specialist,NY,Jira,6,1,1,0.214,0.927,56,4,8,11,0
410
+ user_408,Finance,Engineer,Remote,Workday,39,0,1,0.657,0.275,47,4,4,8,1
411
+ user_409,HR,Engineer,NY,Oracle,18,1,1,0.671,0.471,111,6,8,1,1
412
+ user_410,Support,Specialist,SF,Workday,37,0,1,0.253,0.326,58,6,4,4,1
413
+ user_411,Finance,Specialist,TX,Jira,17,0,0,0.338,0.716,156,15,10,6,1
414
+ user_412,HR,Analyst,SF,Workday,34,1,1,0.844,0.662,69,5,10,11,1
415
+ user_413,Support,Manager,TX,Oracle,13,0,0,0.708,0.821,176,13,3,0,0
416
+ user_414,Engineering,Engineer,SF,GitHub,7,0,1,0.884,0.875,151,16,1,2,1
417
+ user_415,Engineering,Engineer,TX,Workday,12,0,0,0.438,0.769,150,8,8,7,0
418
+ user_416,Sales,Specialist,TX,Workday,15,1,1,0.566,0.791,66,15,1,4,0
419
+ user_417,Engineering,Engineer,Remote,Workday,7,1,0,0.248,0.888,176,1,7,6,1
420
+ user_418,Support,Specialist,NY,SAP,6,1,1,0.883,0.68,131,19,5,4,1
421
+ user_419,Sales,Admin,SF,GitHub,39,0,1,0.765,0.188,29,12,7,3,1
422
+ user_420,Sales,Manager,SF,Jira,38,1,0,0.395,0.293,120,18,4,0,1
423
+ user_421,Sales,Manager,NY,SAP,21,1,0,0.348,0.931,71,12,4,8,0
424
+ user_422,Engineering,Engineer,TX,SAP,9,0,0,0.925,0.629,30,15,7,1,0
425
+ user_423,Support,Analyst,SF,GitHub,25,0,0,0.408,0.693,103,10,4,2,1
426
+ user_424,HR,Specialist,Remote,Oracle,19,0,0,0.753,0.734,71,15,8,7,1
427
+ user_425,Finance,Manager,NY,GitHub,30,1,1,0.799,0.816,30,4,4,7,0
428
+ user_426,HR,Admin,Remote,Oracle,5,0,1,0.587,0.486,162,7,8,3,0
429
+ user_427,Sales,Admin,TX,SAP,35,0,0,0.841,0.785,128,4,0,5,0
430
+ user_428,Finance,Admin,SF,GitHub,19,1,1,0.268,0.175,29,16,10,2,1
431
+ user_429,Sales,Engineer,SF,SAP,32,1,0,0.472,0.839,125,8,9,0,1
432
+ user_430,HR,Analyst,TX,GitHub,30,0,1,0.776,0.397,18,18,6,10,1
433
+ user_431,Engineering,Manager,TX,SAP,39,0,1,0.376,0.17,96,9,4,2,0
434
+ user_432,Support,Specialist,SF,GitHub,18,1,1,0.942,0.536,111,5,8,12,1
435
+ user_433,HR,Admin,NY,GitHub,41,0,0,0.876,0.388,130,14,2,5,1
436
+ user_434,Sales,Admin,SF,Jira,44,1,0,0.228,0.254,76,12,4,11,1
437
+ user_435,Finance,Admin,Remote,Jira,29,1,1,0.565,0.267,115,7,9,10,1
438
+ user_436,Sales,Engineer,NY,Jira,16,0,0,0.712,0.19,117,17,0,6,0
439
+ user_437,Engineering,Manager,NY,Workday,38,1,0,0.422,0.492,28,6,4,10,1
440
+ user_438,Finance,Analyst,SF,Oracle,40,0,0,0.427,0.943,136,8,6,2,0
441
+ user_439,Engineering,Engineer,SF,SAP,26,1,1,0.652,0.666,24,6,0,8,1
442
+ user_440,HR,Admin,Remote,SAP,39,0,0,0.949,0.674,177,11,4,2,1
443
+ user_441,HR,Manager,NY,SAP,18,1,0,0.565,0.727,141,20,3,11,1
444
+ user_442,Sales,Admin,Remote,SAP,12,0,0,0.41,0.225,101,5,9,5,0
445
+ user_443,Engineering,Engineer,Remote,Workday,6,0,0,0.722,0.556,153,3,2,12,1
446
+ user_444,Finance,Manager,Remote,Jira,8,0,0,0.503,0.123,169,17,9,12,0
447
+ user_445,Sales,Analyst,SF,Workday,17,1,0,0.833,0.746,161,1,9,4,1
448
+ user_446,Support,Engineer,Remote,Jira,33,0,0,0.294,0.385,101,20,0,10,0
449
+ user_447,Support,Engineer,NY,Oracle,23,0,1,0.585,0.404,49,17,9,7,0
450
+ user_448,Engineering,Admin,SF,GitHub,35,0,0,0.616,0.697,133,5,0,1,0
451
+ user_449,Engineering,Admin,SF,Workday,27,1,1,0.865,0.513,141,13,0,1,1
452
+ user_450,Engineering,Specialist,NY,GitHub,17,0,0,0.398,0.607,58,9,5,5,1
453
+ user_451,Finance,Engineer,Remote,Oracle,24,1,1,0.442,0.89,88,8,9,1,0
454
+ user_452,Sales,Analyst,Remote,Workday,10,0,0,0.23,0.112,11,14,6,11,1
455
+ user_453,Finance,Manager,TX,Workday,19,0,1,0.729,0.639,92,1,0,6,0
456
+ user_454,Engineering,Manager,TX,Oracle,41,1,0,0.825,0.975,98,13,5,9,1
457
+ user_455,Support,Manager,SF,Jira,12,1,0,0.562,0.176,26,17,5,8,0
458
+ user_456,Engineering,Admin,SF,SAP,6,0,1,0.773,0.825,154,11,0,0,1
459
+ user_457,Sales,Admin,Remote,Workday,8,0,0,0.379,0.254,5,10,0,4,1
460
+ user_458,HR,Admin,TX,Workday,17,0,0,0.393,0.858,101,5,4,2,1
461
+ user_459,Engineering,Engineer,NY,Oracle,38,1,1,0.489,0.956,166,8,5,4,0
462
+ user_460,HR,Admin,Remote,SAP,36,0,0,0.28,0.845,84,0,7,4,1
463
+ user_461,Support,Engineer,TX,SAP,17,1,0,0.4,0.184,52,16,0,3,1
464
+ user_462,Support,Specialist,Remote,SAP,11,1,0,0.578,0.585,152,9,8,9,1
465
+ user_463,Sales,Specialist,NY,Jira,33,0,0,0.235,0.735,111,1,9,7,1
466
+ user_464,HR,Analyst,TX,GitHub,24,1,0,0.601,0.764,172,18,9,4,1
467
+ user_465,Support,Specialist,Remote,Jira,15,1,0,0.763,0.42,105,8,10,8,0
468
+ user_466,HR,Manager,TX,Oracle,7,0,0,0.722,0.875,48,2,0,0,1
469
+ user_467,Finance,Engineer,TX,Oracle,8,0,1,0.742,0.413,49,17,1,6,1
470
+ user_468,Finance,Admin,TX,Jira,40,0,1,0.689,0.98,42,11,5,9,0
471
+ user_469,HR,Engineer,Remote,Oracle,15,1,1,0.526,0.377,12,2,8,12,1
472
+ user_470,Finance,Admin,Remote,Jira,33,0,0,0.926,0.377,100,14,0,10,1
473
+ user_471,Finance,Specialist,TX,Workday,36,1,0,0.433,0.968,121,13,8,11,1
474
+ user_472,HR,Manager,SF,GitHub,16,0,1,0.91,0.558,175,11,4,10,0
475
+ user_473,HR,Manager,TX,Jira,24,0,1,0.61,0.853,171,8,4,12,0
476
+ user_474,Finance,Analyst,SF,Workday,8,0,1,0.417,0.972,36,15,5,9,1
477
+ user_475,Engineering,Analyst,TX,GitHub,19,0,0,0.589,0.479,145,12,10,5,1
478
+ user_476,Engineering,Analyst,SF,GitHub,20,1,0,0.896,0.114,5,4,9,0,1
479
+ user_477,Sales,Specialist,TX,Jira,26,0,0,0.346,0.846,63,8,4,11,1
480
+ user_478,HR,Specialist,SF,SAP,36,0,0,0.289,0.46,95,14,9,12,0
481
+ user_479,Support,Admin,Remote,GitHub,40,0,1,0.874,0.889,167,16,8,2,0
482
+ user_480,HR,Manager,NY,Jira,15,1,0,0.54,0.557,156,7,4,11,0
483
+ user_481,Finance,Manager,TX,SAP,10,0,1,0.784,0.102,24,5,1,2,1
484
+ user_482,Support,Manager,NY,SAP,25,0,1,0.518,0.817,5,12,0,11,1
485
+ user_483,Finance,Admin,SF,Workday,7,1,0,0.565,0.627,19,6,3,10,0
486
+ user_484,HR,Manager,NY,GitHub,30,0,0,0.533,0.519,102,7,9,8,0
487
+ user_485,Support,Analyst,Remote,SAP,40,1,0,0.618,0.588,138,1,0,12,0
488
+ user_486,Engineering,Engineer,Remote,Oracle,35,0,1,0.712,0.579,26,6,7,1,0
489
+ user_487,HR,Engineer,SF,SAP,25,1,1,0.687,0.757,116,6,9,7,0
490
+ user_488,HR,Engineer,SF,Jira,22,0,1,0.234,0.452,113,12,2,10,1
491
+ user_489,Sales,Admin,NY,Workday,21,1,1,0.3,0.745,43,8,6,11,1
492
+ user_490,Engineering,Engineer,Remote,SAP,23,0,0,0.204,0.259,15,1,6,6,1
493
+ user_491,HR,Admin,SF,Jira,40,1,1,0.778,0.936,32,19,4,2,1
494
+ user_492,Sales,Analyst,NY,GitHub,22,0,1,0.344,0.652,121,13,6,11,1
495
+ user_493,HR,Engineer,NY,Workday,16,1,0,0.508,0.283,39,7,1,2,0
496
+ user_494,Finance,Specialist,TX,Jira,10,0,1,0.833,0.311,180,7,3,0,0
497
+ user_495,Support,Specialist,TX,SAP,7,1,1,0.335,0.611,39,14,4,3,0
498
+ user_496,Finance,Manager,NY,Workday,44,1,0,0.545,0.963,70,4,10,0,0
499
+ user_497,HR,Admin,NY,Workday,8,1,0,0.619,0.142,70,4,3,3,0
500
+ user_498,Sales,Specialist,Remote,SAP,42,0,1,0.276,0.308,155,12,1,3,1
501
+ user_499,HR,Specialist,Remote,Oracle,30,0,1,0.931,0.284,130,11,7,5,0
502
+ user_500,Engineering,Engineer,Remote,Oracle,16,1,0,0.641,0.601,21,20,10,12,1
503
+ user_501,HR,Admin,Remote,SAP,28,0,1,0.567,0.196,59,17,2,9,1
504
+ user_502,Sales,Engineer,TX,Workday,16,1,1,0.778,0.344,7,8,9,0,0
505
+ user_503,Support,Admin,SF,GitHub,44,0,0,0.458,0.696,152,4,10,11,0
506
+ user_504,Support,Engineer,TX,Workday,22,0,0,0.477,0.412,155,9,9,12,0
507
+ user_505,Support,Analyst,Remote,Workday,31,1,1,0.539,0.327,120,4,3,7,1
508
+ user_506,Sales,Analyst,TX,SAP,29,0,1,0.421,0.112,27,1,6,0,0
509
+ user_507,HR,Manager,SF,Oracle,43,1,1,0.613,0.92,148,14,6,6,0
510
+ user_508,Engineering,Manager,Remote,Jira,21,0,1,0.707,0.63,142,6,9,5,1
511
+ user_509,Support,Analyst,TX,Jira,17,0,0,0.715,0.792,53,0,1,3,1
512
+ user_510,Support,Analyst,Remote,GitHub,28,0,0,0.906,0.88,20,14,10,3,1
513
+ user_511,Support,Admin,TX,SAP,35,0,0,0.379,0.543,64,6,3,4,0
514
+ user_512,Support,Specialist,Remote,Oracle,43,1,0,0.776,0.508,150,4,7,9,0
515
+ user_513,Engineering,Analyst,Remote,Workday,8,1,0,0.492,0.334,122,7,8,4,0
516
+ user_514,Sales,Engineer,NY,GitHub,19,0,1,0.303,0.22,148,15,10,11,1
517
+ user_515,Engineering,Specialist,NY,Jira,36,0,0,0.685,0.967,61,6,1,8,1
518
+ user_516,Support,Specialist,TX,Workday,26,1,1,0.687,0.409,128,16,3,11,1
519
+ user_517,Support,Admin,TX,GitHub,16,0,0,0.62,0.175,3,14,4,12,1
520
+ user_518,Finance,Specialist,NY,Workday,33,1,1,0.243,0.694,42,15,1,11,1
521
+ user_519,HR,Specialist,TX,SAP,17,1,0,0.251,0.618,54,4,1,0,0
522
+ user_520,HR,Manager,TX,Workday,11,1,1,0.399,0.496,106,11,6,0,0
523
+ user_521,Support,Analyst,Remote,SAP,31,1,1,0.481,0.67,30,15,1,11,1
524
+ user_522,Support,Specialist,NY,Jira,19,1,0,0.287,0.937,92,11,10,4,0
525
+ user_523,Finance,Analyst,NY,SAP,27,1,0,0.418,0.426,68,13,1,5,0
526
+ user_524,Finance,Analyst,NY,Oracle,44,0,1,0.588,0.99,30,12,4,6,0
527
+ user_525,Support,Manager,Remote,SAP,5,0,0,0.338,0.549,67,8,3,12,1
528
+ user_526,Engineering,Admin,TX,GitHub,21,0,0,0.901,0.481,123,20,10,6,0
529
+ user_527,Sales,Manager,TX,SAP,35,1,1,0.647,0.678,160,1,5,2,1
530
+ user_528,Sales,Manager,NY,SAP,18,0,1,0.841,0.461,44,8,6,5,1
531
+ user_529,HR,Engineer,NY,Workday,5,1,1,0.244,0.515,107,10,0,7,0
532
+ user_530,HR,Admin,TX,GitHub,45,1,1,0.224,0.337,136,18,7,2,0
533
+ user_531,HR,Admin,SF,Oracle,14,0,1,0.266,0.613,15,6,10,10,1
534
+ user_532,Finance,Analyst,NY,Jira,31,0,1,0.74,0.76,161,13,7,11,1
535
+ user_533,Engineering,Admin,SF,Workday,38,1,0,0.365,0.892,176,3,8,8,0
536
+ user_534,HR,Admin,Remote,Workday,6,1,1,0.401,0.449,97,13,0,11,0
537
+ user_535,Engineering,Engineer,NY,Oracle,10,0,1,0.75,0.303,106,9,2,12,1
538
+ user_536,Sales,Manager,SF,Jira,31,0,1,0.831,0.378,99,13,1,12,0
539
+ user_537,Engineering,Admin,NY,SAP,32,0,0,0.378,0.926,129,1,6,12,0
540
+ user_538,HR,Engineer,Remote,Oracle,38,1,1,0.547,0.85,21,1,10,3,0
541
+ user_539,Finance,Engineer,SF,Oracle,43,1,1,0.761,0.543,100,18,8,7,1
542
+ user_540,Finance,Specialist,NY,Workday,30,0,0,0.629,0.541,164,5,7,8,1
543
+ user_541,HR,Manager,NY,SAP,17,1,0,0.617,0.304,11,13,10,4,1
544
+ user_542,Engineering,Manager,Remote,Jira,19,1,0,0.34,0.807,26,2,9,0,0
545
+ user_543,Engineering,Manager,SF,SAP,22,0,1,0.695,0.545,123,2,0,1,1
546
+ user_544,Finance,Engineer,TX,Workday,10,0,1,0.74,0.303,92,3,8,10,1
547
+ user_545,Finance,Engineer,Remote,Jira,8,0,0,0.814,0.802,72,3,8,1,1
548
+ user_546,Finance,Manager,TX,Jira,34,1,1,0.241,0.799,17,5,0,7,0
549
+ user_547,Engineering,Engineer,TX,Jira,9,1,1,0.789,0.917,98,19,3,8,1
550
+ user_548,Sales,Engineer,SF,Jira,34,1,1,0.22,0.53,154,17,1,3,1
551
+ user_549,Engineering,Admin,SF,Oracle,10,1,1,0.568,0.923,100,7,9,6,1
552
+ user_550,HR,Engineer,NY,Oracle,41,0,1,0.76,0.726,165,9,0,1,1
553
+ user_551,Sales,Engineer,Remote,Workday,45,1,1,0.309,0.826,83,15,6,9,0
554
+ user_552,HR,Engineer,TX,GitHub,36,0,0,0.38,0.467,7,18,8,9,1
555
+ user_553,Finance,Engineer,TX,Oracle,7,0,0,0.286,0.505,60,8,1,9,1
556
+ user_554,Support,Analyst,NY,Jira,19,1,1,0.225,0.829,95,13,10,3,0
557
+ user_555,Engineering,Specialist,NY,GitHub,30,0,1,0.482,0.676,106,19,5,6,1
558
+ user_556,Finance,Specialist,NY,GitHub,7,1,0,0.53,0.434,143,11,4,3,0
559
+ user_557,Support,Manager,SF,Workday,15,1,0,0.245,0.424,137,20,5,12,0
560
+ user_558,Finance,Analyst,TX,GitHub,35,0,0,0.672,0.624,161,6,5,12,0
561
+ user_559,Support,Engineer,TX,Oracle,24,0,1,0.208,0.334,13,5,8,9,1
562
+ user_560,Finance,Analyst,NY,Workday,16,0,0,0.558,0.45,149,20,1,12,1
563
+ user_561,Finance,Admin,TX,GitHub,42,0,1,0.81,0.777,35,8,1,4,0
564
+ user_562,Engineering,Analyst,Remote,GitHub,12,1,1,0.466,0.422,5,2,9,2,1
565
+ user_563,Support,Analyst,NY,Jira,28,1,0,0.647,0.331,162,20,8,6,0
566
+ user_564,Sales,Specialist,TX,Workday,17,1,0,0.688,0.243,96,5,1,10,0
567
+ user_565,Engineering,Specialist,TX,Oracle,45,0,0,0.375,0.41,81,5,5,0,1
568
+ user_566,Support,Engineer,TX,SAP,33,1,1,0.669,0.265,31,14,10,0,1
569
+ user_567,Engineering,Analyst,TX,Jira,45,0,1,0.404,0.402,101,9,3,2,1
570
+ user_568,Finance,Engineer,SF,SAP,27,1,1,0.364,0.488,56,11,0,1,1
571
+ user_569,HR,Analyst,TX,Oracle,23,1,1,0.249,0.779,178,6,1,5,0
572
+ user_570,Engineering,Analyst,TX,Workday,37,0,0,0.524,0.543,133,6,2,5,0
573
+ user_571,Engineering,Manager,SF,Oracle,9,1,1,0.694,0.879,106,16,2,9,0
574
+ user_572,Finance,Admin,TX,Oracle,30,0,1,0.587,0.988,51,3,6,4,0
575
+ user_573,Finance,Analyst,SF,Workday,9,0,1,0.732,0.524,124,18,0,12,1
576
+ user_574,Support,Analyst,TX,GitHub,7,1,1,0.427,0.803,63,15,3,3,1
577
+ user_575,HR,Engineer,SF,GitHub,33,0,1,0.604,0.306,165,19,8,7,1
578
+ user_576,Finance,Engineer,TX,Oracle,24,1,1,0.472,0.572,45,17,1,7,1
579
+ user_577,HR,Specialist,Remote,Jira,41,1,1,0.9,0.921,158,16,2,5,1
580
+ user_578,HR,Engineer,TX,SAP,22,0,0,0.379,0.899,124,13,9,3,1
581
+ user_579,Engineering,Engineer,TX,Jira,26,1,0,0.612,0.967,118,14,7,2,0
582
+ user_580,Sales,Analyst,TX,Jira,11,0,0,0.481,0.328,10,16,7,3,0
583
+ user_581,Support,Analyst,Remote,SAP,44,0,1,0.229,0.409,14,8,8,1,1
584
+ user_582,Finance,Engineer,TX,Oracle,33,1,0,0.409,0.63,119,7,6,8,1
585
+ user_583,Engineering,Specialist,Remote,Jira,13,0,1,0.937,0.417,56,1,9,11,1
586
+ user_584,Sales,Analyst,SF,Workday,41,1,0,0.552,0.34,2,15,10,11,1
587
+ user_585,Finance,Manager,SF,SAP,18,1,0,0.552,0.511,67,9,6,11,0
588
+ user_586,Support,Analyst,NY,Oracle,34,1,0,0.834,0.534,176,6,0,7,1
589
+ user_587,Finance,Analyst,SF,SAP,22,1,1,0.607,0.605,18,13,9,0,1
590
+ user_588,Engineering,Analyst,Remote,SAP,33,1,0,0.715,0.181,117,19,6,1,1
591
+ user_589,Sales,Manager,TX,GitHub,23,0,0,0.82,0.239,80,17,9,7,0
592
+ user_590,Finance,Admin,NY,GitHub,33,0,0,0.22,0.698,24,5,0,10,0
593
+ user_591,HR,Analyst,Remote,GitHub,5,0,0,0.578,0.506,150,17,6,2,0
594
+ user_592,HR,Admin,TX,Oracle,10,0,0,0.909,0.132,52,18,0,10,0
595
+ user_593,Support,Manager,SF,SAP,39,1,0,0.451,0.255,157,12,8,11,1
596
+ user_594,Sales,Specialist,TX,Oracle,29,0,1,0.781,0.585,15,2,7,6,1
597
+ user_595,Sales,Admin,Remote,SAP,18,1,0,0.7,0.869,119,17,2,6,0
598
+ user_596,HR,Specialist,TX,GitHub,17,0,0,0.567,0.74,59,16,9,1,1
599
+ user_597,Sales,Engineer,SF,GitHub,34,0,0,0.91,0.739,105,20,0,1,0
600
+ user_598,Sales,Manager,SF,Workday,35,1,1,0.799,0.88,113,15,8,9,0
601
+ user_599,Finance,Manager,NY,Jira,36,1,1,0.218,0.258,91,14,4,10,1
602
+ user_600,Engineering,Analyst,SF,Oracle,22,0,1,0.684,0.482,115,19,9,4,0
603
+ user_601,Engineering,Engineer,TX,SAP,23,1,1,0.321,0.273,134,16,6,12,0
604
+ user_602,Sales,Analyst,Remote,Oracle,29,1,1,0.654,0.896,118,14,0,1,1
605
+ user_603,Finance,Engineer,TX,GitHub,7,0,1,0.54,0.562,102,2,8,0,0
606
+ user_604,Finance,Manager,Remote,Jira,6,1,1,0.364,0.624,28,17,7,1,1
607
+ user_605,Support,Analyst,NY,Jira,18,0,1,0.943,0.526,0,19,1,9,1
608
+ user_606,Finance,Specialist,SF,SAP,42,0,1,0.335,0.475,126,8,8,4,1
609
+ user_607,Engineering,Specialist,NY,Workday,42,1,1,0.829,0.203,26,6,5,6,0
610
+ user_608,Finance,Engineer,TX,Oracle,32,1,0,0.799,0.841,169,6,3,4,0
611
+ user_609,Support,Specialist,SF,Oracle,29,1,0,0.512,0.302,160,14,10,7,1
612
+ user_610,HR,Analyst,SF,Oracle,43,1,1,0.819,0.712,85,0,6,9,0
613
+ user_611,HR,Analyst,TX,Jira,26,1,1,0.334,0.154,80,4,7,5,1
614
+ user_612,HR,Specialist,TX,GitHub,27,1,1,0.212,0.961,82,19,8,11,1
615
+ user_613,Finance,Specialist,TX,Oracle,11,0,1,0.284,0.111,98,3,4,12,1
616
+ user_614,HR,Analyst,NY,Jira,15,1,0,0.259,0.28,55,0,7,2,1
617
+ user_615,Support,Admin,Remote,SAP,21,1,0,0.65,0.78,146,7,3,0,1
618
+ user_616,Support,Specialist,NY,SAP,24,1,1,0.441,0.198,180,19,10,5,0
619
+ user_617,Support,Analyst,SF,SAP,13,1,0,0.599,0.73,66,2,0,7,1
620
+ user_618,Support,Admin,TX,GitHub,31,0,0,0.869,0.742,154,11,4,3,0
621
+ user_619,Support,Admin,SF,GitHub,6,1,0,0.203,0.686,166,14,4,5,1
622
+ user_620,Sales,Specialist,TX,Workday,33,1,1,0.205,0.406,29,3,9,9,1
623
+ user_621,Engineering,Engineer,Remote,Oracle,31,1,1,0.454,0.312,36,17,9,6,1
624
+ user_622,Support,Analyst,TX,Jira,42,1,1,0.793,0.982,122,13,2,4,1
625
+ user_623,HR,Manager,TX,Workday,16,0,0,0.945,0.469,169,7,0,3,1
626
+ user_624,Sales,Engineer,NY,Oracle,8,1,0,0.508,0.578,172,10,1,5,0
627
+ user_625,Engineering,Engineer,SF,Oracle,35,1,0,0.605,0.591,112,4,1,1,0
628
+ user_626,Sales,Manager,Remote,SAP,30,1,1,0.277,0.503,134,16,0,6,1
629
+ user_627,Finance,Manager,NY,GitHub,5,1,1,0.912,0.264,160,14,7,6,0
630
+ user_628,HR,Specialist,TX,GitHub,44,1,1,0.64,0.923,127,7,3,3,1
631
+ user_629,Sales,Manager,SF,Oracle,13,1,0,0.53,0.485,40,8,2,8,0
632
+ user_630,HR,Admin,Remote,Workday,18,1,0,0.577,0.414,41,18,1,1,0
633
+ user_631,Sales,Engineer,NY,Oracle,9,1,1,0.873,0.725,63,15,10,8,1
634
+ user_632,Finance,Specialist,TX,Jira,25,1,0,0.532,0.3,80,0,1,6,0
635
+ user_633,Support,Analyst,SF,Oracle,38,0,1,0.662,0.771,12,10,0,5,1
636
+ user_634,Sales,Admin,TX,SAP,38,1,1,0.727,0.223,151,5,0,6,0
637
+ user_635,Finance,Specialist,Remote,GitHub,14,1,1,0.537,0.646,103,3,5,9,0
638
+ user_636,HR,Admin,TX,GitHub,32,1,1,0.522,0.566,7,5,7,11,1
639
+ user_637,HR,Specialist,TX,Jira,24,0,0,0.803,0.885,0,3,4,0,1
640
+ user_638,Sales,Engineer,TX,GitHub,28,0,0,0.217,0.35,45,19,3,0,0
641
+ user_639,Sales,Manager,Remote,GitHub,35,1,0,0.925,0.304,135,1,10,5,0
642
+ user_640,HR,Engineer,SF,GitHub,13,1,0,0.547,0.514,179,6,4,11,1
643
+ user_641,Finance,Manager,Remote,Workday,45,0,1,0.388,0.502,33,14,7,3,1
644
+ user_642,Finance,Specialist,Remote,Workday,19,0,1,0.281,0.159,38,11,7,1,1
645
+ user_643,Finance,Engineer,TX,Oracle,5,0,1,0.245,0.438,36,20,6,12,1
646
+ user_644,HR,Specialist,SF,Jira,28,0,0,0.662,0.546,149,15,10,10,1
647
+ user_645,Sales,Manager,Remote,Oracle,21,1,1,0.467,0.915,18,10,8,7,1
648
+ user_646,HR,Specialist,NY,Workday,24,1,0,0.699,0.539,106,7,7,10,0
649
+ user_647,Engineering,Admin,NY,Workday,29,1,0,0.785,0.165,131,15,3,6,0
650
+ user_648,Sales,Admin,SF,Jira,13,1,0,0.334,0.643,47,12,10,7,0
651
+ user_649,HR,Admin,Remote,SAP,37,1,0,0.342,0.558,120,11,0,3,0
652
+ user_650,Finance,Analyst,NY,Jira,19,1,1,0.702,0.237,47,1,6,5,1
653
+ user_651,Sales,Manager,TX,Oracle,11,1,1,0.498,0.277,52,4,3,11,0
654
+ user_652,Sales,Analyst,NY,GitHub,36,1,1,0.316,0.143,122,16,2,3,1
655
+ user_653,Support,Specialist,Remote,Jira,31,0,1,0.935,0.276,32,4,7,9,1
656
+ user_654,Finance,Admin,NY,Oracle,41,1,1,0.664,0.348,127,19,0,0,1
657
+ user_655,Finance,Specialist,NY,Oracle,33,0,1,0.682,0.453,143,7,5,6,0
658
+ user_656,Sales,Analyst,SF,Jira,44,1,0,0.601,0.602,1,8,7,8,0
659
+ user_657,Engineering,Engineer,TX,Jira,26,1,1,0.256,0.59,171,12,0,5,0
660
+ user_658,Sales,Specialist,Remote,SAP,23,1,1,0.937,0.119,179,9,3,2,0
661
+ user_659,Finance,Analyst,Remote,SAP,8,1,0,0.671,0.591,44,18,10,10,1
662
+ user_660,Engineering,Admin,TX,Jira,17,0,0,0.927,0.738,101,0,0,5,1
663
+ user_661,Finance,Admin,Remote,SAP,29,0,1,0.913,0.571,33,4,3,8,0
664
+ user_662,Sales,Admin,TX,Oracle,9,1,0,0.937,0.689,105,1,5,6,1
665
+ user_663,Engineering,Specialist,TX,Workday,12,1,1,0.906,0.137,75,11,3,0,0
666
+ user_664,Sales,Analyst,TX,GitHub,36,0,1,0.547,0.903,156,14,5,11,0
667
+ user_665,Support,Analyst,Remote,SAP,38,1,0,0.468,0.787,165,3,10,7,0
668
+ user_666,HR,Admin,NY,Oracle,14,1,1,0.404,0.435,118,8,8,9,1
669
+ user_667,Support,Specialist,SF,Oracle,22,1,1,0.487,0.659,30,5,2,12,0
670
+ user_668,Sales,Admin,TX,SAP,18,0,1,0.546,0.222,178,1,7,4,1
671
+ user_669,HR,Specialist,TX,SAP,22,0,1,0.283,0.891,146,4,1,10,1
672
+ user_670,Engineering,Specialist,TX,Oracle,18,0,1,0.296,0.927,148,14,7,6,1
673
+ user_671,Finance,Analyst,TX,SAP,21,1,0,0.435,0.754,6,12,2,10,0
674
+ user_672,Sales,Specialist,SF,GitHub,20,1,0,0.77,0.145,163,5,9,1,0
675
+ user_673,Sales,Admin,NY,GitHub,24,0,0,0.89,0.777,176,14,1,8,0
676
+ user_674,Finance,Engineer,NY,Workday,44,1,1,0.884,0.162,45,20,6,8,1
677
+ user_675,Support,Manager,SF,Jira,13,1,0,0.874,0.692,72,10,4,9,1
678
+ user_676,Sales,Admin,Remote,SAP,25,0,0,0.221,0.807,59,4,10,11,0
679
+ user_677,Sales,Engineer,SF,Jira,25,1,1,0.25,0.625,163,5,2,4,1
680
+ user_678,Sales,Specialist,Remote,Oracle,30,1,1,0.252,0.383,77,16,1,3,1
681
+ user_679,Support,Admin,SF,Oracle,12,1,1,0.875,0.592,20,9,0,1,0
682
+ user_680,Finance,Engineer,SF,Workday,33,1,1,0.547,0.567,174,14,8,2,0
683
+ user_681,Finance,Manager,SF,Workday,30,1,0,0.376,0.873,9,0,6,2,0
684
+ user_682,HR,Admin,NY,GitHub,31,1,0,0.665,0.679,157,5,7,12,1
685
+ user_683,Support,Engineer,Remote,GitHub,38,0,1,0.604,0.743,159,19,3,12,0
686
+ user_684,Finance,Engineer,Remote,Jira,31,1,0,0.659,0.12,134,19,3,5,0
687
+ user_685,Support,Specialist,Remote,Oracle,41,0,1,0.631,0.549,138,6,2,8,0
688
+ user_686,Sales,Specialist,TX,GitHub,12,1,1,0.538,0.872,133,10,6,12,0
689
+ user_687,Engineering,Manager,Remote,GitHub,7,1,1,0.552,0.873,169,16,1,0,0
690
+ user_688,Finance,Engineer,Remote,Workday,38,0,1,0.615,0.352,69,19,4,10,1
691
+ user_689,Support,Manager,TX,Workday,17,1,1,0.461,0.954,3,8,1,10,1
692
+ user_690,HR,Engineer,SF,Workday,12,0,0,0.272,0.86,92,10,8,11,1
693
+ user_691,Finance,Engineer,TX,GitHub,18,0,0,0.222,0.12,48,11,0,2,0
694
+ user_692,HR,Analyst,Remote,Jira,37,0,0,0.533,0.621,6,19,4,6,0
695
+ user_693,Support,Analyst,Remote,GitHub,34,1,0,0.544,0.512,50,14,9,8,0
696
+ user_694,Support,Manager,NY,GitHub,41,0,1,0.538,0.519,81,15,5,7,1
697
+ user_695,Engineering,Analyst,NY,Oracle,40,1,0,0.755,0.37,27,15,6,2,1
698
+ user_696,Sales,Specialist,TX,Workday,13,0,1,0.768,0.68,169,4,1,1,1
699
+ user_697,Finance,Analyst,SF,Oracle,21,0,1,0.505,0.237,105,13,9,8,1
700
+ user_698,Support,Engineer,TX,GitHub,23,0,1,0.918,0.813,156,18,9,8,1
701
+ user_699,Engineering,Manager,SF,Oracle,18,0,0,0.55,0.298,77,13,6,12,0
702
+ user_700,Engineering,Specialist,SF,Workday,24,0,1,0.687,0.431,125,7,5,6,0
703
+ user_701,Finance,Engineer,TX,SAP,12,0,0,0.655,0.64,145,12,0,10,1
704
+ user_702,Engineering,Manager,TX,Jira,30,1,1,0.274,0.674,86,14,10,12,0
705
+ user_703,Engineering,Engineer,NY,GitHub,30,0,0,0.794,0.734,37,13,6,9,1
706
+ user_704,Support,Analyst,SF,Oracle,35,0,1,0.357,0.931,97,4,9,5,0
707
+ user_705,Sales,Specialist,TX,Jira,15,1,0,0.338,0.94,141,13,5,11,1
708
+ user_706,HR,Manager,SF,Oracle,39,0,1,0.693,0.73,142,19,4,11,1
709
+ user_707,Engineering,Specialist,TX,Oracle,32,0,1,0.656,0.554,171,2,8,7,1
710
+ user_708,Sales,Analyst,TX,Workday,15,0,0,0.619,0.242,110,20,6,0,1
711
+ user_709,Support,Specialist,TX,GitHub,41,1,0,0.82,0.978,108,0,10,6,0
712
+ user_710,Engineering,Manager,Remote,Oracle,29,1,0,0.227,0.648,158,6,2,9,0
713
+ user_711,Engineering,Engineer,TX,GitHub,34,0,1,0.556,0.636,174,20,8,7,0
714
+ user_712,Support,Specialist,Remote,GitHub,16,1,0,0.817,0.794,29,8,2,9,0
715
+ user_713,Sales,Manager,SF,GitHub,14,1,0,0.939,0.965,135,8,9,3,0
716
+ user_714,HR,Manager,NY,Jira,43,1,1,0.48,0.289,81,16,1,3,1
717
+ user_715,Sales,Manager,SF,GitHub,28,0,1,0.762,0.799,10,13,8,2,1
718
+ user_716,Finance,Engineer,TX,SAP,14,0,1,0.876,0.197,133,3,9,1,0
719
+ user_717,HR,Specialist,SF,GitHub,31,1,1,0.61,0.235,57,19,8,7,1
720
+ user_718,Sales,Engineer,SF,Jira,43,1,0,0.264,0.989,30,9,5,11,1
721
+ user_719,Engineering,Admin,TX,Jira,10,0,0,0.433,0.792,136,7,6,11,0
722
+ user_720,Finance,Engineer,NY,Workday,15,1,0,0.787,0.752,96,17,4,2,1
723
+ user_721,Sales,Analyst,TX,GitHub,28,1,1,0.379,0.822,17,0,7,12,1
724
+ user_722,Support,Analyst,SF,GitHub,44,0,1,0.431,0.684,104,9,6,8,1
725
+ user_723,Support,Engineer,TX,SAP,23,1,0,0.461,0.651,53,12,1,9,1
726
+ user_724,Engineering,Specialist,Remote,SAP,16,0,1,0.628,0.976,98,13,5,10,0
727
+ user_725,Support,Engineer,Remote,GitHub,11,1,1,0.246,0.484,126,1,0,8,1
728
+ user_726,Engineering,Admin,Remote,GitHub,24,0,1,0.563,0.363,175,13,1,1,0
729
+ user_727,Finance,Engineer,NY,GitHub,18,0,0,0.658,0.354,166,13,7,0,1
730
+ user_728,Engineering,Manager,Remote,GitHub,12,1,1,0.752,0.349,137,16,5,9,0
731
+ user_729,Support,Admin,TX,GitHub,18,0,1,0.779,0.836,129,14,1,5,1
732
+ user_730,Support,Manager,Remote,SAP,19,1,1,0.21,0.614,139,11,9,11,1
733
+ user_731,Sales,Engineer,SF,GitHub,11,1,1,0.38,0.631,53,11,10,5,0
734
+ user_732,Sales,Manager,SF,SAP,22,1,0,0.892,0.434,56,12,5,9,1
735
+ user_733,Finance,Admin,SF,SAP,38,0,0,0.485,0.182,80,18,8,4,1
736
+ user_734,HR,Specialist,Remote,SAP,29,0,1,0.903,0.667,98,11,1,6,1
737
+ user_735,Sales,Manager,SF,Oracle,28,0,1,0.921,0.297,52,13,5,7,0
738
+ user_736,HR,Engineer,Remote,Jira,41,1,0,0.202,0.135,154,1,6,5,0
739
+ user_737,Engineering,Manager,NY,SAP,11,1,1,0.639,0.419,58,7,2,0,0
740
+ user_738,Finance,Specialist,TX,Jira,6,1,1,0.582,0.87,11,7,7,9,1
741
+ user_739,Sales,Analyst,SF,GitHub,21,0,1,0.547,0.295,55,18,10,5,1
742
+ user_740,HR,Analyst,TX,Workday,17,1,0,0.747,0.635,165,4,10,7,0
743
+ user_741,Engineering,Admin,Remote,Jira,18,1,1,0.383,0.686,174,7,10,8,1
744
+ user_742,Finance,Engineer,Remote,Workday,17,0,1,0.538,0.669,141,3,6,11,1
745
+ user_743,Sales,Engineer,NY,SAP,18,0,0,0.256,0.758,111,13,10,5,1
746
+ user_744,Finance,Admin,NY,Workday,7,1,1,0.834,0.742,1,6,6,8,1
747
+ user_745,HR,Specialist,TX,Oracle,10,0,1,0.472,0.369,160,19,0,0,0
748
+ user_746,HR,Admin,Remote,Workday,14,1,1,0.947,0.91,10,11,4,8,1
749
+ user_747,HR,Engineer,SF,SAP,9,0,0,0.311,0.511,51,20,5,11,0
750
+ user_748,HR,Specialist,NY,Jira,32,1,1,0.596,0.401,174,6,3,5,0
751
+ user_749,HR,Admin,SF,Workday,6,0,0,0.795,0.686,136,10,1,2,1
752
+ user_750,Engineering,Specialist,Remote,Oracle,23,0,1,0.733,0.765,125,14,0,4,0
753
+ user_751,Finance,Manager,Remote,SAP,24,0,1,0.549,0.142,46,14,5,5,1
754
+ user_752,Sales,Analyst,Remote,Workday,13,1,0,0.723,0.768,102,4,7,5,0
755
+ user_753,Engineering,Engineer,SF,GitHub,14,0,1,0.468,0.594,66,0,1,5,1
756
+ user_754,Support,Manager,NY,Workday,35,1,1,0.497,0.944,122,11,10,12,0
757
+ user_755,Sales,Manager,Remote,GitHub,42,1,0,0.507,0.116,1,2,3,5,1
758
+ user_756,Finance,Analyst,NY,Workday,10,0,1,0.764,0.137,8,13,2,12,1
759
+ user_757,Finance,Admin,SF,Workday,40,1,1,0.421,0.833,27,7,9,3,0
760
+ user_758,Engineering,Manager,Remote,Oracle,27,1,0,0.908,0.953,61,6,0,10,1
761
+ user_759,HR,Admin,NY,GitHub,36,1,0,0.773,0.7,67,11,0,4,1
762
+ user_760,Engineering,Analyst,Remote,GitHub,10,0,0,0.617,0.659,97,10,1,2,0
763
+ user_761,Finance,Engineer,SF,GitHub,11,1,0,0.779,0.523,86,16,1,8,0
764
+ user_762,Support,Analyst,Remote,Oracle,37,0,0,0.682,0.661,139,5,8,6,1
765
+ user_763,Sales,Admin,SF,GitHub,16,1,1,0.411,0.843,162,20,0,8,1
766
+ user_764,Support,Admin,Remote,SAP,15,1,0,0.316,0.585,19,10,8,7,0
767
+ user_765,Support,Analyst,SF,GitHub,20,0,0,0.659,0.385,147,18,5,12,0
768
+ user_766,Support,Analyst,SF,Oracle,34,1,1,0.379,0.25,139,6,7,7,0
769
+ user_767,Finance,Manager,TX,SAP,38,0,1,0.853,0.887,57,11,3,5,0
770
+ user_768,HR,Analyst,SF,Workday,7,1,1,0.863,0.603,176,7,10,10,0
771
+ user_769,Engineering,Manager,TX,Jira,36,1,0,0.619,0.201,71,15,6,3,0
772
+ user_770,Sales,Analyst,TX,SAP,44,1,1,0.634,0.909,163,8,2,6,0
773
+ user_771,Finance,Admin,Remote,Jira,29,0,0,0.505,0.484,106,4,2,7,1
774
+ user_772,HR,Analyst,TX,Jira,28,1,1,0.611,0.104,60,14,9,8,1
775
+ user_773,Engineering,Engineer,SF,GitHub,12,1,0,0.217,0.961,164,13,7,2,1
776
+ user_774,Sales,Analyst,NY,Jira,32,1,1,0.918,0.351,178,1,7,2,0
777
+ user_775,Sales,Admin,NY,Oracle,39,0,0,0.883,0.426,70,7,2,0,1
778
+ user_776,Sales,Specialist,SF,SAP,5,1,0,0.714,0.243,15,10,8,0,0
779
+ user_777,HR,Specialist,Remote,Oracle,5,0,1,0.535,0.948,137,13,8,1,1
780
+ user_778,HR,Engineer,NY,Oracle,42,0,0,0.203,0.237,167,10,2,6,1
781
+ user_779,Support,Analyst,TX,SAP,35,0,0,0.941,0.987,70,8,4,2,0
782
+ user_780,Finance,Analyst,SF,Oracle,32,1,0,0.454,0.255,58,17,7,12,0
783
+ user_781,HR,Analyst,SF,SAP,12,1,0,0.591,0.339,78,13,10,6,0
784
+ user_782,Support,Admin,SF,Workday,45,1,1,0.656,0.898,65,10,3,5,1
785
+ user_783,Engineering,Admin,NY,Oracle,30,1,1,0.903,0.934,157,4,5,2,1
786
+ user_784,Finance,Analyst,SF,SAP,26,0,0,0.2,0.399,16,13,7,3,0
787
+ user_785,HR,Admin,SF,Workday,27,0,1,0.315,0.574,172,17,4,6,1
788
+ user_786,Sales,Analyst,Remote,GitHub,24,1,1,0.738,0.46,153,12,2,9,0
789
+ user_787,Support,Manager,SF,Jira,11,0,1,0.348,0.58,66,9,2,0,1
790
+ user_788,HR,Admin,Remote,SAP,30,0,1,0.707,0.258,96,9,8,2,1
791
+ user_789,Support,Analyst,SF,Oracle,33,0,0,0.872,0.126,37,16,3,8,1
792
+ user_790,HR,Analyst,TX,SAP,10,1,1,0.249,0.425,141,3,1,11,0
793
+ user_791,Support,Engineer,TX,Jira,29,0,0,0.396,0.375,118,20,9,12,1
794
+ user_792,Engineering,Specialist,Remote,GitHub,29,1,0,0.695,0.812,63,4,10,5,1
795
+ user_793,Support,Specialist,NY,SAP,39,1,1,0.669,0.534,44,1,4,0,0
796
+ user_794,Support,Admin,NY,Oracle,37,0,1,0.519,0.231,58,1,5,5,0
797
+ user_795,Support,Specialist,SF,GitHub,11,0,1,0.509,0.283,161,2,1,10,0
798
+ user_796,Finance,Analyst,Remote,Jira,41,0,0,0.706,0.175,8,9,0,11,1
799
+ user_797,HR,Analyst,TX,GitHub,27,1,0,0.475,0.885,90,9,9,8,1
800
+ user_798,HR,Analyst,Remote,Workday,11,1,0,0.824,0.316,43,3,5,4,1
801
+ user_799,Finance,Engineer,TX,Oracle,33,1,1,0.576,0.967,103,5,10,5,0
requirements.txt ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ fastapi==0.110.0
2
+ uvicorn==0.29.0
3
+ pandas==2.2.2
4
+ scikit-learn==1.4.2
5
+ numpy==1.26.4
6
+ sqlalchemy==2.0.29
7
+ python-multipart==0.0.9
8
+ openpyxl==3.1.2
9
+ hdbscan==0.8.40