Herramienta automatizada para extraer ofertas de trabajo en un archivo .csv
.
JobFunnel requiere Python 3.11 o posterior.
pip install git+https://github.com/PaulMcInnis/JobFunnel.git
Al realizar búsquedas y revisiones periódicas, puede eliminar el ruido incluso de los mercados laborales más concurridos.
Puede buscar trabajos con archivos de configuración YAML o pasando argumentos de comando.
Descargue la configuración de demostración.yaml ejecutando el siguiente comando:
wget https://git.io/JUWeP -O my_settings.yaml
NOTA:
Se recomienda proporcionar la menor cantidad posible de palabras clave de búsqueda (es decir, Python
, AI
).
JobFunnel actualmente admite las configuraciones regionales CANADA_ENGLISH
, USA_ENGLISH
, UK_ENGLISH
, FRANCE_FRENCH
y GERMANY_GERMAN
.
Ejecute funnel
con su configuración YAML para completar su archivo CSV maestro con trabajos de los proveedores disponibles:
funnel load -s my_settings.yaml
Abra el archivo CSV maestro y actualice el status
de cada trabajo:
Establezca interested
, applied
, interview
u offer
para reflejar su progresión en el trabajo.
Configúrelo para archive
, rejected
o delete
para eliminar un trabajo de esta búsqueda. Puede revisar los trabajos 'bloqueados' dentro de su block_list_file
.
Automatizar búsquedas
JobFunnel se puede automatizar fácilmente para ejecutarse todas las noches con crontab
Para obtener más información, consulte el documento crontab.
Escribiendo tus propios raspadores
Si tiene un sitio web de trabajo para el que le gustaría escribir un scraper, puede implementarlo. Revise Base Scraper para obtener detalles de implementación.
Trabajo remoto
Evite una experiencia de usuario frustrante al buscar trabajo remoto configurando el parámetro de búsqueda remoteness
para que coincida con el nivel deseado, es decir, FULLY_REMOTE
.
Agregar soporte para el sitio web de empleo/lenguaje X
JobFunnel admite la extracción de trabajos del mismo sitio web de empleo en todas las regiones y dominios. Si está interesado en agregar soporte, es posible que solo necesite definir encabezados de sesión y cadenas de dominio. Revise Base Scraper para obtener más detalles de implementación.
Empresas bloqueadoras
Filtre las empresas no deseadas agregándolas a su company_block_list
en su YAML o páselas por línea de comando como -cbl
.
Filtro de edad laboral
Puede configurar la antigüedad máxima de los listados eliminados (en días) configurando max_listing_days
.
Revisión de trabajos en la terminal
Puede revisar la lista de trabajos en la línea de comando:
column -s, -t < master_list.csv | less -#2 -N -S
Retraso respetuoso
Elimine respetuosamente sus publicaciones de trabajo con nuestros algoritmos de demora integrados.
Para comprender mejor cómo configurar el retraso, consulte este Jupyter Notebook que desglosa el algoritmo paso a paso con código y visualizaciones.
Recuperar datos perdidos
JobFunnel puede reconstruir su CSV maestro desde su cache_folder
donde se encuentran todos los datos históricos de scrape:
funnel --recover
Ejecutando por CLI
Puede ejecutar JobFunnel usando CLI únicamente, revise la estructura del comando a través de:
funnel inline -h
JobFunnel no resuelve CAPTCHA. Si, mientras realiza el scraping, recibe el mensaje Unable to extract jobs from initial search result page:
. Luego abre esa URL en tu navegador y resuelve el CAPTCHA manualmente.
Para los contribuyentes y desarrolladores que quieran trabajar en JobFunnel, esta sección los guiará a través de la configuración del entorno de desarrollo y las herramientas que utilizamos para mantener la calidad y coherencia del código.
Para comenzar, instale JobFunnel en modo desarrollador . Esto instalará todas las dependencias necesarias, incluidas herramientas de desarrollo como utilidades de prueba, linting y formateo.
Para instalar JobFunnel en modo desarrollador, use el siguiente comando:
pip install -e ' .[dev] '
Este comando no solo instala el paquete en un estado editable sino que también configura enlaces de confirmación previa para verificaciones automáticas de calidad del código.
Los siguientes enlaces de confirmación previa están configurados para ejecutarse automáticamente cuando confirma cambios para garantizar que el código siga pautas de estilo y calidad consistentes:
Black
: formatea automáticamente el código Python para garantizar la coherencia.isort
: Ordena y organiza las importaciones según el estilo Black.Prettier
: formatea archivos que no son Python, como YAML y JSON.Flake8
: comprueba el código Python en busca de violaciones de la guía de estilo. Si bien el paquete de confirmación previa se instala cuando ejecuta pip install -e '.[dev]'
, aún necesita inicializar los enlaces ejecutando el siguiente comando una vez:
pre-commit install
Los enlaces de confirmación previa se ejecutarán automáticamente cuando intente realizar una confirmación. Si se encuentran problemas de formato, los enlaces los solucionarán (para Black e isort) o le advertirán sobre violaciones de estilo (para Flake8). Esto garantiza que todo el código comprometido cumpla con los estándares de calidad del proyecto.
También puedes ejecutar manualmente los ganchos de confirmación previa en cualquier momento con:
pre-commit run --all-files
Esto es útil para verificar todo el código base antes de confirmarlo o como parte de una revisión de código más amplia. Corrija todas las infracciones de la guía de estilo (o proporcione una razón para ignorarlas) antes de enviarlas al repositorio.
Usamos pytest
para ejecutar pruebas y asegurarnos de que el código se comporte como se esperaba. La cobertura del código se genera automáticamente cada vez que ejecuta las pruebas.
Para ejecutar todas las pruebas, utilice el siguiente comando:
pytest
Esto ejecutará el conjunto de pruebas y generará automáticamente un informe de cobertura de código.
Si desea ver un informe detallado de cobertura de código, puede ejecutar:
pytest --cov-report=term-missing
Esto mostrará qué líneas de código se omitieron en la cobertura de la prueba directamente en la salida de su terminal.