feat: seed Ilia Dobkin AI search profile and keyword set
Adds an AI Engineer profile/resume path and keyword terms for LLM/MCP/RAG role discovery alongside the existing SDET sets.
This commit is contained in:
parent
d3d9130bbf
commit
667bc70b7d
@ -98,6 +98,44 @@ const ILIA_DOBKIN_US_KEYWORD_TERMS = [
|
||||
"TN SDET",
|
||||
];
|
||||
|
||||
/** AI engineering / AI enablement — agents, MCP, RAG, evals, local LLM serving. */
|
||||
const ILIA_DOBKIN_AI_TARGET_ROLES = [
|
||||
"AI Engineer",
|
||||
"Senior AI Engineer",
|
||||
"Staff AI Engineer",
|
||||
"AI Automation Engineer",
|
||||
"Applied AI Engineer",
|
||||
"LLM Engineer",
|
||||
"Generative AI Engineer",
|
||||
"GenAI Engineer",
|
||||
"AI Platform Engineer",
|
||||
"AI Solutions Engineer",
|
||||
"AI Enablement Lead",
|
||||
"AI Enablement Engineer",
|
||||
"AI Agent Engineer",
|
||||
"ML Engineer",
|
||||
"Machine Learning Engineer",
|
||||
"Prompt Engineer",
|
||||
"RAG Engineer",
|
||||
];
|
||||
|
||||
const ILIA_DOBKIN_AI_KEYWORD_TERMS = [
|
||||
...ILIA_DOBKIN_AI_TARGET_ROLES.map((role) => role.toLowerCase()),
|
||||
"LLM agents",
|
||||
"MCP engineer",
|
||||
"LangGraph",
|
||||
"RAG engineer",
|
||||
"prompt engineering",
|
||||
"Ollama",
|
||||
"AI enablement",
|
||||
"AI automation remote",
|
||||
"contract AI engineer",
|
||||
"GenAI remote",
|
||||
"LLM evals",
|
||||
"promptfoo",
|
||||
"multi-agent",
|
||||
];
|
||||
|
||||
const migrations = [
|
||||
`CREATE TABLE IF NOT EXISTS jobs (
|
||||
id TEXT PRIMARY KEY,
|
||||
@ -1142,6 +1180,105 @@ const migrations = [
|
||||
'685b0000-0000-4000-8000-000000009901',
|
||||
'685b0000-0000-4000-8000-000000009902'
|
||||
)`,
|
||||
// AI engineering profile — agents, MCP, RAG, evals (paired with same login as Canada/US).
|
||||
sqlInsertSearchProfileSeed({
|
||||
id: "685b0000-0000-4000-8000-000000000004",
|
||||
name: "Ilia Dobkin (AI)",
|
||||
profile: {
|
||||
targetRoles: ILIA_DOBKIN_AI_TARGET_ROLES,
|
||||
experienceLevel: "Senior",
|
||||
mustHaveSkills: [
|
||||
"Python",
|
||||
"LLM",
|
||||
"RAG",
|
||||
"MCP",
|
||||
"Agents",
|
||||
"FastAPI",
|
||||
"Prompt engineering",
|
||||
],
|
||||
niceToHaveSkills: [
|
||||
"LangGraph",
|
||||
"Ollama",
|
||||
"promptfoo",
|
||||
"TypeScript",
|
||||
"Playwright",
|
||||
"Ansible",
|
||||
"Docker",
|
||||
],
|
||||
dealBreakers: [],
|
||||
preferredWorkArrangement: ["remote", "hybrid"],
|
||||
preferredLocations: [
|
||||
"Toronto",
|
||||
"Ontario",
|
||||
"GTA",
|
||||
"Greater Toronto Area",
|
||||
"Canada",
|
||||
"Remote Canada",
|
||||
"Remote",
|
||||
],
|
||||
minimumSalary: "",
|
||||
industriesToTarget: [
|
||||
"Software",
|
||||
"AI / ML",
|
||||
"Enterprise SaaS",
|
||||
"FinTech",
|
||||
"Developer tools",
|
||||
],
|
||||
industriesToAvoid: [],
|
||||
aboutMe:
|
||||
"Ilia Dobkin (AI) — AI Automation Engineer / LLM agents, MCP, RAG & evals; AI enablement lead experience. Switch to this profile for AI-role discovery (same login as Canada/US). Resume: ilia-dobkin-ai.json.",
|
||||
basicAuthUser: "ilia,dobkin",
|
||||
resumeLocalPath: "../data/resumes/ilia-dobkin-ai.json",
|
||||
},
|
||||
}),
|
||||
`INSERT OR IGNORE INTO keyword_sets (id, owner_profile_id, name, terms, is_active, created_at, updated_at)
|
||||
VALUES (
|
||||
'ilia-dobkin-ai-keyword-set',
|
||||
'685b0000-0000-4000-8000-000000000004',
|
||||
'AI Engineer',
|
||||
'${sqlJsonLiteral(ILIA_DOBKIN_AI_KEYWORD_TERMS)}',
|
||||
1,
|
||||
datetime('now'),
|
||||
datetime('now')
|
||||
)`,
|
||||
`UPDATE search_profiles
|
||||
SET data = json_set(
|
||||
json_set(
|
||||
json_set(data, '$.basicAuthUser', 'ilia,dobkin'),
|
||||
'$.resumeLocalPath',
|
||||
'../data/resumes/ilia-dobkin-ai.json'
|
||||
),
|
||||
'$.aboutMe',
|
||||
'Ilia Dobkin (AI) — AI Automation Engineer / LLM agents, MCP, RAG & evals; AI enablement lead experience. Switch to this profile for AI-role discovery (same login as Canada/US). Resume: ilia-dobkin-ai.json.'
|
||||
),
|
||||
updated_at = datetime('now')
|
||||
WHERE id = '685b0000-0000-4000-8000-000000000004'`,
|
||||
`UPDATE search_profiles
|
||||
SET data = json_set(data, '$.targetRoles', '${sqlJsonLiteral(ILIA_DOBKIN_AI_TARGET_ROLES)}'),
|
||||
updated_at = datetime('now')
|
||||
WHERE id = '685b0000-0000-4000-8000-000000000004'`,
|
||||
`UPDATE keyword_sets
|
||||
SET terms = '${sqlJsonLiteral(ILIA_DOBKIN_AI_KEYWORD_TERMS)}',
|
||||
name = 'AI Engineer',
|
||||
is_active = 1,
|
||||
updated_at = datetime('now')
|
||||
WHERE id = 'ilia-dobkin-ai-keyword-set'`,
|
||||
// Also add AI Engineer as an inactive keyword set on the Canada SDET profile
|
||||
// (same pattern as Caseware / Lead) so it can be flipped without switching profiles.
|
||||
`INSERT OR IGNORE INTO keyword_sets (id, owner_profile_id, name, terms, is_active, created_at, updated_at)
|
||||
VALUES (
|
||||
'ilia-dobkin-ai',
|
||||
'685b0000-0000-4000-8000-000000000001',
|
||||
'AI Engineer',
|
||||
'${sqlJsonLiteral(ILIA_DOBKIN_AI_KEYWORD_TERMS)}',
|
||||
0,
|
||||
datetime('now'),
|
||||
datetime('now')
|
||||
)`,
|
||||
`UPDATE keyword_sets
|
||||
SET terms = '${sqlJsonLiteral(ILIA_DOBKIN_AI_KEYWORD_TERMS)}',
|
||||
updated_at = datetime('now')
|
||||
WHERE id = 'ilia-dobkin-ai'`,
|
||||
];
|
||||
|
||||
console.log("🔧 Running database migrations...");
|
||||
|
||||
25
scripts/jobber-cron-dobkin-ai.env.example
Normal file
25
scripts/jobber-cron-dobkin-ai.env.example
Normal file
@ -0,0 +1,25 @@
|
||||
#
|
||||
# Jobber cron env — dobkin (AI Engineer)
|
||||
# Copy to /root/.jobber-cron-dobkin-ai.env (chmod 600)
|
||||
#
|
||||
# Used by: scripts/jobber-pipeline-telegram.sh
|
||||
# Activate profile "Ilia Dobkin (AI)" in the Jobs UI (or via API) before cron,
|
||||
# or pass the owner profile in your pipeline wrapper if supported.
|
||||
#
|
||||
|
||||
# JobOps base URL (where the app is reachable from the cron host)
|
||||
JOBOPS_URL=http://127.0.0.1:3005
|
||||
|
||||
# Optional: limit number of jobs linked in Telegram message
|
||||
JOB_TELEGRAM_MAX_JOBS=25
|
||||
|
||||
# Optional: comma-separated sources to run (leave empty to use server defaults)
|
||||
# JOBBER_PIPELINE_SOURCES=adzuna,gradcracker,ukvisajobs
|
||||
|
||||
# App-level Basic Auth (enables per-user separation when set on the server)
|
||||
BASIC_AUTH_USER=dobkin
|
||||
BASIC_AUTH_PASSWORD=CHANGEME
|
||||
|
||||
# Telegram bot + chat destination
|
||||
TELEGRAM_BOT_TOKEN=CHANGEME
|
||||
TELEGRAM_CHAT_ID=CHANGEME
|
||||
Loading…
x
Reference in New Issue
Block a user