Загрузка данных
import sys
import os
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..")))
from backend.app import app
from backend.db import db
from backend.models import Candidate, Resume, Vacancy
def create_candidate(vk_user_id, full_name, email, phone):
candidate = Candidate(
vk_user_id=vk_user_id,
full_name=full_name,
email=email,
phone=phone,
)
db.session.add(candidate)
db.session.flush()
return candidate
def create_resume(candidate, vacancy, file_name, raw_text, parsed_json):
resume = Resume(
candidate_id=candidate.id,
vacancy_id=vacancy.id,
file_name=file_name,
raw_text=raw_text.strip(),
parsed_json=parsed_json,
)
db.session.add(resume)
db.session.flush()
return resume
with app.app_context():
vacancy = Vacancy(
title="Системный администратор (Middle)",
department="IT Infrastructure",
description="""
Администрирование серверной инфраструктуры;
Поддержка Windows и Linux серверов;
Настройка сетевого оборудования;
Мониторинг доступности сервисов;
Резервное копирование данных;
Управление учетными записями пользователей;
Диагностика и устранение инцидентов.
""".strip(),
requirements="""
Опыт работы системным администратором от 2 лет;
Знание Windows Server и Linux;
Опыт настройки сетевого оборудования;
Понимание TCP/IP;
Навыки работы с Active Directory;
Опыт резервного копирования;
Базовые знания виртуализации будут преимуществом.
""".strip(),
skills=[
"Linux",
"Windows Server",
"Active Directory",
"TCP/IP",
"Networking",
"VMware",
"Docker",
"Bash",
"Backup",
"Monitoring"
],
is_active=True,
)
db.session.add(vacancy)
db.session.flush()
resumes_data = [
{
"vk_user_id": "700001",
"full_name": "Федоров Андрей Сергеевич",
"level": "Middle",
"match_level": "high",
"experience_years": 4,
"skills": [
"Linux",
"Windows Server",
"TCP/IP",
"Active Directory",
"Backup"
],
"raw_text": """
Федоров Андрей Сергеевич
Системный администратор
Опыт работы: 4 года.
Администрировал Windows и Linux серверы, настраивал резервное копирование и Active Directory, поддерживал сетевую инфраструктуру компании.
Навыки: Linux, Windows Server, TCP/IP, Active Directory, Backup.
"""
},
{
"vk_user_id": "700002",
"full_name": "Мельникова Ирина Павловна",
"level": "Junior",
"match_level": "medium",
"experience_years": 1,
"skills": [
"Windows Server",
"Networking",
"TCP/IP"
],
"raw_text": """
Мельникова Ирина Павловна
Junior System Administrator
Опыт работы: 1 год.
Поддерживала офисную инфраструктуру и рабочие станции пользователей, работала с Windows Server и базовой сетевой настройкой.
Навыки: Windows Server, Networking, TCP/IP.
"""
},
{
"vk_user_id": "700003",
"full_name": "Калинин Максим Игоревич",
"level": "Senior",
"match_level": "high",
"experience_years": 8,
"skills": [
"Linux",
"VMware",
"Docker",
"Monitoring",
"Bash"
],
"raw_text": """
Калинин Максим Игоревич
Senior System Administrator
Опыт работы: 8 лет.
Проектировал серверную инфраструктуру, администрировал Linux-системы, внедрял виртуализацию VMware и мониторинг сервисов.
Навыки: Linux, VMware, Docker, Monitoring, Bash.
"""
},
{
"vk_user_id": "700004",
"full_name": "Ершова Дарья Алексеевна",
"level": "Middle",
"match_level": "high",
"experience_years": 3,
"skills": [
"Active Directory",
"Windows Server",
"Backup",
"Networking"
],
"raw_text": """
Ершова Дарья Алексеевна
Системный администратор
Опыт работы: 3 года.
Работала с Active Directory, настраивала резервное копирование и поддерживала сетевую инфраструктуру компании.
Навыки: Active Directory, Windows Server, Backup, Networking.
"""
},
{
"vk_user_id": "700005",
"full_name": "Лапшин Денис Викторович",
"level": "Low",
"match_level": "low",
"experience_years": 2,
"skills": [
"JavaScript",
"React",
"HTML"
],
"raw_text": """
Лапшин Денис Викторович
Frontend-разработчик
Опыт работы: 2 года.
Разрабатывал пользовательские интерфейсы на React и JavaScript.
Навыки: JavaScript, React, HTML.
"""
},
{
"vk_user_id": "700006",
"full_name": "Кузнецова Алина Сергеевна",
"level": "Middle",
"match_level": "high",
"experience_years": 5,
"skills": [
"Linux",
"Docker",
"Monitoring",
"TCP/IP"
],
"raw_text": """
Кузнецова Алина Сергеевна
System Administrator
Опыт работы: 5 лет.
Поддерживала Linux-инфраструктуру, настраивала Docker-контейнеры и систему мониторинга сервисов.
Навыки: Linux, Docker, Monitoring, TCP/IP.
"""
},
{
"vk_user_id": "700007",
"full_name": "Павлов Кирилл Евгеньевич",
"level": "Trainee",
"match_level": "medium",
"experience_years": 0.5,
"skills": [
"Linux",
"Windows",
"TCP/IP"
],
"raw_text": """
Павлов Кирилл Евгеньевич
Стажер системного администратора
Опыт работы: 6 месяцев.
Проходил стажировку в IT-отделе, занимался настройкой рабочих станций и базовой поддержкой пользователей.
Навыки: Linux, Windows, TCP/IP.
"""
},
{
"vk_user_id": "700008",
"full_name": "Николаева Мария Олеговна",
"level": "Middle",
"match_level": "high",
"experience_years": 4,
"skills": [
"Windows Server",
"Active Directory",
"VMware",
"Backup"
],
"raw_text": """
Николаева Мария Олеговна
Системный администратор
Опыт работы: 4 года.
Администрировала Windows Server, Active Directory и VMware-инфраструктуру компании.
Навыки: Windows Server, Active Directory, VMware, Backup.
"""
},
{
"vk_user_id": "700009",
"full_name": "Титов Артем Андреевич",
"level": "Low",
"match_level": "low",
"experience_years": 1,
"skills": [
"Sales",
"Excel",
"CRM"
],
"raw_text": """
Титов Артем Андреевич
Менеджер по продажам
Опыт работы: 1 год.
Работал с CRM и клиентской базой, занимался продажами IT-услуг.
Навыки: Sales, Excel, CRM.
"""
},
{
"vk_user_id": "700010",
"full_name": "Сорокин Владислав Дмитриевич",
"level": "Middle",
"match_level": "high",
"experience_years": 6,
"skills": [
"Linux",
"Bash",
"Networking",
"Monitoring",
"Docker"
],
"raw_text": """
Сорокин Владислав Дмитриевич
Senior System Administrator
Опыт работы: 6 лет.
Поддерживал серверную инфраструктуру, автоматизировал задачи с помощью Bash-скриптов и занимался мониторингом сервисов.
Навыки: Linux, Bash, Networking, Monitoring, Docker.
"""
},
]
for item in resumes_data:
candidate = create_candidate(
vk_user_id=item["vk_user_id"],
full_name=item["full_name"],
email=f'{item["vk_user_id"]}@example.com',
phone="+375290000000",
)
create_resume(
candidate=candidate,
vacancy=vacancy,
file_name=f'{item["vk_user_id"]}_resume.txt',
raw_text=item["raw_text"],
parsed_json={
"full_name": item["full_name"],
"target_vacancy_id": vacancy.id,
"target_vacancy": vacancy.title,
"level": item["level"],
"match_level": item["match_level"],
"experience_years": item["experience_years"],
"skills": item["skills"],
}
)
db.session.commit()
print("✅ System Administrator dataset added")
print("Vacancies:", Vacancy.query.count())
print("Candidates:", Candidate.query.count())
print("Resumes:", Resume.query.count())
print("New Vacancy ID:", vacancy.id)
print("Resume IDs:", [r.id for r in vacancy.resumes])