Remote work lead engine with a paid Telegram delivery layer.
This repository is a practical system for:
- collecting remote jobs, gigs, and contract leads from public sources
- normalizing and storing leads in SQLite
- building profession-specific shortlists
- delivering those shortlists through a Telegram bot
- gating premium AI features behind Telegram Stars payments
The current public product layer is branded as Remote Work Hunter.
- scan public job boards, forums, and freelance platforms
- store leads and bot analytics in SQLite
- build sellable offer feeds from
config/offers.yaml - run a Telegram bot with:
- profession pack selection
- stack selection
- preview vs paid full shortlist
- source transparency
- Telegram Stars payments
- AI apply analysis
- AI-generated cover notes
- keep uploaded CV text only in temporary bot memory, not in long-term DB storage
qa_gig_huntersoftware_engineering_hunterdata_ai_huntercybersecurity_hunterdevops_cloud_hunter
Free users:
- can open the bot
- can choose a profession pack
- can choose a stack
- can get preview leads
- do not see AI match scores
- do not get AI apply analysis or cover generation
Paid or privileged users:
- can get the full shortlist
- can see per-lead AI score in the shortlist
- can run
Apply analysis - can generate tailored cover notes
Important:
- AI scoring and AI apply analysis require a temporary CV
- if the user has access but no CV loaded, the bot asks for CV first
- CV text is processed transiently in memory only
- final platform submit automation
- blind auto-apply across third-party sites
- private sessions and private credentials
- private runtime DB dumps
This public snapshot is intentionally sanitized.
src/core modules, storage, scoring, bot support, helpersscripts/scanners, reports, offer pipelines, Telegram bot flowsconfig/runtime config and offer definitionsDocs/product notes, bot notes, scanner matrix, implementation statustemplates/SMTP outreach templatesui/local UI assets
config/config.yamlcore scanner/runtime settingsconfig/offers.yamlprofession packs, bot text, plans, stack optionsscripts/run_offer_pipeline.pyrun one offer end-to-endscripts/export_offer_feed.pyexport a sellable feedscripts/telegram_paid_bot.pypaid Telegram botscripts/run_bot_stack.pybackground loop for bot + offer refresh
Public and generic:
web_scan_contract_jobs.pyhn_scan_whoishiring.py- HTTP/API collectors in
src/collectors/
Freelance and gig-oriented:
workana_scan_projects.pyfreelancermap_scan_projects.pyreddit_scan_gigs.pyupwork_scan_jobs.py(optional)telegram_scan_gigs.py(optional)
LinkedIn and other logged-in sources:
linkedin_scan_jobs.py(optional)linkedin_scan_posts.py(optional)
python -m venv .venv
.\.venv\Scripts\activate
pip install -r requirements.txt
python -m playwright install chromium
Copy-Item .env.example .env
Copy-Item .env.accounts.example .env.accounts.\.venv\Scripts\python.exe scripts\run_offer_pipeline.py --offer qa_gig_hunter.\.venv\Scripts\python.exe scripts\run_offer_pipeline.py --offer qa_gig_hunter --with-optional.\.venv\Scripts\python.exe scripts\telegram_paid_bot.py --offer qa_gig_hunter.\.venv\Scripts\python.exe scripts\run_bot_stack.py --default-offer qa_gig_hunter --short-limit 12 --refresh-hours 6The current Telegram bot flow is:
- User opens
Remote Work Hunter - User chooses a profession pack
- User optionally chooses a stack
- Free user receives preview leads
- Paid user receives full shortlist
- Paid user with CV receives:
- per-lead AI score in shortlist
Apply analysis- tailored cover note generation
See also:
Docs/TELEGRAM_BOT_MVP.mdDocs/AIJobSearcher_Implemented_Status.mdDocs/PROFESSION_SCANNER_MATRIX.txt
- Keep real credentials only in local
.envand.env.accounts - Do not commit runtime DB exports
- CV text sent through
/cvis temporary and not written to long-term bot storage
Use responsibly and follow platform Terms of Service and local laws.
