Загрузка данных
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="Python Backend Developer (Middle)",
department="Backend Development",
description="""
Разработка backend-сервисов на Python;
Создание REST API;
Работа с PostgreSQL;
Интеграция внешних сервисов;
Оптимизация производительности;
Работа с Docker и Git;
Участие в code review и проектировании архитектуры.
""".strip(),
requirements="""
Опыт backend-разработки от 2 лет;
Уверенное знание Python;
Опыт работы с FastAPI или Flask;
Понимание REST API;
Опыт работы с SQL и PostgreSQL;
Навыки работы с Git;
Базовые знания Docker;
Понимание принципов OOP и SOLID.
""".strip(),
skills=[
"Python",
"FastAPI",
"Flask",
"REST API",
"PostgreSQL",
"SQL",
"Docker",
"Git",
"OOP",
"SOLID"
],
is_active=True,
)
db.session.add(vacancy)
db.session.flush()
resumes_data = [
{
"vk_user_id": "300001",
"full_name": "Ковалев Денис Андреевич",
"level": "Middle",
"match_level": "high",
"experience_years": 3,
"skills": [
"Python",
"FastAPI",
"PostgreSQL",
"Docker",
"REST API",
"Git"
],
"raw_text": """
Ковалев Денис Андреевич
Python Backend Developer
Опыт работы: 3 года.
Разрабатывал backend-сервисы на FastAPI, проектировал REST API, работал с PostgreSQL и Docker. Участвовал в code review и оптимизации производительности.
Навыки: Python, FastAPI, PostgreSQL, Docker, REST API, Git.
"""
},
{
"vk_user_id": "300002",
"full_name": "Мельникова Алина Сергеевна",
"level": "Junior",
"match_level": "medium",
"experience_years": 1,
"skills": [
"Python",
"Flask",
"SQL",
"Git"
],
"raw_text": """
Мельникова Алина Сергеевна
Junior Python Developer
Опыт работы: 1 год.
Разрабатывала внутренние сервисы на Flask, писала SQL-запросы и работала с Git. Есть базовое понимание REST API и Docker.
Навыки: Python, Flask, SQL, Git.
"""
},
{
"vk_user_id": "300003",
"full_name": "Гаврилов Артем Ильич",
"level": "Senior",
"match_level": "high",
"experience_years": 7,
"skills": [
"Python",
"FastAPI",
"Microservices",
"Docker",
"PostgreSQL",
"SOLID"
],
"raw_text": """
Гаврилов Артем Ильич
Senior Backend Engineer
Опыт работы: 7 лет.
Проектировал микросервисную архитектуру, разрабатывал высоконагруженные backend-системы на FastAPI и Python. Работал с Docker, PostgreSQL и CI/CD.
Навыки: Python, FastAPI, Microservices, Docker, PostgreSQL, SOLID.
"""
},
{
"vk_user_id": "300004",
"full_name": "Фомина Екатерина Олеговна",
"level": "Middle",
"match_level": "high",
"experience_years": 4,
"skills": [
"Python",
"Flask",
"REST API",
"PostgreSQL",
"Docker"
],
"raw_text": """
Фомина Екатерина Олеговна
Backend Developer
Опыт работы: 4 года.
Разрабатывала REST API для внутренних сервисов компании. Работала с Flask, PostgreSQL и Docker. Участвовала в проектировании backend-логики.
Навыки: Python, Flask, REST API, PostgreSQL, Docker.
"""
},
{
"vk_user_id": "300005",
"full_name": "Сидоров Павел Игоревич",
"level": "Low",
"match_level": "low",
"experience_years": 2,
"skills": [
"HTML",
"CSS",
"JavaScript"
],
"raw_text": """
Сидоров Павел Игоревич
Frontend Developer
Опыт работы: 2 года.
Разрабатывал интерфейсы на JavaScript. Backend-разработкой не занимался.
Навыки: HTML, CSS, JavaScript.
"""
},
{
"vk_user_id": "300006",
"full_name": "Тарасова Мария Дмитриевна",
"level": "Middle",
"match_level": "high",
"experience_years": 3,
"skills": [
"Python",
"FastAPI",
"SQLAlchemy",
"PostgreSQL",
"Git"
],
"raw_text": """
Тарасова Мария Дмитриевна
Python Developer
Опыт работы: 3 года.
Разрабатывала backend-приложения на FastAPI, использовала SQLAlchemy и PostgreSQL. Работала с Git и Docker.
Навыки: Python, FastAPI, SQLAlchemy, PostgreSQL, Git.
"""
},
{
"vk_user_id": "300007",
"full_name": "Носов Кирилл Алексеевич",
"level": "Trainee",
"match_level": "medium",
"experience_years": 0.5,
"skills": [
"Python",
"Flask",
"SQLite"
],
"raw_text": """
Носов Кирилл Алексеевич
Стажер Python Developer
Опыт работы: 6 месяцев.
Разрабатывал учебные backend-проекты на Flask и SQLite. Коммерческий опыт ограничен.
Навыки: Python, Flask, SQLite.
"""
},
{
"vk_user_id": "300008",
"full_name": "Комаров Илья Евгеньевич",
"level": "DevOps",
"match_level": "medium",
"experience_years": 4,
"skills": [
"Docker",
"Linux",
"CI/CD",
"Python"
],
"raw_text": """
Комаров Илья Евгеньевич
DevOps Engineer
Опыт работы: 4 года.
Настраивал CI/CD и Docker-инфраструктуру. Использовал Python для автоматизации процессов. Опыт backend-разработки ограничен.
Навыки: Docker, Linux, CI/CD, Python.
"""
},
{
"vk_user_id": "300009",
"full_name": "Баранова Ольга Ильинична",
"level": "Middle",
"match_level": "high",
"experience_years": 5,
"skills": [
"Python",
"FastAPI",
"REST API",
"Docker",
"PostgreSQL",
"OOP"
],
"raw_text": """
Баранова Ольга Ильинична
Backend Engineer
Опыт работы: 5 лет.
Разрабатывала REST API и backend-сервисы на Python и FastAPI. Работала с Docker, PostgreSQL и архитектурой приложений.
Навыки: Python, FastAPI, REST API, Docker, PostgreSQL, OOP.
"""
},
{
"vk_user_id": "300010",
"full_name": "Ершов Максим Викторович",
"level": "Low",
"match_level": "low",
"experience_years": 1,
"skills": [
"Excel",
"Support",
"Communication"
],
"raw_text": """
Ершов Максим Викторович
Специалист поддержки
Опыт работы: 1 год.
Работал в технической поддержке пользователей. Backend-разработкой не занимался.
Навыки: Excel, Support, Communication.
"""
},
]
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("✅ Python Backend 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])