{"id":18839757,"url":"https://github.com/maximbilan/jobsfinder","last_synced_at":"2025-10-11T11:45:03.660Z","repository":{"id":39726878,"uuid":"164198783","full_name":"maximbilan/JobsFinder","owner":"maximbilan","description":"A script which parses Upwork RSS feed and sends notifications to Telegram","archived":false,"fork":false,"pushed_at":"2023-10-02T18:37:18.000Z","size":21,"stargazers_count":18,"open_issues_count":3,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-21T07:10:32.940Z","etag":null,"topics":["rss","rss-feed","rss-reader","telegram","telegram-bot","telegram-bot-api","upwork","upwork-api"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maximbilan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-05T09:03:03.000Z","updated_at":"2024-07-15T11:46:40.000Z","dependencies_parsed_at":"2024-11-08T02:44:05.504Z","dependency_job_id":"2f3d8d98-a6d4-4ae7-b425-44e525244f55","html_url":"https://github.com/maximbilan/JobsFinder","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/maximbilan/JobsFinder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maximbilan%2FJobsFinder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maximbilan%2FJobsFinder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maximbilan%2FJobsFinder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maximbilan%2FJobsFinder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maximbilan","download_url":"https://codeload.github.com/maximbilan/JobsFinder/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maximbilan%2FJobsFinder/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279007063,"owners_count":26084230,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-11T02:00:06.511Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["rss","rss-feed","rss-reader","telegram","telegram-bot","telegram-bot-api","upwork","upwork-api"],"created_at":"2024-11-08T02:43:59.209Z","updated_at":"2025-10-11T11:45:03.639Z","avatar_url":"https://github.com/maximbilan.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JobsFinder\nA script which parses Upwork RSS feed and sends notifications to Telegram.\n\n```js\nconst credentials = require('./credentials.json')\n\nconst FeedSub = require('feedsub')\nconst rssFeed = credentials.rss_feed\nlet reader = new FeedSub(rssFeed, {\n  interval: 1 // Check feed every 1 minute.\n})\n\nconst low = require('lowdb')\nconst FileSync = require('lowdb/adapters/FileSync')\nconst adapter = new FileSync('db.json')\nconst db = low(adapter)\n\ndb.defaults({ feed: [] }).write()\n\nconst Telegraf = require('telegraf')\nconst Extra = require('telegraf/extra')\nconst session = require('telegraf/session')\nconst token = credentials.telegram_bot_token\nconst bot = new Telegraf(token)\n\n// Register session middleware.\nbot.use(session())\n\n// Register logger middleware.\nbot.use((ctx, next) =\u003e {\n  const start = new Date()\n  return next().then(() =\u003e {\n    const ms = new Date() - start\n    console.log('response time %sms', ms)\n  })\n})\n\nreader.on('item', (item) =\u003e {\n  console.log(item.title)\n\n  const itemInDb = db.get('feed').find({ link: item.link }).value()\n  if (itemInDb) {\n    console.log(\"This item is already exists:\")\n    console.log(itemInDb.link)\n  } else {\n    db.get('feed').push(item).write()\n    var message = item.description\n    bot.telegram.sendMessage(credentials.telegram_channel, message, Extra.HTML().markup())\n  }\n})\n\nreader.start()\n\n```\n\nMore information \u003ca href=\"https://medium.com/@maximbilan/upwork-jobs-finder-telegram-notifier-6d7557015135\"\u003ehere\u003c/a\u003e.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaximbilan%2Fjobsfinder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaximbilan%2Fjobsfinder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaximbilan%2Fjobsfinder/lists"}