Referencia de la línea de comandos
Sweepy se instala como un solo comando, sweepy. Escríbelo y pulsa Enter. Añade una bandera cuando el comando necesite más que los valores predeterminados. Cada perfil, barrido e informe empieza aquí.
sweepy
Alex usa dos de estos comandos cada mañana. Primero, --run ejecuta un barrido con el último perfil guardado. Después, --logs informa de lo ocurrido cuando una ejecución no da los resultados esperados.
Ejecuta cada comando desde dentro de tu carpeta sweepy. Si cerraste el terminal desde el paso anterior, vuelve a abrirlo y ejecuta cd sweepy antes de continuar.
Referencia de comandos
Ejecuta sweepy sin banderas para abrir la pantalla de inicio de búsqueda del asistente. Las tablas siguientes agrupan cada bandera según la tarea que realiza.
Ejecuta pip install -e . una vez en la carpeta sweepy. Las páginas siguientes usan la forma corta porque ese comando la registra. Si tu shell no encuentra sweepy, vuelve a abrir el terminal o ejecuta python swee.py en su lugar.
Barridos y perfiles
| Bandera | Qué hace |
|---|---|
--run | Ejecuta un barrido con tu último perfil guardado. |
--profile <path> | Ejecuta un barrido desde un perfil YAML. |
--setup | Abre la pantalla de inicio de búsqueda para buscar y configurar perfiles. |
--non-interactive | Crea o actualiza un perfil mediante banderas en lugar de preguntas. Combínala con --setup. |
Anulaciones de una sola ejecución
| Bandera | Qué hace |
|---|---|
--no-dedupe | Conserva las ofertas duplicadas de distintas plataformas en un mismo barrido. |
--include-seen | Informa también de las ofertas de un barrido anterior. |
--reset-history | Olvida las ofertas ya informadas para el perfil. |
Documentos
| Bandera | Qué hace |
|---|---|
--docx <path> | Convierte un archivo DOCX a PDF y finaliza. |
--convert <path> | Convierte un documento compatible a PDF junto al archivo de origen y finaliza. |
Motores de búsqueda de empleo
| Bandera | Qué hace |
|---|---|
--list-engines | Enumera cada motor, las plataformas que lee y su estado de instalación. |
--install-engines [names] | Descarga todos los motores opcionales o solo los que indiques. |
--allow-engine-conflicts | Instala un motor cuya versión fijada entra en conflicto con otra instalada, omitiendo esa fijación. Combínala con --install-engines. |
Actualizaciones y versión
| Bandera | Qué hace |
|---|---|
--update | Descarga el código más reciente de Sweepy y reinstala las dependencias. |
--check-update | Informa de si existe una versión más reciente de Sweepy. |
--version | Muestra la versión del motor y sus dependencias. |
Registro
| Bandera | Qué hace |
|---|---|
--debug | Activa el registro de depuración en logs/. |
--log-dir <dir> | Cambia la carpeta de los registros de depuración. |
--logs | Muestra las entradas más recientes del registro de depuración. |
Valores para la configuración sin interfaz
Estas banderas completan un perfil cuando añades --setup. Cada valor necesita su bandera correspondiente, y --name, --titles, --location y --resume siguen siendo obligatorias a menos que el perfil ya las incluya.
| Bandera | Qué hace |
|---|---|
--sources <names> | Activa estos motores, separados por comas. |
--jobspy-sites <sites> | Define las plataformas de JobSpy, separadas por comas. |
--hirehunt-sources <sources> | Define las fuentes de HireHunt, separadas por comas. |
--jobdrop-sites <sites> | Define las plataformas de JobDrop, separadas por comas. |
--openroles-companies <slugs> | Define los slugs de empresa de OpenRoles, separados por comas. |
--apify-actor <actor> | Define el ID del actor de Apify. |
--timeout <seconds> | Define el tiempo de espera por fuente. |
--cache-ttl <seconds> | Define la vigencia de la caché de descubrimiento. |
--no-cache | Desactiva la caché de descubrimiento. |
--history-days <days> | Define los días que deben pasar antes de que una oferta informada pueda reaparecer. |
--no-history | Informa de todas las ofertas en cada ejecución. |
--job-tracking / --no-job-tracking | Activa o desactiva las columnas de seguimiento de candidaturas del CSV. |
--name <name> | Define el nombre del perfil. |
--titles <titles> | Define los puestos objetivo, separados por comas. |
--location <location> | Define la ubicación objetivo. |
--resume <path> | Define la ruta del currículum. |
Sweepy atiende primero --logs, --version, --update, --check-update, --list-engines e --install-engines, y después convierte los documentos. A continuación procesa --setup y, por último, ejecuta el barrido. Ejecuta una sola tarea por comando.
Ejecutar tu último perfil con --run
Guarda un perfil una vez y ejecuta barridos con un comando corto. Sweepy guarda el último perfil que guardaste en profiles/.last_profile y lo reutiliza.
sweepy --run
El comando resuelve un perfil en este orden:
- La ruta indicada en
profiles/.last_profile. - El perfil más reciente de
profiles/. profiles/custom_profile.yaml, despuésprofiles/paralegal_nyc.yamly, por último,config.sample.yaml.
Si no existe ninguno de ellos, Sweepy muestra un error y te remite a --setup.
Crear un perfil con --setup
El asistente abre la pantalla de inicio de búsqueda y escribe un perfil YAML por ti.
sweepy --setup
| Mosaico de inicio | Qué hace |
|---|---|
| Launch Sweep | Ejecuta un barrido con el perfil que tienes abierto. La línea de estado te avisa hasta que abres un perfil. |
| Load Profile | Te permite elegir un perfil guardado para el siguiente barrido. |
| Sweepy's Toolbox | Abre las entradas de la caja de herramientas que se describen más abajo. |
| Build Profile | Formula preguntas en lenguaje sencillo y guarda un perfil nuevo. |
| Sweep Settings | Cambia el peso de las palabras clave, los límites de fichas, el estilo del informe, el comportamiento del historial y las columnas de seguimiento del CSV. |
| Exit Sweepy | Guarda tus cambios y vuelve al shell. |
Sweepy's Toolbox contiene el resto de acciones:
| Entrada de la caja de herramientas | Qué hace |
|---|---|
| Edit an existing profile | Carga un perfil de profiles/ y te permite modificarlo, incluido un interruptor para las columnas de seguimiento de candidaturas. |
| Manage job engines | Activa o desactiva motores y edita sus ajustes. |
| Download job engines | Instala motores opcionales después de que lo confirmes. |
| Add or edit aggregators | Activa o desactiva canales y gestiona agregadores personalizados. |
| Toggle debug logging | Cambia el valor debug del perfil. |
| Show help | Muestra las instrucciones del asistente. |
| Show recent logs | Muestra las entradas más recientes del registro de depuración. |
| Convert a document to PDF (bonus) | Convierte un archivo DOCX, DOC, TXT, MD o PDF y vuelve a la caja de herramientas. |
| Update Sweepy | Descarga el código más reciente y reinstala las dependencias. |
| Exit | Cierra el asistente desde la caja de herramientas. |
Vuelve a ejecutar el asistente cuando quieras crear otro perfil o editar uno existente. Nunca borra tus perfiles anteriores. La página Configurar Sweepy recorre todas las preguntas.
Convertir un documento a PDF (extra)
Sweepy's Toolbox convierte un documento incluso sin un perfil. Elige Convert a document to PDF (bonus) y luego indica una ruta a Sweepy.
| Entrada | Qué hace Sweepy |
|---|---|
.docx | Reconstruye texto limpio con python-docx y reportlab y, si falla, recurre a Microsoft Word. |
.doc | Renderiza mediante Microsoft Word, que necesita el paquete docx2pdf. |
.txt, .md | Renderiza el texto con encabezados y viñetas. |
.pdf | Deja pasar el archivo o lo copia a la ruta de salida que indiques. |
Sweepy muestra una advertencia si la ruta no es válida y vuelve a abrir la pregunta. Un error tipográfico te devuelve al asistente.
Ir directamente a un perfil
Añade --profile para abrir un perfil y editarlo sin pasar por la pantalla de inicio:
sweepy --setup --profile profiles/paralegal_nyc.yaml
El asistente rellena la pantalla de revisión con los valores actuales de ese archivo.
Crear un perfil sin preguntas
Automatiza un perfil cuando necesites la misma configuración en todas las máquinas. Añade --setup --non-interactive y pasa cada valor como una bandera:
sweepy --setup --non-interactive `
--name "Alex Rivera" `
--titles "Technical Writer,UX Writer" `
--location "New York, NY" `
--resume C:\Users\Alex\sweepy\resume.pdf `
--sources jobspy,openroles `
--openroles-companies figma,stripe,notion `
--timeout 120 --no-cache
Sweepy comprueba cada motor activo antes de escribir el archivo. Un valor ausente, como los slugs de empresa de OpenRoles, muestra Error: y finaliza con el código 1. Sin --profile, Sweepy construye el nombre del archivo a partir de tu nombre y tu primer puesto, así que el perfil de Alex se guarda en profiles/alex_rivera_technical_writer.yaml. Añade --profile <path> para actualizar un archivo existente.
Actualizaciones de Sweepy
Descarga el código más reciente y reinstala las dependencias con:
sweepy --update
Sweepy obtiene el remoto origin, avanza la rama actual y ejecuta python -m pip install -r requirements.txt. Se niega a ejecutarse cuando hay cambios sin confirmar en archivos rastreados, así que nunca descarta tus ediciones locales. Para comprobar antes si existe una actualización, usa el comando de solo lectura:
sweepy --check-update
Update Sweepy en Sweepy's Toolbox ejecuta la misma actualización.
Gestionar motores de búsqueda de empleo
Enumera cada motor, las plataformas que lee y su estado de instalación:
sweepy --list-engines
Descarga los motores opcionales:
sweepy --install-engines all
El conjunto all omite JobDrop mientras JobSpy mantiene su fijación en conflicto. Instala JobDrop por separado con --allow-engine-conflicts:
sweepy --install-engines jobdrop --allow-engine-conflicts
Instalar un motor lo deja desactivado. Añádelo a sources.enabled en un perfil o pasa --sources durante una configuración sin interfaz. El comando finaliza con el código 1 cuando falla una instalación. Motores opcionales describe cada motor.
Ejecutar un barrido con --profile
Mantén un perfil por ciudad o tipo de puesto y apunta --profile al que quieras usar. Sweepy hace el resto.
sweepy --profile profiles/paralegal_nyc.yaml
Sustituye el nombre por el de tu propio archivo. Prefiere --run cuando quieras que Sweepy reutilice el último perfil que guardaste.
Guarda un perfil por ciudad o tipo de puesto. Cambia un nombre de archivo para alternar entre búsquedas.
Anular una ejecución
--run y --profile aceptan tres anulaciones. Cada una se aplica a ese comando y deja el perfil intacto.
sweepy --run --no-dedupe
sweepy --run --include-seen
sweepy --run --reset-history
--no-dedupe conserva la oferta de cada plataforma cuando dos plataformas publican el mismo puesto. Un barrido informa solo de ofertas nuevas, y history.retention_days en el perfil define la ventana en cuatro días por defecto. --include-seen informa también de las ofertas ocultas. Ejecuta --reset-history por sí sola para borrar ese historial y salir sin ejecutar un barrido.
Qué ocurre durante un barrido
Cada ejecución sigue las mismas cinco etapas, en el mismo orden.
| Etapa | Qué ocurre |
|---|---|
| 1. Carga del perfil | Lee tu archivo YAML y comprueba los ajustes. |
| 2. Descubrimiento | Ejecuta los extractores en tus plataformas activas y recopila ofertas. |
| 3. Validación | Elimina enlaces muertos y detecta redirecciones 404 encubiertas. Las ofertas que la comprobación no puede verificar siguen en la ejecución. |
| 4. Puntuación | Analiza tu currículum en PDF o DOCX para medir el solapamiento de términos y luego escribe un consejo de candidatura para cada puesto. |
| 5. Generación | Crea los archivos PDF, CSV y JSON con la fecha en el nombre. Añade png a tus formatos de exportación para obtener imágenes de las páginas. |
El terminal imprime cada etapa como [1/5] hasta [5/5] mientras trabaja. Ejecutar tu primer barrido muestra la salida completa.
Convertir un DOCX a PDF con --docx
Pasa un archivo de Word a --docx. Sweepy lo convierte, guarda el PDF y finaliza.
sweepy --docx path/to/resume.docx
Después, Sweepy pregunta dónde guardar el PDF.
Where should the PDF go? (leave blank to save next to the DOCX):
Pulsa Enter con la respuesta vacía y el PDF se guarda junto al DOCX con el mismo nombre base. Si escribes una ruta completa, se guarda en otro lugar. En ambos casos, Sweepy muestra PDF saved: y la ubicación final.
Sweepy reconstruye primero el PDF a partir del texto del DOCX. Cuando tu equipo tiene Microsoft Word, Sweepy recurre a docx2pdf para obtener un resultado visual más fiel.
Convertir cualquier documento con --convert
--convert funciona sin preguntas y escribe el PDF junto al archivo original. Puedes apuntarlo a un archivo .docx, .doc, .txt, .md o .pdf.
sweepy --convert path/to/resume.docx
PDF saved: C:\Users\Alex\sweepy\resume.pdf
La salida conserva el nombre de origen y cambia la extensión, así que notes.md se convierte en notes.pdf en la misma carpeta. Un archivo .pdf ya está en su sitio, así que Sweepy muestra This file is already a PDF: y no toca el archivo.
| Entrada | Qué hace Sweepy |
|---|---|
.docx | Reconstruye texto limpio con python-docx y reportlab y, si falla, recurre a Microsoft Word. |
.doc | Renderiza mediante Microsoft Word, que necesita el paquete docx2pdf. |
.txt, .md | Renderiza el texto con encabezados y viñetas. |
.pdf | Deja el archivo intacto e informa de su ruta. |
Si el archivo falta o no es compatible, el comando muestra Error: y finaliza con el código 1. Eso lo hace seguro dentro de scripts y tareas programadas.
Cuando el PDF exista, apunta resume.path de tu perfil hacia él y ejecuta un barrido.
Comprobar tu versión con --version
Usa este comando para confirmar que el motor y sus bibliotecas se instalaron correctamente.
sweepy --version
Sweepy v3.0.0
Python 3.13.1 | pymupdf 1.28.2 | reportlab 5.0.1
Ready to sweep.
Si pymupdf o reportlab muestran MISSING, reinstala tus dependencias. Instalación explica ese paso.
Activar el registro de depuración
Los registros de depuración recogen lo que hace el motor, paso a paso. Actívalos con una bandera, un ajuste del perfil o una variable de entorno.
| Método | Dónde lo configuras | Cuánto dura |
|---|---|---|
Bandera --debug | Añádela a tu comando de terminal. | Solo dura esa ejecución. |
debug: true | Añádelo a tu perfil YAML. | Todas las ejecuciones hasta que lo quites. |
SWEEPY_DEBUG=1 | Configúrala como variable de entorno. | Todas las ejecuciones hasta que cierres el terminal. |
Añade la bandera a cualquier barrido:
sweepy --debug --profile profiles/paralegal_nyc.yaml
O activa el registro de forma permanente en tu perfil:
# Write a rotating debug log under logs/ on every run.
debug: true
O configura la variable de entorno:
$env:SWEEPY_DEBUG = "1"
sweepy --profile profiles/paralegal_nyc.yaml
En macOS o Linux, cambia la primera línea por export SWEEPY_DEBUG=1.
Sweepy escribe los registros en logs/ dentro de la carpeta de la aplicación. Envíalos a otra ubicación con --log-dir:
sweepy --debug --log-dir C:\Users\Alex\sweepy-logs --profile profiles/paralegal_nyc.yaml
Para leer las entradas más recientes sin abrir un archivo, ejecuta:
sweepy --logs
El comando --logs muestra No debug logs found. Run Sweepy with --debug to enable logging. hasta que exista un registro de depuración.
Programar ejecuciones diarias
Los equipos de contratación publican puestos nuevos toda la semana. Ejecuta el mismo comando cada mañana y detectarás esas ofertas antes.
sweepy --profile profiles/paralegal_nyc.yaml
Una ejecución con ofertas nuevas escribe archivos de informe. Sweepy incluye el perfil, la fecha y la hora en cada nombre de archivo, como en paralegal_nyc_2026-10-08-081500.pdf y paralegal_nyc_2026-10-08-081500.csv. Sweepy lee la hora en Tiempo Universal Coordinado, así que la marca puede diferir de tu reloj local. La marca evita que una ejecución sobrescriba otra, así que results guarda un historial completo de tu búsqueda.
Los barridos informan solo de ofertas nuevas, y Sweepy recuerda cada oferta que informa durante cuatro días por defecto. Cuando una mañana no aparece nada nuevo, la ejecución muestra No new postings since your last sweep y no escribe archivos de informe. Lo mismo ocurre cuando todos los enlaces descubiertos han caducado.
Programar en Windows
- Abre el Programador de tareas desde el menú Inicio.
- Elige Crear tarea básica y ponle un nombre como
Sweepy morning sweep. - Selecciona Diariamente y elige una hora de inicio, por ejemplo las 8:00.
- Para la acción, elige Iniciar un programa.
- Define Programa o script con la ruta de tu ejecutable de Python. Ejecuta
(Get-Command python).Sourceen PowerShell para mostrar esa ruta. - Define Agregar argumentos con la ruta completa de
swee.pyy el perfil:"C:\Users\Alex\sweepy\swee.py" --profile profiles\paralegal_nyc.yaml. - Define Iniciar en con tu carpeta
sweepy. El motor encuentraprofilesy escriberesultsdesde esa carpeta.
Programar en macOS y Linux
- Abre tu crontab con
crontab -e. - Añade una línea que ejecute el barrido a las 8:00 todos los días, en la zona horaria de la máquina.
0 8 * * * cd /path/to/sweepy && python3 swee.py --profile profiles/paralegal_nyc.yaml
La parte cd importa. El motor lee profiles y escribe results en relación con la carpeta desde la que lo ejecutas. Usa el python3 que instaló los paquetes de Sweepy. Compruébalo con python3 -c "import swee".
Una ejecución programada se inicia sin ventana de terminal, así que los ajustes del shell de sesiones anteriores no se aplican. Ejecuta el comando manualmente una vez. Confirma que funciona antes de programarlo.