Skip to main content
Jobs with Joe

How it works

Where every job comes from, how we check it, and how the website, the extension and our social posts fit together. Everything here runs on free plans.

1. From the employer to your screen

Jobs come only from employers’ own career sites and the public boards their hiring systems publish (Greenhouse, Lever, Ashby, Workday, amazon.jobs and others). Scheduled jobs on GitHub collect them every two hours and save them in one database. The website and the browser extension read from that same database, so they always agree.

Diagram: sources (employer job boards, career sites and authenticated submitters) feed scheduled collection on GitHub Actions and the backend on Render; both write to the Supabase database. The website on Vercel and the browser extension read from the database. Daily link checks, fresher tags, alerts and a weekly backup also run on GitHub Actions.
Sources, scheduled jobs, the database, the backend, the website and the extension.

Every job is checked again before you see “Checked today”: the daily link check opens each apply page and closes jobs whose page is gone. Read the details in How we verify.

2. From the database to Instagram, YouTube and X

Posts are made from the database too. Each new open fresher, intern or entry-level job gets at most one post per channel, through Buffer’s official API. Comment JOB on an Instagram post and an auto-reply sends you the link. Every post links back to the job here, and from here straight to the employer.

Diagram: the publish queue in the database feeds the content pipeline, which posts through Buffer to Instagram, YouTube and X and marks each post as sent. Instagram comments go to PilotDM, which DMs a link to the website. All posts link to the website, and apply clicks are counted.
One post per job per channel, never duplicated, always linking to the official page.

3. What you do

Find, apply and track

Flow: browse or search jobs, open a job page, then save it, apply through a counted link to the employer’s own page, prepare with the job’s prep page or check your resume match. Applications go into the tracker with deadline reminders.
Apply always goes to the employer’s own page. We count the click, never block it.

From a reel to the application

Sequence: a viewer sees a reel and comments JOB, PilotDM replies and sends a DM with a link, the link opens a one-tap Apply page, which goes through the counted apply link to the employer’s site.
Comment JOB, get the link, apply on the official page.

The browser extension

Flow: download and load the extension, set your name, cities and roles, then every new tab shows your feed, filters and search with card actions and a tracker. Every 6 hours it checks for an update; when one is ready it shows a badge, a banner and a notification, then What’s new after you reload.
Install once from the zip. Joe tells you when there’s a new version.

4. How extension updates work

The extension isn’t in the Chrome Web Store (it has a fee, and Joe is free), and Chrome only updates store extensions by itself. So Joe checks this site every 6 hours. When a new version is ready you see NEW on its toolbar icon and a banner on your new tab. One click downloads it and shows the steps: unzip over the same folder, then Reload. Your saved jobs and settings stay. Announcements and categories change from the site without any update. Step-by-step: How updates work.

Sequence: the extension asks the website for the latest version, shows NEW and a banner when it is newer, downloads the zip when you click Update, guides you to unzip and reload, and shows What’s new after the reload.
Check, tell, download, reload, What’s new.

5. The schedule (India time)

  • Every 2 hours: We collect new and changed jobs from every source, in four parallel batches, then send matching job alerts.
  • Daily, 10:13: We open every open job’s apply page and close the ones that are gone.
  • Daily, 11:23: We read batch, degree, pay and deadline from the employer’s text and update the public fresher list.
  • Weekly, Monday 02:47: An encrypted backup of the database.
  • 09:00 and a few slots a day: Posts to Instagram, YouTube and X, from new fresher and intern jobs.
  • Every 6 hours: The browser extension checks for a new version.

6. When something breaks

  • If a company changes its careers site, we get fewer jobs from it until we fix that source; other sources are unaffected.
  • If a post fails, it is retried with a pause, then held for a person to review. A job is never posted twice.
  • If the website can’t be reached, the extension keeps working from what it saved and from the job database directly.
  • Dead apply pages are closed within a day by the link check.
  • Everything we count is public on Open stats, and what changed, and when, is on the changelog.

7. Free plans we run on

  • Website (Vercel Hobby): 100 GB of transfer and 1 million function calls a month. Most pages are cached.
  • Database (Supabase Free): 500 MB of data and 5 GB of transfer a month. Paused after a quiet week, which our 2-hourly collection prevents.
  • Backend (Render Free): 750 hours a month shared by two small services that sleep after 15 idle minutes, so the first request can take a minute. The website doesn’t wait on it.
  • Schedules (GitHub Actions): Free for public repositories. Scheduled runs can start a few minutes late.
  • Posting (Buffer Free) and DMs (PilotDM Free): Official APIs only, within their free plans.

Limits as published by each provider on 15 October 2026. Jobs with Joe is free and has no paid plan; see the No-fee pledge. Questions: contact us.