MaViAl · панель вакансий
Актуально на:
Гость · не выполнен вход

Вход через Google в панель вакансий MaViAl — кабинет работодателя и соискателя


Для работодателя
Публикация вакансий, управление статусами draft open closed, просмотр откликов и экспорт открытых вакансий в jobs.json.
Для соискателя
Профиль, загрузка резюме (PDF/DOC/DOCX) и быстрые отклики на вакансии. История всех откликов хранится в кабинете соискателя.
Без паролей Вход через Google (OAuth), меньше ошибок и быстрее старт.
Разделение ролей Работодатель и соискатель видят разные панели и данные.
Контроль доступа Firestore/Storage правила ограничивают чтение и запись данных.
Готово к росту Экспорт вакансий, уведомления, расширение логики через Functions.
Как это работает

Подключение Firebase и настройка входа через Google

Короткий сценарий: создайте проект в Firebase, включите Authentication → Sign-in method → Google, создайте Firestore и Storage, затем вставьте конфиг и нажмите «Подключить». После подключения доступен вход через Google и работа кабинета работодателя/соискателя.
Ссылка на консоль Firebase сохранена без изменений: console.firebase.google.com


Пример правил безопасности Firestore/Storage для вакансий и откликов
rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{uid} {
      allow read: if request.auth != null && request.auth.uid == uid;
      allow write: if request.auth != null && request.auth.uid == uid;
    }
    match /jobs/{id} {
      allow read: if true; // публичные вакансии
      // Работодатель может править только свои вакансии
      allow create, update: if request.auth != null && request.resource.data.employerId == request.auth.uid;
      allow delete: if request.auth != null && resource.data.employerId == request.auth.uid;
    }
    match /applications/{id} {
      // читать: работодатель (владелец вакансии) или соискатель (владелец отклика)
      allow read: if request.auth != null && (request.auth.uid == resource.data.workerId || request.auth.uid == resource.data.employerId);
      // создавать: только соискатель (сам за себя)
      allow create: if request.auth != null && request.resource.data.workerId == request.auth.uid;
      // обновлять статус: работодатель или соискатель (напр. отозвать)
      allow update: if request.auth != null && (request.auth.uid == resource.data.workerId || request.auth.uid == resource.data.employerId);
    }
  }
}
service firebase.storage {
  match /b/{bucket}/o {
    match /cvs/{uid}/{allPaths=**} {
      allow write: if request.auth != null && request.auth.uid == uid; // загрузка своего резюме
      allow read: if request.auth != null && (request.auth.uid == uid || request.auth.token.admin == true); // читать своё или админ
    }
  }
}

Я — работодатель

Вход через Google открывает кабинет работодателя: создание и редактирование вакансий, просмотр откликов, управление статусами, экспорт jobs.json для витрины.

Я — соискатель

Вход через Google открывает кабинет соискателя: профиль, резюме, быстрые отклики на вакансии и история откликов.

Панель работодателя — управление вакансиями и откликами

Новая вакансия

Заполните форму, чтобы опубликовать вакансию. Рекомендуется указывать город, условия, формат договора и разрешения (A1/LIMOSA и т. п.).

Мои вакансии

Здесь вы меняете статус, переименовываете вакансию, удаляете её или копируете ссылку для отправки кандидатам.

Отклики на мои вакансии

Все отклики кандидатов в одном месте: сообщение, резюме и статус sent review accepted rejected.

Экспорт вакансий

Открытые вакансии можно выгрузить в jobs.json для публичной витрины или интеграций.

Загрузите скачанный jobs.json в корень сайта → витрина marketplace.html автоматически подхватит его как источник.

Уведомления о новых откликах

Тестовые уведомления (Telegram / EmailJS) сохраняются локально. Для продакшена корректнее вынести отправку в Cloud Functions и не хранить ключи на клиенте.

Панель соискателя — профиль, резюме и отклики

Мой профиль

Заполните профиль: телефон, география, навыки, языки и короткое описание опыта. Это повышает качество отклика и ускоряет рассмотрение.

Файл хранится в Storage и доступ ограничен правилами.

Мои отклики

История откликов показывает, куда вы откликались и какой статус у каждого отклика. Это помогает вести поиск работы системно.

Открытые вакансии

Используйте фильтры по стране и специальности, чтобы быстро найти подходящее предложение и откликнуться.

FAQ — вход через Google, вакансии, отклики и резюме

FAQ подбирается “анти-шаблонным” модулем: разные формулировки и разная логика подачи, чтобы страница не выглядела как копия шаблона.

OK