Загрузка данных
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="Архитектор решений",
department="Architecture Office",
description="""
Проектирование архитектуры корпоративных ИТ-решений;
Анализ бизнес- и технических требований;
Выбор технологического стека;
Проектирование интеграций между системами;
Подготовка архитектурной документации;
Оценка технических рисков;
Взаимодействие с аналитиками, разработчиками, DevOps и бизнес-заказчиками;
Участие в архитектурных комитетах и согласовании проектных решений.
""".strip(),
requirements="""
Опыт работы архитектором решений или ведущим системным аналитиком от 3 лет;
Понимание микросервисной архитектуры;
Опыт проектирования REST API и интеграционных сценариев;
Знание баз данных и принципов масштабирования;
Понимание cloud/native подходов будет преимуществом;
Опыт подготовки архитектурной документации;
Навыки оценки технических рисков;
Умение согласовывать решения с бизнесом и техническими командами.
""".strip(),
skills=[
"Solution Architecture",
"Microservices",
"REST API",
"System Design",
"Integration",
"Cloud",
"Databases",
"Scalability",
"Architecture Documentation",
"Risk Assessment"
],
is_active=True,
)
db.session.add(vacancy)
db.session.flush()
resumes_data = [
{
"vk_user_id": "900001",
"full_name": "Рябов Алексей Викторович",
"level": "Senior",
"match_level": "high",
"experience_years": 7,
"skills": ["Solution Architecture", "Microservices", "REST API", "Integration", "Cloud", "System Design"],
"raw_text": """
Рябов Алексей Викторович
Архитектор решений
Опыт работы: 7 лет.
Проектировал архитектуру корпоративной платформы для автоматизации внутренних процессов. Отвечал за выбор технологического стека, проектирование микросервисов, описание REST API и интеграций между CRM, ERP и внутренними сервисами. Участвовал в архитектурных комитетах и согласовании решений с бизнес-заказчиками.
Навыки: Solution Architecture, Microservices, REST API, Integration, Cloud, System Design.
"""
},
{
"vk_user_id": "900002",
"full_name": "Климова Екатерина Андреевна",
"level": "Middle",
"match_level": "medium",
"experience_years": 3,
"skills": ["System Analysis", "REST API", "UML", "Integration", "Databases"],
"raw_text": """
Климова Екатерина Андреевна
Системный аналитик
Опыт работы: 3 года.
Описывала интеграционные взаимодействия, REST API и UML-диаграммы для банковских сервисов. Участвовала в обсуждении архитектурных решений, но не была ответственной за архитектуру системы целиком.
Навыки: System Analysis, REST API, UML, Integration, Databases.
"""
},
{
"vk_user_id": "900003",
"full_name": "Маслов Дмитрий Сергеевич",
"level": "Senior",
"match_level": "high",
"experience_years": 9,
"skills": ["Solution Architecture", "System Design", "Scalability", "Databases", "Microservices", "Risk Assessment"],
"raw_text": """
Маслов Дмитрий Сергеевич
Solution Architect
Опыт работы: 9 лет.
Проектировал высоконагруженные B2B-системы, отвечал за масштабируемость, отказоустойчивость и интеграции. Работал с микросервисной архитектурой, базами данных и архитектурной документацией. Проводил оценку технических рисков перед запуском крупных изменений.
Навыки: Solution Architecture, System Design, Scalability, Databases, Microservices, Risk Assessment.
"""
},
{
"vk_user_id": "900004",
"full_name": "Павлова Ирина Олеговна",
"level": "Senior",
"match_level": "high",
"experience_years": 6,
"skills": ["Architecture Documentation", "Integration", "REST API", "Cloud", "Microservices"],
"raw_text": """
Павлова Ирина Олеговна
Архитектор решений
Опыт работы: 6 лет.
Участвовала в проектировании цифровой платформы для клиентского обслуживания. Описывала архитектурные решения, интеграции с внешними системами и API-контракты. Работала с cloud-инфраструктурой и микросервисным подходом.
Навыки: Architecture Documentation, Integration, REST API, Cloud, Microservices.
"""
},
{
"vk_user_id": "900005",
"full_name": "Емельянов Кирилл Павлович",
"level": "Low",
"match_level": "low",
"experience_years": 2,
"skills": ["HTML", "CSS", "JavaScript"],
"raw_text": """
Емельянов Кирилл Павлович
Frontend-разработчик
Опыт работы: 2 года.
Разрабатывал пользовательские интерфейсы на JavaScript, HTML и CSS. Опыта проектирования архитектуры корпоративных систем и интеграционных решений нет.
Навыки: HTML, CSS, JavaScript.
"""
},
{
"vk_user_id": "900006",
"full_name": "Соколова Марина Игоревна",
"level": "Senior",
"match_level": "high",
"experience_years": 8,
"skills": ["Solution Architecture", "Cloud", "Microservices", "DevOps", "System Design", "Integration"],
"raw_text": """
Соколова Марина Игоревна
Cloud Solution Architect
Опыт работы: 8 лет.
Проектировала cloud-native решения, участвовала в миграции монолитных систем в микросервисную архитектуру. Работала с DevOps-командами, описывала архитектурные ограничения и интеграции между сервисами.
Навыки: Solution Architecture, Cloud, Microservices, DevOps, System Design, Integration.
"""
},
{
"vk_user_id": "900007",
"full_name": "Волков Артем Николаевич",
"level": "Middle",
"match_level": "medium",
"experience_years": 4,
"skills": ["Backend", "REST API", "Databases", "Docker", "System Design"],
"raw_text": """
Волков Артем Николаевич
Backend Developer
Опыт работы: 4 года.
Разрабатывал backend-сервисы, участвовал в обсуждении архитектуры модулей, работал с REST API, Docker и базами данных. Имеет техническую базу, но ограниченный опыт архитектурного проектирования на уровне всей системы.
Навыки: Backend, REST API, Databases, Docker, System Design.
"""
},
{
"vk_user_id": "900008",
"full_name": "Лазарева Ольга Дмитриевна",
"level": "Senior",
"match_level": "high",
"experience_years": 10,
"skills": ["Enterprise Architecture", "Solution Architecture", "Integration", "Risk Assessment", "Architecture Documentation"],
"raw_text": """
Лазарева Ольга Дмитриевна
Enterprise / Solution Architect
Опыт работы: 10 лет.
Проектировала корпоративные ИТ-ландшафты, отвечала за согласование решений между бизнесом, разработкой и инфраструктурными командами. Подготавливала архитектурную документацию, оценивала риски и участвовала в выборе технологических платформ.
Навыки: Enterprise Architecture, Solution Architecture, Integration, Risk Assessment, Architecture Documentation.
"""
},
{
"vk_user_id": "900009",
"full_name": "Беляев Никита Романович",
"level": "Low",
"match_level": "low",
"experience_years": 1,
"skills": ["Support", "Excel", "Communication"],
"raw_text": """
Беляев Никита Романович
Специалист технической поддержки
Опыт работы: 1 год.
Обрабатывал обращения пользователей и передавал инциденты в команды разработки и инфраструктуры. Опыта архитектурного проектирования и выбора технологических решений нет.
Навыки: Support, Excel, Communication.
"""
},
{
"vk_user_id": "900010",
"full_name": "Горбунов Михаил Андреевич",
"level": "Senior",
"match_level": "high",
"experience_years": 7,
"skills": ["Solution Architecture", "REST API", "Microservices", "Databases", "Scalability", "System Design"],
"raw_text": """
Горбунов Михаил Андреевич
Архитектор решений
Опыт работы: 7 лет.
Проектировал архитектуру клиентских сервисов и внутренних платформ. Описывал микросервисные взаимодействия, API-контракты, модели данных и требования к масштабируемости. Работал с аналитиками, разработчиками и DevOps.
Навыки: Solution Architecture, REST API, Microservices, Databases, Scalability, System Design.
"""
},
]
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("✅ Solution Architect 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])