कमांड-लाइन संदर्भ
Sweepy एक ही कमांड के रूप में इंस्टॉल होता है, sweepy। इसे टाइप करें और Enter दबाएँ। जब कमांड को डिफ़ॉल्ट से ज़्यादा चाहिए, तब फ़्लैग जोड़ें। हर प्रोफ़ाइल, स्वीप और रिपोर्ट यहीं से शुरू होती है।
sweepy
Alex हर सुबह इनमें से दो कमांड इस्तेमाल करता है। पहले --run अंतिम सहेजी प्रोफ़ाइल के साथ स्वीप करता है। फिर --logs बताता है कि जब कोई रन गड़बड़ लगे तब क्या हुआ।
हर कमांड अपने sweepy फ़ोल्डर के अंदर से चलाएँ। अगर आपने पिछले चरण के बाद टर्मिनल बंद कर दिया, तो उसे दोबारा खोलें और पहले cd sweepy चलाएँ।
कमांड संदर्भ
विज़ार्ड का सर्च लॉन्चपैड खोलने के लिए sweepy बिना किसी फ़्लैग के चलाएँ। नीचे की तालिकाएँ हर फ़्लैग को उसके काम के अनुसार समूहित करती हैं।
sweepy फ़ोल्डर में एक बार pip install -e . चलाएँ। नीचे के पेज छोटा रूप लिखते हैं क्योंकि वही कमांड उसे दर्ज करता है। अगर आपका शेल sweepy नहीं ढूँढ पाता, तो टर्मिनल दोबारा खोलें या इसकी जगह python swee.py चलाएँ।
स्वीप और प्रोफ़ाइल
| फ़्लैग | यह क्या करता है |
|---|---|
--run | आपकी अंतिम सहेजी प्रोफ़ाइल के साथ स्वीप चलाता है। |
--profile <path> | YAML प्रोफ़ाइल से स्वीप चलाता है। |
--setup | सर्च और प्रोफ़ाइल सेटअप के लिए सर्च लॉन्चपैड खोलता है। |
--non-interactive | प्रश्नों के बजाय फ़्लैग से प्रोफ़ाइल बनाता या अपडेट करता है। इसे --setup के साथ जोड़ें। |
एक-रन ओवरराइड
| फ़्लैग | यह क्या करता है |
|---|---|
--no-dedupe | एक स्वीप के लिए अलग-अलग बोर्ड की डुप्लिकेट पोस्टिंग रखता है। |
--include-seen | पिछले स्वीप की पोस्टिंग भी रिपोर्ट करता है। |
--reset-history | प्रोफ़ाइल के लिए पहले रिपोर्ट की गई पोस्टिंग भुला देता है। |
दस्तावेज़
| फ़्लैग | यह क्या करता है |
|---|---|
--docx <path> | DOCX फ़ाइल को PDF में बदलता है, फिर बंद हो जाता है। |
--convert <path> | समर्थित दस्तावेज़ को स्रोत फ़ाइल के बगल में PDF में बदलता है, फिर बंद हो जाता है। |
जॉब सर्च इंजन
| फ़्लैग | यह क्या करता है |
|---|---|
--list-engines | हर इंजन, उसके पढ़े बोर्ड और उसकी इंस्टॉल स्थिति सूचीबद्ध करता है। |
--install-engines [names] | हर वैकल्पिक इंजन डाउनलोड करता है, या केवल वे इंजन जिनके नाम आप देते हैं। |
--allow-engine-conflicts | ऐसा इंजन इंस्टॉल करता है जिसकी पिन इंस्टॉल किसी इंजन से टकराती है, उस पिन को छोड़कर। इसे --install-engines के साथ जोड़ें। |
अपडेट और संस्करण
| फ़्लैग | यह क्या करता है |
|---|---|
--update | नवीनतम Sweepy कोड खींचता है और डिपेंडेंसी दोबारा इंस्टॉल करता है। |
--check-update | बताता है कि Sweepy का नया संस्करण मौजूद है या नहीं। |
--version | इंजन का संस्करण और उसकी डिपेंडेंसी दिखाता है। |
लॉगिंग
| फ़्लैग | यह क्या करता है |
|---|---|
--debug | logs/ के अंतर्गत डीबग लॉगिंग चालू करता है। |
--log-dir <dir> | डीबग लॉग फ़ोल्डर बदल देता है। |
--logs | हाल की डीबग लॉग प्रविष्टियाँ छापता है। |
हेडलेस सेटअप मान
जब आप --setup जोड़ते हैं, तब ये फ़्लैग प्रोफ़ाइल भरते हैं। हर मान को उसका मिलता फ़्लैग चाहिए, और जब तक प्रोफ़ाइल उन्हें न दे, --name, --titles, --location और --resume अनिवार्य रहते हैं।
| फ़्लैग | यह क्या करता है |
|---|---|
--sources <names> | इन इंजनों को चालू करता है, कॉमा से अलग। |
--jobspy-sites <sites> | JobSpy बोर्ड तय करता है, कॉमा से अलग। |
--hirehunt-sources <sources> | HireHunt स्रोत तय करता है, कॉमा से अलग। |
--jobdrop-sites <sites> | JobDrop बोर्ड तय करता है, कॉमा से अलग। |
--openroles-companies <slugs> | OpenRoles कंपनी slug तय करता है, कॉमा से अलग। |
--apify-actor <actor> | Apify actor ID तय करता है। |
--timeout <seconds> | प्रति-स्रोत टाइमआउट तय करता है। |
--cache-ttl <seconds> | डिस्कवरी कैश की आयु तय करता है। |
--no-cache | डिस्कवरी कैश बंद करता है। |
--history-days <days> | रिपोर्ट की गई पोस्टिंग दोबारा आने से पहले के दिन तय करता है। |
--no-history | हर रन में हर पोस्टिंग रिपोर्ट करता है। |
--job-tracking / --no-job-tracking | CSV जॉब-ट्रैकिंग कॉलम चालू या बंद करता है। |
--name <name> | प्रोफ़ाइल पर नाम तय करता है। |
--titles <titles> | लक्ष्य पद नाम तय करता है, कॉमा से अलग। |
--location <location> | लक्ष्य स्थान तय करता है। |
--resume <path> | रिज़्यूमे पथ तय करता है। |
Sweepy पहले --logs, --version, --update, --check-update, --list-engines और --install-engines संभालता है, फिर दस्तावेज़ बदलता है। उसके बाद --setup आता है, और स्वीप सबसे अंत में चलता है। प्रति कमांड एक काम चलाएँ।
--run से अपनी अंतिम प्रोफ़ाइल चलाएँ
प्रोफ़ाइल एक बार सहेजें, फिर एक छोटे कमांड से स्वीप करें। Sweepy आपकी अंतिम सहेजी प्रोफ़ाइल profiles/.last_profile में रखता है और उसे दोबारा इस्तेमाल करता है।
sweepy --run
यह कमांड इस क्रम में प्रोफ़ाइल तय करता है:
profiles/.last_profileमें दिया पथ।profiles/में सबसे नई प्रोफ़ाइल।profiles/custom_profile.yaml, फिरprofiles/paralegal_nyc.yaml, फिरconfig.sample.yaml।
जब इनमें से कोई न हो, Sweepy त्रुटि बताता है और आपको --setup की ओर भेजता है।
--setup से प्रोफ़ाइल बनाएँ
विज़ार्ड सर्च लॉन्चपैड खोलता है और आपके लिए YAML प्रोफ़ाइल लिखता है।
sweepy --setup
| लॉन्चपैड टाइल | यह क्या करता है |
|---|---|
| Launch Sweep | जिस प्रोफ़ाइल को आपने खोला, उसके साथ स्वीप चलाता है। जब तक आप प्रोफ़ाइल न खोलें, स्थिति पंक्ति चेतावनी देती रहती है। |
| Load Profile | अगले स्वीप के लिए सहेजी प्रोफ़ाइल चुनने देता है। |
| Sweepy's Toolbox | नीचे सूचीबद्ध टूलबॉक्स प्रविष्टियाँ खोलता है। |
| Build Profile | सरल भाषा में प्रश्न पूछता है, फिर नई प्रोफ़ाइल सहेजता है। |
| Sweep Settings | कीवर्ड भार, कार्ड सीमा, रिपोर्ट शैली, इतिहास व्यवहार और CSV के जॉब-ट्रैकिंग कॉलम बदलता है। |
| Exit Sweepy | आपके बदलाव सहेजता है और शेल पर लौटता है। |
Sweepy's Toolbox में बाकी क्रियाएँ हैं:
| टूलबॉक्स प्रविष्टि | यह क्या करता है |
|---|---|
| Edit an existing profile | profiles/ से प्रोफ़ाइल लोड करता है और उसे बदलने देता है, जॉब-ट्रैकिंग कॉलम के टॉगल सहित। |
| Manage job engines | इंजन चालू या बंद करता है और उनकी सेटिंग बदलता है। |
| Download job engines | आपकी पुष्टि के बाद वैकल्पिक इंजन इंस्टॉल करता है। |
| Add or edit aggregators | फ़ीड चालू-बंद करता है और कस्टम एग्रीगेटर संभालता है। |
| Toggle debug logging | प्रोफ़ाइल का debug मान पलट देता है। |
| Show help | विज़ार्ड के लिए मार्गदर्शन छापता है। |
| Show recent logs | नवीनतम डीबग लॉग प्रविष्टियाँ छापता है। |
| Convert a document to PDF (bonus) | DOCX, DOC, TXT, MD या PDF फ़ाइल बदलता है और टूलबॉक्स पर लौट आता है। |
| Update Sweepy | नवीनतम कोड खींचता है और डिपेंडेंसी दोबारा इंस्टॉल करता है। |
| Exit | टूलबॉक्स से विज़ार्ड बंद करता है। |
दूसरी प्रोफ़ाइल बनाने या मौजूदा को संपादित करने के लिए विज़ार्ड कभी भी दोबारा चलाएँ। यह आपकी पुरानी प्रोफ़ाइल कभी नहीं मिटाता। Sweepy सेट करना पेज हर प्रश्न पर चलता है।
दस्तावेज़ को PDF में बदलें (बोनस)
Sweepy's Toolbox बिना प्रोफ़ाइल के भी दस्तावेज़ बदलता है। Convert a document to PDF (bonus) चुनें, फिर Sweepy को पथ दें।
| इनपुट | Sweepy क्या करता है |
|---|---|
.docx | python-docx और reportlab से साफ़ टेक्स्ट बनाता है, फिर Microsoft Word पर लौट आता है। |
.doc | Microsoft Word से रेंडर करता है, जिसके लिए docx2pdf पैकेज चाहिए। |
.txt, .md | टेक्स्ट को शीर्षकों और बुलेट के साथ रेंडर करता है। |
.pdf | फ़ाइल को जैसी है वैसी भेजता है, या आपके बताए आउटपुट पथ पर कॉपी करता है। |
ग़लत पथ पर Sweepy चेतावनी छापता है और प्रॉम्प्ट दोबारा खोलता है। एक टाइपो आपको विज़ार्ड पर लौटा देता है।
सीधे किसी प्रोफ़ाइल पर जाएँ
लॉन्चपैड के बिना एक प्रोफ़ाइल संपादन के लिए खोलने हेतु --profile जोड़ें:
sweepy --setup --profile profiles/paralegal_nyc.yaml
विज़ार्ड समीक्षा स्क्रीन को उस फ़ाइल के मौजूदा मानों से भर देता है।
बिना प्रश्नों के प्रोफ़ाइल बनाएँ
जब आपको हर मशीन पर वही सेटअप चाहिए, तब प्रोफ़ाइल को स्क्रिप्ट करें। --setup --non-interactive जोड़ें और हर मान फ़्लैग के रूप में दें:
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 हर चालू इंजन जाँचता है। छूटा मान, जैसे OpenRoles कंपनी slug, Error: छापता है और कोड 1 के साथ बंद हो जाता है। --profile के बिना Sweepy फ़ाइल नाम आपके नाम और पहले पद नाम से बनाता है, इसलिए Alex की प्रोफ़ाइल profiles/alex_rivera_technical_writer.yaml में सहेजी जाती है। मौजूदा फ़ाइल अपडेट करने के लिए इसके बजाय --profile <path> जोड़ें।
Sweepy अपडेट
नवीनतम कोड खींचने और डिपेंडेंसी दोबारा इंस्टॉल करने के लिए:
sweepy --update
Sweepy origin रिमोट लाता है, मौजूदा ब्रांच को fast-forward करता है, और python -m pip install -r requirements.txt चलाता है। जब ट्रैक की गई फ़ाइलों में बिना कमिट किए बदलाव हों, तब यह चलने से मना कर देता है, इसलिए आपके स्थानीय संपादन कभी नहीं मिटते। अपडेट मौजूद है या नहीं, यह देखने के लिए केवल-पढ़ने वाली जाँच पसंद करें:
sweepy --check-update
Sweepy's Toolbox में Update Sweepy वही अपडेट चलाता है।
जॉब सर्च इंजन प्रबंधित करें
हर इंजन, उसके पढ़े बोर्ड और उसकी इंस्टॉल स्थिति सूचीबद्ध करें:
sweepy --list-engines
वैकल्पिक इंजन डाउनलोड करें:
sweepy --install-engines all
all समूह JobDrop छोड़ देता है जब तक JobSpy की टकराने वाली पिन बनी रहती है। JobDrop अलग से --allow-engine-conflicts के साथ इंस्टॉल करें:
sweepy --install-engines jobdrop --allow-engine-conflicts
इंजन इंस्टॉल करने पर वह बंद ही रहता है। उसे प्रोफ़ाइल में sources.enabled में जोड़ें या हेडलेस सेटअप के दौरान --sources दें। इंस्टॉल विफल होने पर कमांड कोड 1 के साथ बंद होता है। वैकल्पिक इंजन हर इंजन कवर करता है।
--profile से स्वीप चलाएँ
हर शहर या भूमिका प्रकार के लिए एक प्रोफ़ाइल रखें, फिर --profile को उसी पर लगाएँ जो आप चाहते हैं। बाकी Sweepy करता है।
sweepy --profile profiles/paralegal_nyc.yaml
अपना फ़ाइल नाम रखें। जब आप चाहें कि Sweepy आपकी अंतिम सहेजी प्रोफ़ाइल दोबारा इस्तेमाल करे, तो --run पसंद करें।
हर शहर या भूमिका प्रकार के लिए एक प्रोफ़ाइल रखें। सर्च के बीच बदलने के लिए एक फ़ाइल नाम बदलें।
एक रन को ओवरराइड करें
--run और --profile तीन ओवरराइड स्वीकार करते हैं। हर एक उसी कमांड पर लागू होता है और प्रोफ़ाइल को अछूता छोड़ देता है।
sweepy --run --no-dedupe
sweepy --run --include-seen
sweepy --run --reset-history
जब दो बोर्ड एक ही भूमिका पोस्ट करते हैं, तब --no-dedupe हर बोर्ड की लिस्टिंग रखता है। स्वीप केवल नई पोस्टिंग रिपोर्ट करता है, और प्रोफ़ाइल में history.retention_days डिफ़ॉल्ट रूप से चार दिन की विंडो तय करता है। --include-seen छिपी पोस्टिंग भी रिपोर्ट करता है। वह इतिहास साफ़ करने और बिना स्वीप के बंद होने के लिए --reset-history अकेला चलाएँ।
स्वीप के दौरान क्या होता है
हर रन वही पाँच चरण, उसी क्रम में अपनाता है।
| चरण | क्या होता है |
|---|---|
| 1. प्रोफ़ाइल लोडिंग | आपकी YAML फ़ाइल पढ़ता है और सेटिंग जाँचता है। |
| 2. खोज | आपके चालू प्लेटफ़ॉर्म पर स्क्रैपर चलाता है और पोस्टिंग इकट्ठा करता है। |
| 3. सत्यापन | मृत लिंक हटाता है और soft 404 रीडायरेक्ट पकड़ता है। जिन पोस्टिंग को जाँच सत्यापित नहीं कर पाती, वे रन में रहती हैं। |
| 4. स्कोरिंग | शब्दों के मेल के लिए आपकी PDF या DOCX रिज़्यूमे पार्स करता है, फिर हर भूमिका के लिए Application Tip लिखता है। |
| 5. निर्माण | तारीख की मुहर वाली PDF, CSV और JSON फ़ाइलें बनाता है। पेज छवियों के लिए अपने निर्यात फ़ॉर्मैट में png जोड़ें। |
काम करते समय टर्मिनल हर चरण को [1/5] से [5/5] तक छापता है। अपना पहला स्वीप चलाना पूरा आउटपुट दिखाता है।
--docx से DOCX को PDF में बदलें
--docx को Word फ़ाइल दें। Sweepy उसे बदलता है, PDF सहेजता है, और बंद हो जाता है।
sweepy --docx path/to/resume.docx
फिर Sweepy PDF की जगह पूछता है।
Where should the PDF go? (leave blank to save next to the DOCX):
खाली उत्तर के साथ Enter दबाएँ, और PDF उसी बेस नाम से DOCX के बगल में आ जाता है। कहीं और सहेजने के लिए पूरा पथ टाइप करें। दोनों ही स्थितियों में Sweepy PDF saved: और अंतिम स्थान छापता है।
Sweepy पहले DOCX टेक्स्ट से PDF दोबारा बनाता है। जब आपकी मशीन पर Microsoft Word हो, तब Sweepy नज़दीकी दिखावटी मेल के लिए docx2pdf पर लौट आता है।
--convert से कोई भी दस्तावेज़ बदलें
--convert बिना प्रश्नों के चलता है और PDF मूल फ़ाइल के बगल में लिखता है। इसे .docx, .doc, .txt, .md या .pdf फ़ाइल पर लगाएँ।
sweepy --convert path/to/resume.docx
PDF saved: C:\Users\Alex\sweepy\resume.pdf
आउटपुट स्रोत का नाम रखता है और एक्सटेंशन बदल देता है, इसलिए उसी फ़ोल्डर में notes.md से notes.pdf बनता है। .pdf स्रोत पहले से अपनी जगह है, इसलिए Sweepy This file is already a PDF: बताता है और फ़ाइल को वहीं रहने देता है।
| इनपुट | Sweepy क्या करता है |
|---|---|
.docx | python-docx और reportlab से साफ़ टेक्स्ट बनाता है, फिर Microsoft Word पर लौट आता है। |
.doc | Microsoft Word से रेंडर करता है, जिसके लिए docx2pdf पैकेज चाहिए। |
.txt, .md | टेक्स्ट को शीर्षकों और बुलेट के साथ रेंडर करता है। |
.pdf | फ़ाइल को अछूता छोड़ता है और उसका पथ बताता है। |
गुम या असमर्थित फ़ाइल Error: छापती है और कोड 1 के साथ बंद हो जाती है। इससे कमांड स्क्रिप्ट और निर्धारित जॉब के अंदर सुरक्षित रहता है।
PDF बनने के बाद अपनी प्रोफ़ाइल में resume.path उस पर सेट करें और स्वीप चलाएँ।
--version से अपना संस्करण जाँचें
इंजन और उसकी लाइब्रेरी ठीक इंस्टॉल हुए हैं, यह पक्का करने के लिए यह कमांड इस्तेमाल करें।
sweepy --version
Sweepy v3.0.0
Python 3.13.1 | pymupdf 1.28.2 | reportlab 5.0.1
Ready to sweep.
अगर pymupdf या reportlab MISSING दिखाए, तो अपनी डिपेंडेंसी दोबारा इंस्टॉल करें। इंस्टॉलेशन वह चरण कवर करता है।
डीबग लॉगिंग चालू करें
डीबग लॉग दर्ज करते हैं कि इंजन चरण-दर-चरण क्या करता है। उन्हें फ़्लैग, प्रोफ़ाइल सेटिंग या environment variable से चालू करें।
| तरीका | कहाँ सेट करें | कितनी देर टिकता है |
|---|---|---|
--debug फ़्लैग | इसे अपने टर्मिनल कमांड में जोड़ें। | केवल उसी रन तक। |
debug: true | इसे अपनी YAML प्रोफ़ाइल में जोड़ें। | हर रन, जब तक आप इसे हटाएँ नहीं। |
SWEEPY_DEBUG=1 | इसे environment variable के रूप में सेट करें। | हर रन, जब तक आप टर्मिनल बंद न करें। |
किसी भी स्वीप में फ़्लैग जोड़ें:
sweepy --debug --profile profiles/paralegal_nyc.yaml
या अपनी प्रोफ़ाइल में लॉगिंग स्थायी रूप से चालू करें:
# Write a rotating debug log under logs/ on every run.
debug: true
या इसके बजाय environment variable सेट करें:
$env:SWEEPY_DEBUG = "1"
sweepy --profile profiles/paralegal_nyc.yaml
macOS या Linux पर पहली पंक्ति की जगह export SWEEPY_DEBUG=1 लिखें।
Sweepy लॉग ऐप फ़ोल्डर के अंदर logs/ में लिखता है। उन्हें --log-dir से कहीं और भेजें:
sweepy --debug --log-dir C:\Users\Alex\sweepy-logs --profile profiles/paralegal_nyc.yaml
फ़ाइल खोले बिना हाल की प्रविष्टियाँ पढ़ने के लिए यह चलाएँ:
sweepy --logs
जब तक डीबग लॉग मौजूद न हो, --logs कमांड No debug logs found. Run Sweepy with --debug to enable logging. छापता है।
रोज़ाना रन निर्धारित करें
भर्ती टीमें पूरे हफ़्ते नई भूमिकाएँ पोस्ट करती हैं। हर सुबह वही कमांड चलाएँ, और आप उन पोस्टिंग को जल्दी पकड़ लेते हैं।
sweepy --profile profiles/paralegal_nyc.yaml
नई पोस्टिंग वाला रन रिपोर्ट फ़ाइलें लिखता है। Sweepy हर रिपोर्ट फ़ाइल नाम में प्रोफ़ाइल, तारीख और समय रखता है, जैसे paralegal_nyc_2026-10-08-081500.pdf और paralegal_nyc_2026-10-08-081500.csv। Sweepy समय Coordinated Universal Time में पढ़ता है, इसलिए मुहर आपकी स्थानीय घड़ी से अलग हो सकती है। यह मुहर एक रन को दूसरे पर लिखने से रोकती है, इसलिए results आपकी खोज का पूरा इतिहास रखता है।
स्वीप केवल नई पोस्टिंग रिपोर्ट करते हैं, और Sweepy हर रिपोर्ट की गई पोस्टिंग को डिफ़ॉल्ट रूप से चार दिन याद रखता है। जब किसी सुबह कुछ नया न मिले, रन No new postings since your last sweep छापता है और रिपोर्ट फ़ाइलें नहीं लिखता। वही तब होता है जब हर मिला लिंक समाप्त हो चुका हो।
Windows पर निर्धारित करें
- Start मेनू से Task Scheduler खोलें।
- Create Basic Task चुनें और उसे
Sweepy morning sweepजैसा नाम दें। - Daily चुनें, फिर 8:00 AM जैसा शुरू होने का समय चुनें।
- क्रिया के लिए Start a program चुनें।
- Program/script को अपने Python executable पर सेट करें। वह पथ छापने के लिए PowerShell में
(Get-Command python).Sourceचलाएँ। - Add arguments को
swee.pyके पूरे पथ और प्रोफ़ाइल पर सेट करें:"C:\Users\Alex\sweepy\swee.py" --profile profiles\paralegal_nyc.yaml। - Start in को अपने
sweepyफ़ोल्डर पर सेट करें। इंजन उसी फ़ोल्डर सेprofilesपढ़ता है औरresultsलिखता है।
macOS और Linux पर निर्धारित करें
crontab -eसे अपना crontab खोलें।- एक पंक्ति जोड़ें जो हर दिन 8:00 AM पर, मशीन के टाइम ज़ोन में, स्वीप चलाए।
0 8 * * * cd /path/to/sweepy && python3 swee.py --profile profiles/paralegal_nyc.yaml
cd वाला हिस्सा मायने रखता है। इंजन profiles पढ़ता है और results उसी फ़ोल्डर के सापेक्ष लिखता है जहाँ से आप उसे चलाते हैं। वही python3 इस्तेमाल करें जिसने Sweepy के पैकेज इंस्टॉल किए। इसे python3 -c "import swee" से जाँचें।
निर्धारित रन बिना टर्मिनल विंडो के शुरू होता है, इसलिए पिछले सत्रों की शेल सेटिंग लागू नहीं होतीं। कमांड एक बार हाथ से चलाएँ। निर्धारित करने से पहले पक्का करें कि वह काम करता है।