2周斩获远程offer!我的高效求职秘诀全公开

最近好多小伙伴私信我:

"怎么才能快速找到远程工作?"

"有没有靠谱的远程岗位推荐?"

远程岗位招聘平台非常多,但说实话,每天手动刷十几个平台,不仅费时费力,还总是慢人一步------优质远程岗位往往刚发布就被抢光,偶尔上去搜一搜,根本赶不上热乎的!

为了省下每天手动刷十几个平台的时间,我自己撸了一个 远程工作收集 bot ,每天 24 小时自动抓取国内外多个渠道的最新岗位,并推送到 TG 频道。

今天就一次性把渠道和实现过程分享出来,算是送给大家的开源"秘密武器"~


1. 远程工作渠道汇总

找远程工作,最重要的是信息源要多、更新要快,我自己整理的清单如下👇

国内远程渠道

  • BOSS直聘:搜索「远程办公」
  • 拉勾网:筛选"远程"标签
  • 电鸭社区eleduck.com(专注国内远程)
  • V2EX远程版块v2ex.com/go/remote

海外远程渠道

🌍 专业远程平台

🌍 综合求职平台

  • LinkedIn:搜 "Remote" + 职位关键词
  • Indeed / Glassdoor:用 "remote" 筛选

💼 自由职业(适合新手)


2. 我的秘密武器:远程工作收集 bot

光有渠道还不够,关键是 第一时间获取最新岗位

于是我做了一个 TG 频道 + 爬虫 bot@WorkRemotoChannel, 可以直接去掉空格访问 https:/ /t . me/ WorkRemotoChannel 加入 channel 即可

功能特点:

  • 自动化:24 小时无人值守抓取
  • 多平台覆盖:BOSS直聘、电鸭、V2EX、RemoteOK、We Work Remotely...(海外平台在开发中)
  • 实时推送:岗位一发布,频道立刻更新
  • 分类清晰:编程 / 设计 / 运营 / 产品等标签

现在找远程工作,就像刷朋友圈一样随手看看,不怕错过。


3. bot 的大体实现过程

整个项目分成三部分:
爬虫抓取 → 数据过滤 → TG 推送

3.1 爬虫抓取

  • 使用 Puppeteer 模拟浏览器打开网页,解决反爬、动态加载问题
  • 对静态页面(如 RemoteOK)用 axios + cheerio 直接解析 HTML
  • 支持多关键词匹配("remote"、"远程办公"等)
  • 定时各个平台抓取最新 10 条,去掉重复信息

示例(爬 BOSS直聘):

dart 复制代码
const puppeteer = require("puppeteer");

async function crawlBoss() {
  const url = "https://www.zhipin.com/web/geek/job?query=远程&city=100010000";
  const browser = await puppeteer.launch({ headless: true });
  const page = await browser.newPage();
  await page.goto(url, { waitUntil: "networkidle2" });
  const jobs = await page.evaluate(() => {
    return Array.from(document.querySelectorAll(".job-card-box"))
      .slice(0, 5)
      .map(el => ({
        title: el.querySelector(".job-name")?.textContent.trim(),
        company: el.querySelector(".company-name")?.textContent.trim(),
        salary: el.querySelector(".salary")?.textContent.trim(),
        link: el.querySelector("a")?.href
      }));
  });
  await browser.close();
  return jobs;
}

3.2 数据过滤

  • 过滤掉已暂停、已结束、重复的岗位
  • 用提取薪资、要求等关键信息
  • 加入发布时间判断,保证都是最新的岗位

3.3 推送到 Telegram

  • 使用 node-telegram-bot-api 发送消息到频道
  • 支持 Markdown 格式美化(标题加粗、链接可点)
  • 防止 TG API 限制,加入发送延时
javascript 复制代码
const TelegramBot = require("node-telegram-bot-api");
const bot = new TelegramBot(process.env.TELEGRAM_TOKEN);

async function pushToTG(jobs) {
  for (const job of jobs) {
    const text = `*${job.title}*  
${job.company} | ${job.salary}  
[查看详情](${job.link})`;
    await bot.sendMessage(process.env.TELEGRAM_CHAT_ID, text, { parse_mode: "Markdown" });
  }
}

3.4 自动化部署

  • 使用 GitHub Actions 定时运行(每 4 小时一次)
  • 无需服务器,代码推到 GitHub 就能跑
  • 爬虫结果自动推送到 TG

.github/workflows/crawl.yml

yaml 复制代码
name: Run Remote Job Crawler

on:
  schedule:
    - cron: "0 */4 * * *"
  workflow_dispatch:

jobs:
  crawl:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: 18
      - run: npm install
      - run: node index.js
        env:
          TELEGRAM_TOKEN: ${{ secrets.TELEGRAM_TOKEN }}
          TELEGRAM_CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }}

4.最后

做这个 bot 后,我再也不用每天手动刷十几个平台了。

它不光帮我自己找到过心仪的工作,还帮不少朋友第一时间抓到好机会。

如果你也在找远程工作,可以直接关注我的TG频道:@WorkRemotoChannel ,去掉空格访问 https:/ /t . me/ WorkRemotoChannel 如果你想自己动手做一个,这篇文章的思路就可以直接拿去复用~

这么掏心掏肺跟大家分享居然说我是骗子,真的很母语啊家人们!😂

相关推荐
沸腾_罗强7 分钟前
redis内存被打爆了
后端
期待のcode10 分钟前
SpringMVC请求与响应
java·后端·spring
minos.cpp10 分钟前
第一章 OkHttp 是怎么发出一个请求的?——整体流程概览
android·okhttp·面试
oil欧哟12 分钟前
🧐Text-Well:我做了一个能帮你进行多视角内容评审的 AI 工具
前端·ai编程·产品
余_弦24 分钟前
区块链钱包开发(二十)—— 前端框架和页面
前端·区块链·以太坊
奔赴_向往35 分钟前
微信小程序能否主动跳转第三方 App
前端
Java水解40 分钟前
Spring Boot 全局异常处理与日志监控实战
后端·面试
-睡到自然醒~40 分钟前
[go] 命令模式
java·开发语言·javascript·后端·golang·命令模式
滕本尊40 分钟前
前端工程化:构建体系全解析
前端·全栈
别来无恙14942 分钟前
JavaWeb核心:HttpServletRequest与HttpServletResponse详解
java·前端·servlet