Автоматизированный инструмент для сбора объявлений о вакансиях в файл .csv
.
JobFunnel требует Python 3.11 или более поздней версии.
pip install git+https://github.com/PaulMcInnis/JobFunnel.git
Регулярно собирая и проверяя данные, вы сможете избавиться от шума даже самых оживленных рынков труда.
Вы можете искать вакансии с помощью файлов конфигурации YAML или передавая аргументы команды.
Загрузите демонстрационный файл settings.yaml, выполнив следующую команду:
wget https://git.io/JUWeP -O my_settings.yaml
ПРИМЕЧАНИЕ:
Рекомендуется указывать как можно меньше ключевых слов для поиска (например, Python
, AI
).
JobFunnel в настоящее время поддерживает локали CANADA_ENGLISH
, USA_ENGLISH
, UK_ENGLISH
, FRANCE_FRENCH
и GERMANY_GERMAN
.
Запустите funnel
с вашими настройками YAML, чтобы заполнить основной файл CSV заданиями от доступных поставщиков:
funnel load -s my_settings.yaml
Откройте основной файл CSV и обновите status
каждого задания:
Установите статус interested
, applied
, interview
или offer
чтобы отразить ваш прогресс на работе.
Установите значение archive
, rejected
или delete
чтобы удалить вакансию из этого поиска. Вы можете просмотреть «заблокированные» задания в block_list_file
.
Автоматизация поиска
JobFunnel можно легко автоматизировать для запуска ночью с помощью crontab.
Для получения дополнительной информации см. документ crontab.
Написание собственных скраперов
Если у вас есть веб-сайт вакансий, для которого вы хотели бы написать парсер, вы можете его реализовать. Подробности реализации см. в базовом парсере.
Удаленная работа
Избавьтесь от неприятных ощущений пользователя при поиске удаленной работы, установив параметр remoteness
поиска в соответствии с желаемым уровнем, т. е. FULLY_REMOTE
.
Добавление поддержки языка X/сайта вакансий
JobFunnel поддерживает сбор вакансий с одного и того же веб-сайта вакансий в разных регионах и доменах. Если вы заинтересованы в добавлении поддержки, вам может потребоваться только определить заголовки сеансов и строки домена. Дополнительные сведения о реализации см. в базовом парсере.
Блокирующие компании
Отфильтруйте нежелательные компании, добавив их в свой company_block_list
в YAML, или передайте их в командной строке как -cbl
.
Фильтр по возрасту вакансии
Вы можете настроить максимальный возраст очищенных объявлений (в днях), настроив max_listing_days
.
Просмотр вакансий в терминале
Вы можете просмотреть список заданий в командной строке:
column -s, -t < master_list.csv | less -#2 -N -S
Уважительная задержка
Уважительно очищайте свои объявления о вакансиях с помощью наших встроенных алгоритмов задержки.
Чтобы лучше понять, как настроить задержку, ознакомьтесь с блокнотом Jupyter, в котором шаг за шагом разбивается алгоритм с помощью кода и визуализаций.
Восстановление потерянных данных
JobFunnel может восстановить ваш основной CSV-файл из cache_folder
, где находятся все исторические данные очистки:
funnel --recover
Запуск через CLI
Вы можете запустить JobFunnel только с помощью CLI, просмотрите структуру команд с помощью:
funnel inline -h
JobFunnel не решает CAPTCHA. Если во время очистки вы получаете сообщение об ошибке Unable to extract jobs from initial search result page:
. Затем откройте этот URL-адрес в своем браузере и решите CAPTCHA вручную.
Для участников и разработчиков, которые хотят работать над JobFunnel, этот раздел поможет вам настроить среду разработки и инструменты, которые мы используем для поддержания качества и согласованности кода.
Для начала установите JobFunnel в режиме разработчика . При этом будут установлены все необходимые зависимости, включая инструменты разработки, такие как утилиты тестирования, проверки и форматирования.
Чтобы установить JobFunnel в режиме разработчика, используйте следующую команду:
pip install -e ' .[dev] '
Эта команда не только устанавливает пакет в редактируемом состоянии, но также устанавливает перехватчики предварительной фиксации для автоматической проверки качества кода.
Следующие перехватчики предварительной фиксации настроены на автоматический запуск при фиксации изменений, чтобы гарантировать, что код соответствует единообразным рекомендациям по стилю и качеству:
Black
: автоматически форматирует код Python для обеспечения единообразия.isort
: сортирует и организует импорт в соответствии со стилем Black.Prettier
: форматирует файлы, отличные от Python, такие как YAML и JSON.Flake8
: проверяет код Python на наличие нарушений руководства по стилю. Хотя пакет предварительной фиксации устанавливается при запуске pip install -e '.[dev]'
, вам все равно необходимо инициализировать перехватчики, выполнив один раз следующую команду:
pre-commit install
Перехватчики предварительной фиксации запускаются автоматически, когда вы пытаетесь совершить фиксацию. Если будут обнаружены какие-либо проблемы с форматированием, хуки исправят их (для Black и isort) или предупредят о нарушениях стиля (для Flake8). Это гарантирует, что весь принятый код соответствует стандартам качества проекта.
Вы также можете вручную запустить перехватчики предварительной фиксации в любое время с помощью:
pre-commit run --all-files
Это полезно для проверки всей базы кода перед фиксацией или в рамках более масштабной проверки кода. Пожалуйста, исправьте все нарушения руководства по стилю (или укажите причину игнорирования) перед отправкой в репозиторий.
Мы используем pytest
для запуска тестов и проверяем, что код ведет себя должным образом. Покрытие кода автоматически генерируется при каждом запуске тестов.
Чтобы запустить все тесты, используйте следующую команду:
pytest
При этом будет выполнен набор тестов и автоматически сгенерирован отчет о покрытии кода.
Если вы хотите просмотреть подробный отчет о покрытии кода, вы можете запустить:
pytest --cov-report=term-missing
Это покажет, какие строки кода были пропущены в тестовом покрытии, непосредственно в выводе вашего терминала.