प्रोफ़ाइल कॉन्फ़िगरेशन संदर्भ
यह पेज Sweepy प्रोफ़ाइल की हर स्वीकार्य सेटिंग सूचीबद्ध करता है। प्रोफ़ाइल संपादित करते समय इसे खुला रखें। चरण-दर-चरण मार्गदर्शन के लिए इसके बजाय Sweepy सेट करना देखें।
प्रोफ़ाइल कहाँ रहती हैं
Sweepy अपनी डायरेक्टरी के अंदर profiles/ फ़ोल्डर से प्रोफ़ाइल पढ़ता है। हर प्रोफ़ाइल YAML इस्तेमाल करती है, जो इंडेंटेशन और कोलन से व्यवस्थित सादा टेक्स्ट फ़ॉर्मैट है। इसे Notepad, VS Code या अपने किसी भी टेक्स्ट एडिटर में खोलें।
config.sample.yaml या profiles/paralegal_nyc.yaml जैसे प्रीसेट से शुरू करें। टेम्पलेट कॉपी करें, उसका नाम बदलें, और मान संपादित करें:
copy config.sample.yaml profiles\my_search.yaml
notepad profiles\my_search.yaml
फिर स्वीप को उसी फ़ाइल पर लगाएँ:
sweepy --profile profiles/my_search.yaml
एक प्रोफ़ाइल आपका पूरा कॉन्फ़िगरेशन रखती है। जितनी चाहें प्रोफ़ाइल बनाएँ: हर शहर या भूमिका परिवार के लिए एक। Sweepy स्वीप स्थिति प्रोफ़ाइल के बाहर, डिस्कवरी कैश, इतिहास डेटाबेस और logs/ तथा results/ फ़ोल्डरों में रखता है।
इंडेंट स्पेस से करें, टैब से कभी नहीं। YAML टैब अस्वीकार करता है, और एक भी छूटा टैब पूरी प्रोफ़ाइल अपठनीय बना देता है।
पूरा प्रोफ़ाइल उदाहरण
नीचे का उदाहरण Alex की पूरी प्रोफ़ाइल दिखाता है। # से शुरू होने वाली पंक्तियाँ कमेंट का काम करती हैं, और Sweepy उन्हें अनदेखा करता है:
# ─────────────────────────────────────────────────
# Sweepy — Alex's Paralegal Profile (New York City)
# ─────────────────────────────────────────────────
# Your name. It appears in the PDF report header.
name: "Alex Rivera"
# Set true to write rotating debug logs under logs/.
debug: false
# ─── Job search ───────────────────────────────────
search:
# Every title Sweepy searches at the same time.
titles:
- "Paralegal"
- "Legal Assistant"
- "Litigation Support Specialist"
- "Legal Secretary"
# Your target market.
location: "New York, NY"
# true keeps remote roles only. false keeps remote, hybrid, and on-site roles.
remote_only: false
# false removes hybrid roles from every report.
include_hybrid: true
# Annual salary floor. Use 0 to skip salary filtering.
min_salary: 65000
# true reads pay from the posting text when a board omits structured pay.
salary_from_description: true
# ─── Resume ───────────────────────────────────────
resume:
# Path to a PDF or DOCX resume. Forward slashes work on Windows.
path: "Alex_Rivera_Resume.pdf"
# Terms that carry the most weight when Sweepy scores a posting.
must_have_skills:
- "Westlaw"
- "LexisNexis"
- "e-discovery"
- "Contract Review"
- "Legal Research"
# 1.0 is standard. Raise it to reward exact skill matches.
keywords_weight: 1.5
# Interchangeable terms. Sweepy matches every member of a group either way.
synonyms:
- ["e-discovery", "ediscovery", "electronic discovery"]
- ["legal research", "case law research"]
- ["docketing", "case calendaring"]
- ["legal assistant", "legal secretary"]
- ["contract review", "contract analysis", "agreement review"]
# Optional: one resume per role family. Sweepy picks the best fit for each posting.
tracks:
- name: "Paralegal Resume"
path: "C:/Users/Alex/Documents/Alex_Rivera_Paralegal.pdf"
color: "#1D4ED8"
route_keywords: ["paralegal", "litigation", "e-discovery"]
- name: "Legal Assistant Resume"
path: "C:/Users/Alex/Documents/Alex_Rivera_Legal_Assistant.pdf"
color: "#7E22CE"
route_keywords: ["legal assistant", "legal secretary", "scheduling"]
# ─── Platforms ────────────────────────────────────
platforms:
greenhouse: true
ashby: true
lever: true
workable: true
aggregators: false
# Extra ATS domains. Sweepy labels matching postings with this name.
custom:
- name: "SmartRecruiters"
domain: "smartrecruiters.com"
enabled: true
- name: "Breezy HR"
domain: "breezy.hr"
enabled: true
# ─── Sources ──────────────────────────────────────
sources:
jobspy:
linkedin: true
indeed: true
glassdoor: true
zip_recruiter: true
# Leave a list empty to fall back to the seed lists in data/sources/.
ashby:
orgs:
- "crosby"
- "normlaw"
- "hargrove-firm"
- "lawhive"
workable:
slugs:
- "shegerianand-associates-1"
- "harper-james"
- "legalvision"
builtinnyc:
enabled: true
categories:
- "jobs/legal"
- "jobs/legal/search/paralegal"
# ─── Cache and history ────────────────────────────
cache:
enabled: true
ttl_seconds: 3600 # reuse discovery results for an hour
history:
enabled: true
retention_days: 4 # hide a reported posting for four days
match: "url+role" # "url" matches only an identical posting address
path: null # null uses ~/.sweepy/history.db
orchestrator:
timeout_per_source_seconds: 180
circuit_breaker:
failure_threshold: 5
cooldown_seconds: 30
# ─── Report layout ────────────────────────────────
report:
style: "cards" # "cards" (default) or "legacy"
cards_per_page: 6 # cards on each PDF page
max_cards: 24 # 0 or less shows every match
destinations: [] # extra folders for a copy of the PDF
assessment: "agent" # "keyword" accepts reports without agent judgments
# ─── Exports ──────────────────────────────────────
export:
format: "pdf,csv,json" # add "png" for page images
output_dir: "results"
tracking: true # job-tracking columns in the CSV
description_chars: 1000 # posting excerpt length in the CSV and JSON
हर सेटिंग
जो भी सेटिंग आप छोड़ देते हैं, उसमें Sweepy नीचे दिए डिफ़ॉल्ट पर लौट आता है। उपयोगी मिलान पाने के लिए Sweepy को फिर भी search.titles, search.location और resume.path चाहिए।
| खंड | कुंजी | आवश्यक | डिफ़ॉल्ट | विवरण |
|---|---|---|---|---|
| शीर्ष स्तर | name | नहीं | "Job Seeker" | आपका नाम। PDF रिपोर्ट हेडर में आता है। |
| शीर्ष स्तर | debug | नहीं | false | logs/ में घूमते डीबग लॉग लिखने के लिए true सेट करें। |
search | titles | हाँ | [] | आपके लक्ष्य पद नाम। Sweepy हर पद नाम एक साथ खोजता है। |
search | location | हाँ | "" | आपका बाज़ार, "City, State" के रूप में। |
search | remote_only | नहीं | false | केवल रिमोट भूमिकाएँ रखने के लिए true सेट करें। |
search | include_hybrid | नहीं | true | हाइब्रिड भूमिकाएँ हटाने के लिए false सेट करें। |
search | min_salary | नहीं | 0 | वार्षिक वेतन की न्यूनतम सीमा। 0 फ़िल्टर बंद कर देता है। |
search | salary_from_description | नहीं | true | जब बोर्ड संरचित वेतन प्रकाशित न करे, तब पोस्टिंग टेक्स्ट से वेतन सीमा पढ़ें। केवल संरचित फ़ील्ड इस्तेमाल करने के लिए false सेट करें। |
resume | path | हाँ | "" | आपकी PDF या Word (DOCX) रिज़्यूमे फ़ाइल का पथ। |
resume | must_have_skills | नहीं | [] | वे शब्द जिन्हें सबसे ऊँचा स्कोरिंग भार मिलता है। |
resume | keywords_weight | नहीं | 1.0 | कौशल मिलानों का गुणक। ऊँचे मान मेल को अधिक भार देते हैं। |
resume | synonyms | नहीं | [] | एक-दूसरे के बदले इस्तेमाल योग्य शब्दों के समूह। देखें रिज़्यूमे समानार्थी। |
resume | tracks | नहीं | [] | हर भूमिका परिवार के लिए एक रिज़्यूमे। देखें रिज़्यूमे ट्रैक। |
resume.tracks[] | name | हाँ | n/a | रिपोर्ट कार्ड और ट्रैक बैज पर दिखने वाला लेबल। |
resume.tracks[] | path | हाँ | n/a | उस ट्रैक की PDF या DOCX रिज़्यूमे फ़ाइल का पथ। |
resume.tracks[] | color | नहीं | #1D4ED8 | बैज का रंग, hex कोड या navy जैसे रंग नाम के रूप में। |
resume.tracks[] | route_keywords | नहीं | [] | वे कीवर्ड जो पोस्टिंग को इस ट्रैक पर भेजते हैं। |
platforms | greenhouse | नहीं | true | Greenhouse खोज चलाएँ। |
platforms | ashby | नहीं | true | Ashby खोज चलाएँ। |
platforms | lever | नहीं | true | Lever खोज चलाएँ। |
platforms | workable | नहीं | true | Workable खोज चलाएँ। |
platforms | aggregators | नहीं | false | Remotive और Adzuna जैसी मुफ़्त एग्रीगेटर फ़ीड चलाएँ। |
platforms | custom | नहीं | [] | अतिरिक्त applicant tracking system (ATS) डोमेन। हर प्रविष्टि name, domain और enabled लेती है। |
sources | jobspy.linkedin | नहीं | true | python-jobspy के ज़रिए LinkedIn से पूछताछ करें। |
sources | jobspy.indeed | नहीं | true | python-jobspy के ज़रिए Indeed से पूछताछ करें। |
sources | jobspy.glassdoor | नहीं | true | python-jobspy के ज़रिए Glassdoor से पूछताछ करें। |
sources | jobspy.zip_recruiter | नहीं | true | python-jobspy के ज़रिए ZipRecruiter से पूछताछ करें। |
sources | greenhouse.enabled | नहीं | true | Greenhouse स्रोत चालू या बंद करें। |
sources | greenhouse.boards | नहीं | [] | Greenhouse बोर्ड टोकन। खाली होने पर data/sources/greenhouse_boards.txt पर लौट आता है। |
sources | ashby.enabled | नहीं | true | Ashby स्रोत चालू या बंद करें। |
sources | ashby.orgs | नहीं | [] | Ashby संगठन slug। खाली होने पर data/sources/ashby_orgs.txt पर लौट आता है। |
sources | lever.enabled | नहीं | true | Lever स्रोत चालू या बंद करें। |
sources | lever.companies | नहीं | [] | Lever कंपनी टोकन। खाली होने पर data/sources/lever_companies.txt पर लौट आता है। |
sources | workable.enabled | नहीं | true | Workable स्रोत चालू या बंद करें। |
sources | workable.slugs | नहीं | [] | Workable अकाउंट slug। खाली होने पर data/sources/workable_slugs.txt पर लौट आता है। |
sources | builtinnyc.enabled | नहीं | true | Built In NYC स्रोत चालू या बंद करें। |
sources | builtinnyc.categories | नहीं | [] | jobs/legal जैसे Built In NYC श्रेणी पथ। खाली होने पर data/sources/builtin_categories.txt पर लौट आता है। |
sources | builtinnyc.detail_pages | नहीं | false | हर पोस्टिंग का पूरा टेक्स्ट उसके detail पेज से पढ़ें। Built In कुछ अनुरोधों के बाद उन पेजों पर चुनौती देता है, इसलिए Sweepy एक बार में एक पेज लाता है और पहली चुनौती पर रुक जाता है। लिस्टिंग फिर भी कंपनी, स्थान और वेतन देती है। |
sources | enabled | नहीं | ["jobspy", "ats"] | चलाने वाले इंजन। हर इंजन इंस्टॉल करने के बाद hirehunt, openroles, jobdrop या apify जोड़ें। देखें स्रोत और प्लेटफ़ॉर्म। |
sources | jobspy.sites | नहीं | ["linkedin", "indeed", "glassdoor", "zip_recruiter"] | JobSpy बोर्ड, सूची के रूप में। jobspy.linkedin शैली के boolean पर इसका दबदबा रहता है। |
sources | jobspy.fetch_descriptions | नहीं | true | स्कोरिंग के लिए पोस्टिंग का पूरा टेक्स्ट लाएँ। कमज़ोर स्कोर के साथ तेज़ स्वीप के लिए false सेट करें। |
sources | jobspy.proxies | नहीं | [] | user:pass@host:port के रूप में लिखे प्रॉक्सी लक्ष्य। प्रॉक्सी क्रेडेंशियल आपकी मशीन पर ही रहते हैं। |
sources | jobspy.user_agent | नहीं | null | JobSpy अनुरोधों के लिए user agent। अंतर्निहित Chrome मान इस्तेमाल करने के लिए इसे छोड़ दें। |
cache | enabled | नहीं | true | स्वीप के बीच डिस्कवरी नतीजे दोबारा इस्तेमाल करें। |
cache | ttl_seconds | नहीं | 3600 | Sweepy कैश किए नतीजे को कितने सेकंड दोबारा इस्तेमाल करता है। |
cache | path | नहीं | null | कैश डेटाबेस का स्थान। null पर ~/.sweepy/cache.db इस्तेमाल होता है, और SWEEPY_CACHE_PATH दोनों पर भारी पड़ता है। |
history | enabled | नहीं | true | वे पोस्टिंग छिपाएँ जो पिछले स्वीप पहले रिपोर्ट कर चुके हैं। |
history | retention_days | नहीं | 4 | Sweepy रिपोर्ट की गई पोस्टिंग को दोबारा आने से पहले कितने दिन छिपाता है। |
history | match | नहीं | "url+role" | url केवल एक जैसे पोस्टिंग पते से मिलाता है। url+role दूसरे बोर्ड पर वही पद नाम, कंपनी और स्थान भी मिलाता है। |
history | path | नहीं | null | इतिहास डेटाबेस का स्थान। null पर ~/.sweepy/history.db इस्तेमाल होता है, और SWEEPY_HISTORY_PATH दोनों पर भारी पड़ता है। |
orchestrator | timeout_per_source_seconds | नहीं | 180 | Sweepy किसी एक स्रोत को रोकने से पहले उसे कितने सेकंड चलने देता है। |
orchestrator | circuit_breaker.failure_threshold | नहीं | 5 | Sweepy उस स्रोत को छोड़ने से पहले लगातार कितनी विफलताएँ सहता है। |
orchestrator | circuit_breaker.cooldown_seconds | नहीं | 30 | छोड़े गए स्रोत को दोबारा आज़माने से पहले Sweepy कितने सेकंड रुकता है। |
report | style | नहीं | "cards" | रिपोर्ट लेआउट: cards या legacy। |
report | cards_per_page | नहीं | 6 | हर PDF पेज पर रखे जाने वाले कार्ड। |
report | max_cards | नहीं | 24 | कार्ड की अधिकतम संख्या। 0 या उससे कम हर मिलान दिखाता है। |
report | destinations | नहीं | [] | वे अतिरिक्त फ़ोल्डर जिन्हें PDF और PNG फ़ाइलों की प्रति मिलती है। |
report | assessment | नहीं | "agent" | agent तब रिपोर्ट रोक देता है जब किसी कार्ड पर केवल कीवर्ड मेल हो। keyword बिना agent मूल्यांकन वाली रिपोर्ट की अनुमति देता है। |
export | format | नहीं | "pdf,csv" | pdf, csv, json और png का कोई भी मेल, कॉमा से अलग। |
export | output_dir | नहीं | "results" | आपकी रिपोर्ट फ़ाइलों का फ़ोल्डर। न होने पर Sweepy इसे बना देता है। |
export | tracking | नहीं | true | CSV में जॉब-ट्रैकिंग कॉलम जोड़ें: date_applied, status, interview_stage, offer_amount, offer_date, follow_up_date, contact और notes। Sweepy आपके भरे मान उसी प्रोफ़ाइल के बाद के स्वीप में ले जाता है। केवल कच्चे डेटा के लिए false सेट करें। |
export | description_chars | नहीं | 1000 | CSV और JSON में सहेजे जाने वाले पोस्टिंग टेक्स्ट के अक्षर। Sweepy वाक्य की सीमा पर काटता है। 0 पूरी पोस्टिंग सहेजता है। |
स्रोत और प्लेटफ़ॉर्म समर्थन का विवरण स्रोत और प्लेटफ़ॉर्म में है। वहाँ के गेटिंग नियम बताते हैं कि platforms.* और sources.* मिलकर कैसे काम करते हैं। वैकल्पिक hirehunt, openroles, jobdrop और apify खंड भी sources के अंतर्गत रहते हैं, और कमांड संदर्भ उनकी कुंजी तय करने वाले फ़्लैग सूचीबद्ध करता है।
रिज़्यूमे ट्रैक
ट्रैक एक नाम वाला रिज़्यूमे है। जब आप दो अलग भूमिकाएँ या पद नाम लक्षित करें और चाहें कि हर पोस्टिंग सही दस्तावेज़ के सामने स्कोर हो, तब ट्रैक इस्तेमाल करें।
resume:
tracks:
- name: "Paralegal Resume"
path: "C:/Users/Alex/Documents/Alex_Rivera_Paralegal.pdf"
color: "#1D4ED8"
route_keywords: ["paralegal", "litigation", "e-discovery"]
- name: "Legal Assistant Resume"
path: "C:/Users/Alex/Documents/Alex_Rivera_Legal_Assistant.pdf"
color: "#7E22CE"
route_keywords: ["legal assistant", "legal secretary", "scheduling"]
हर प्रविष्टि चार फ़ील्ड लेती है:
nameट्रैक को लेबल देता है। रिपोर्ट कार्ड यह लेबल दिखाता है, इसलिए एक या दो शब्द लिखें।pathउस ट्रैक की PDF या DOCX रिज़्यूमे फ़ाइल पर इशारा करता है।colorबैज का रंग तय करता है।#1D4ED8जैसा hex कोड, याnavyजैसा रंग नाम इस्तेमाल करें।route_keywordsतय करते हैं कि Sweepy किन पोस्टिंग को इस ट्रैक पर भेजता है।
Sweepy हर पोस्टिंग को कीवर्ड मेल से भेजता है। यह पोस्टिंग के पद नाम और विवरण तथा हर ट्रैक के route_keywords के बीच पूरे-शब्द मिलान गिनता है। Sweepy पोस्टिंग को सबसे अधिक गिनती वाले ट्रैक पर भेजता है। जब दो ट्रैक बराबर हों, Sweepy आपकी सूची में पहला इस्तेमाल करता है।
route_keywords पोस्टिंग को एक रिज़्यूमे पर भेजते हैं, और वे मिलान प्रतिशत कभी नहीं बदलते। वे वाक्यांश जोड़ें जो हर भूमिका परिवार अपनी पोस्टिंग में सचमुच इस्तेमाल करता है।
tracks छोड़ दें और Sweepy resume.path को एक अंतर्निहित ट्रैक की तरह इस्तेमाल करता है।
रिज़्यूमे समानार्थी
resume.synonyms उन शब्दों के समूह रखता है जिनका अर्थ एक ही है। Sweepy समूह के हर शब्द को बाकी के बराबर मानता है। फिर मिलान दोनों दिशाओं में काम करता है। व्यापक फ़ॉर्मैटिंग चेकलिस्ट के लिए उद्योग-विशिष्ट शब्द जोड़ना देखें।
resume:
synonyms:
- ["e-discovery", "ediscovery", "electronic discovery"]
- ["legal research", "case law research"]
- ["docketing", "case calendaring"]
- ["legal assistant", "legal secretary"]
- ["contract review", "contract analysis", "agreement review"]
समूह में कम से कम दो शब्द चाहिए, वरना Sweepy उसे अनदेखा कर देता है। मिलान केस की परवाह नहीं करता और नियमित एकवचन व बहुवचन रूप संभालता है। इंजन फिर भी पूरे वाक्यांश मिलाता है, इसलिए जब आप दोनों को गिनना चाहें, तो legal research और legal researcher अलग शब्दों के रूप में सूचीबद्ध करें।
Alex रिज़्यूमे पर e-discovery लिखता है। अब electronic discovery कहने वाली पोस्टिंग उससे मेल खाती है, क्योंकि दोनों शब्द एक ही समूह के हैं।
जब भी वही चूक दो बार दिखे, तब एक समूह जोड़ें। पोस्टिंग की सटीक शब्दावली अपने शब्द के बगल में समूह में कॉपी करें।
आम फ़ॉर्मैटिंग ग़लतियाँ
टूटी प्रोफ़ाइलें ज़्यादातर दो-तीन आम ग़लतियों से जुड़ी होती हैं।
Windows पथों में फ़ॉरवर्ड स्लैश या दोहरे बैकस्लैश चाहिए। YAML एक बैकस्लैश को escape अक्षर पढ़ता है। C:\Users\Alex जैसा पथ फ़ाइल तोड़ देगा।
resume:
path: "C:/Users/Alex/Documents/Alex_Rivera_Resume.pdf" # ✅ works
# path: "C:\\Users\\Alex\\Documents\\Alex_Rivera_Resume.pdf" # ✅ also works
# path: "C:\Users\Alex\Documents\Alex_Rivera_Resume.pdf" # ❌ breaks YAML
पथ में एक भी छूटा बैकस्लैश Sweepy को आपकी प्रोफ़ाइल पढ़ने से रोक देता है। सेटअप विज़ार्ड आपके लिए फ़ॉरवर्ड स्लैश लिखता है, इसलिए हाथ से संपादित करते समय वही शैली कॉपी करें।
कमेंट # से शुरू होते हैं। Sweepy उस पंक्ति पर # के बाद का सब कुछ अनदेखा करता है। कमेंट से नोट करें कि कोई मान क्यों मायने रखता है, जैसा उदाहरण प्रोफ़ाइल करती है।
इंडेंटेशन संरचना तय करता है। हर स्तर को दो स्पेस से इंडेंट करें। फ़ाइल में कहीं भी एक टैब YAML तोड़ देता है।