Об этом проекте

JobOps Copilot — это платформа операций с ИИ-агентами для поиска работы. Она находит и отслеживает возможности в CRM, а затем применяет настоящие LLM, генерацию с дополненной выборкой (RAG) и многошаговых агентов для анализа соответствия, исследования компаний, подготовки к собеседованиям, планирования пробелов в навыках, составления черновиков обращений и выявления временных закономерностей. Проект явно позиционирует себя как ответственная система ИИ-операций, а не как бот для автоматической отправки заявок: он готовит черновики и рекомендации, но никогда не отправляет и не выдумывает. Ключевые возможности, описанные в README: - LLM от нескольких провайдеров: сервис агентов на Python маршрутизирует запросы к Anthropic Claude, Azure OpenAI, OpenAI или Google Gemini через init_chat_model из LangChain со структурированной валидацией вывода. Детерминированный mock-фолбэк позволяет приложению работать без ключей. - Многошаговые агенты LangChain: подготовка к собеседованию, исследование компании (с инструментом веб-поиска) и планирование пробелов в навыках на основе create_agent и ToolStrategy. Результаты сохраняются по каждой вакансии и могут быть перегенерированы. - Поиск вакансий внутри приложения: импортирует роли из Adzuna с локальным предварительным ранжированием по ключевым словам, затем вычисляет оценку соответствия через LLM при открытии; включает фильтр по свежести, дату публикации, фрагмент совпавших навыков и запланированный cron поиска. - Автозаполнение при добавлении вакансии по URL: защищённая от SSRF загрузка с многоуровневым извлекателем (JSON-LD JobPosting, OpenGraph, эвристика) за кнопкой Autofill. - Плавающий глобальный ассистент: многоходовой контекстно-зависимый чат-виджет на каждой аутентифицированной странице, потоковая передача от Python через Express и Next.js, с сохранением в sessionStorage и поддержкой доступности. - RAG на pgvector: резюме и описания вакансий векторизуются с помощью Hugging Face sentence-transformers (PyTorch) и хранятся в Postgres pgvector; оценка соответствия опирается на извлечённые доказательства из резюме. - Интеллектуальная телеметрия временных рядов: анализ трендов, аномалий и прогнозов с помощью pandas по воронке, с описанием от LLM, плюс демонстрация синтетической телеметрии EV-батареи. - UI: Next.js 16, React 19, Tailwind v4, shadcn/ui, светлая/тёмная темы, мастер онбординга, аутентификация Clerk и проверка Playwright на разных контрольных точках. - Автоматизация рабочих процессов: вебхуки n8n для приёма вакансий, напоминаний о последующих действиях и еженедельных отчётов, с сопутствующими сценариями для Make.com и Zapier. - Производственная дисциплина: CI для npm и Python (линт, проверка типов, сборка, тесты), защищённая ветка main, Azure PostgreSQL, экспорт в Blob Storage и рабочий процесс развёртывания в App Service. - ИИ-операции: импорт из Adzuna, трассировка Langfuse, стенд оценки (детерминированный плюс Ragas) с двухуровневым CI-гейтом и ограничениями во время выполнения, включая ограничение частоты запросов на пользователя, дневной лимит затрат, редактирование PII контактов, защиту от prompt-injection и модерацию вывода. Архитектура: apps/web (Next.js) → apps/api (Express) → services/agent (Python/FastAPI, который владеет ИИ) → Azure PostgreSQL с pgvector, в окружении Blob Storage, автоматизации и платформенных сервисов Azure. API делегирует ИИ сервису агентов, когда задан AGENT_SERVICE_URL, иначе использует mock. Миграции базы данных применяются API при запуске, а endpoint готовности сообщает о пробелах в схеме. Технологический стек: Next.js 16, React 19, TypeScript, Tailwind v4, shadcn/ui, Clerk; Express 5 с pg; Python 3.12, FastAPI, LangChain, sentence-transformers, pandas, psycopg/pgvector; Azure Database for PostgreSQL, Blob Storage, App Service, Container Apps; n8n, Make.com и Zapier для автоматизации. Безопасность и одобрение человеком: система готовит черновики обращений, но никогда не отправляет автоматически, предлагает акценты в резюме, но никогда не выдумывает опыт, оценивает соответствие и исследует компании, оставляя решения пользователю, и поддерживает вывод структурированным, обоснованным и проверяемым.