daybreak

Wake up to jobs worth applying to.

A small helper that lives on your computer. It searches job boards and your favorite companies every night, and puts a scored report in your inbox every morning. Free, private, no code knowledge needed.

🌙
OVERNIGHT

It searches — Indeed, LinkedIn, and your dream companies' own pages.

🌅
7:00 AM

Report lands — every job scored, best first, junk gone.

OVER COFFEE

You apply — intro messages written, tracker fills itself.

15 minutes, once. No account, no cost.
🌅

A morning report

One page, best matches first. No more cycling through five job sites.

Dream company alerts

The day they post a matching role, you get an email.

💬

Messages, pre-written

Short intros for people at each company. Copy, paste, send.

📋

A self-filling tracker

One click logs any job to your Google Sheet.

Tell it what you're looking for

Answer the questions; your helper writes itself on the right. No need to read it — it's just nice to see.

1The job you want

Picking one fills in sensible filters below. Adjust anything after.

2Good jobs vs. bad jobs

Every job gets a score out of 100 from these words. High scores rise; low scores are hidden.

HOW A JOB GETS SCORED
Product Designer Remote · Acme Co — "…great for early career designers, unpaid trial project…"
starts at 50 remote +8 early career +8 unpaid −20 = 46
Your cutoff is 30, so this one makes the report. Vague one-liner postings also lose 10 automatically.

30 is a good start. Drowning in results? Raise it to 45.

3Your dream companies

Their own careers pages get checked directly each morning — you hear about roles the day they're posted.

Paste the address of any page that lists their openings.

4Your intro messages

Each job comes with short LinkedIn messages, ready to send. This line goes in the middle of each.

Short and factual. "I'm a…" works well.

5Where mornings go

A separate 16-character password Google makes just for this — 2-minute guide.

Keep your downloaded folder to yourself. This password goes inside it. Don't share it or post it online.
6Your self-filling tracker

Everyone's favorite part. Click Mark as Applying on any job in your report and it appears as a row in your Google Sheet — date, company, role, link. Your whole search, recorded without typing.

3-minute guide. Or skip it and add it later.

7Your computer

The guide and your download will match.

Your helper, written live. Yours to keep — never something you have to read.

  
3 files

Getting it running

Copying and pasting a few things. If you can order takeout online, you can do this.

🚀

First run

5 minutes, once

You'll use Terminal, an app already on your Mac — a window where you type instead of click.You'll use PowerShell, an app already on your PC — a window where you type instead of click. Every step is: copy the box, paste it there, press Enter.

  1. Open Terminal. Hold , press space, type terminal, press Enter.
  2. Open PowerShell. Press ⊞ Win, type powershell, press Enter.
  3. Check for Python — the language your helper speaks:
    python3 --version
    python --version
    A version number like Python 3.12 means go. An error means install it from python.org (tick "Add Python to PATH"), then reopen the window.
  4. Give it its tools:
    pip3 install requests beautifulsoup4 pandas lxml
    pip install requests beautifulsoup4 pandas lxml
  5. Unpack your download:
    cd ~/Downloads && unzip -o job_pipeline.zip && cd job_pipeline
    cd $HOME\Downloads; Expand-Archive job_pipeline.zip . -Force; cd job_pipeline
  6. Wake it up — it narrates as it searches:
    python3 scraper.py
    python scraper.py
    Then open your first report and double-click the file inside: 🎉
    open reports
    start reports

Mornings on autopilot

1 minute

One paste tells your computer: run my helper at 7:00 and 7:15 every morning.

  1. Copy the whole box, paste into Terminal, press Enter. Nothing visible happens — that means it worked:
    (crontab -l 2>/dev/null; echo "0 7 * * * /usr/bin/python3 $HOME/Downloads/job_pipeline/scraper.py"; echo "15 7 * * * /usr/bin/python3 $HOME/Downloads/job_pipeline/dream_crawler.py") | crontab -
  2. Copy the whole box, paste into PowerShell, press Enter:
    schtasks /create /tn "Daybreak report" /tr "python %USERPROFILE%\Downloads\job_pipeline\scraper.py" /sc daily /st 07:00; schtasks /create /tn "Daybreak dream companies" /tr "python %USERPROFILE%\Downloads\job_pipeline\dream_crawler.py" /sc daily /st 07:15
  3. Double-check: type crontab -l — you should see two lines. Undo anytime with crontab -r.
  4. Double-check: search task scheduler in the Start menu — two "Daybreak" tasks are listed.
  5. One honest note: your computer must be awake at 7. If it slept in, just run it by hand anytime.
🔑

The special email password

2 minutes

Instead of your real password, Google makes a separate 16-character one that can only send mail — cancelable anytime.

  1. Open myaccount.google.com/apppasswords and sign in.
  2. Asked to turn on 2-Step Verification first? Follow the prompts, then return to that link.
  3. Name it daybreak, click Create.
  4. Copy the 16 characters into question 5 above. You'll never need them again.
📋

The self-filling tracker

3 minutes, optional

You'll give a Google Sheet a tiny "mailbox" address. Clicking Mark as Applying in your report delivers the job straight into it.

  1. Make the sheet. Go to sheets.new and type across row 1: Date Company Role Status Link
  2. Open its letterbox. Menu: Extensions → Apps Script. Delete what's there, paste this:
    function doPost(e) { var job = JSON.parse(e.postData.contents); SpreadsheetApp.getActiveSpreadsheet() .getActiveSheet() .appendRow([job.date, job.company, job.title, job.status, job.url]); return ContentService.createTextOutput("ok"); }
  3. Switch it on. Deploy → New deployment → gear → Web app. Execute as: Me. Access: Anyone. Deploy, and approve — you're giving your own sheet permission to receive rows.
  4. Grab the address (ends in /exec) and paste it into question 6 above.
🛟

If something looks wrong

  1. Empty report — job sites sometimes cold-shoulder automated visitors for a few hours. Try after lunch, or lower your cutoff.
  2. No email — nine times out of ten it's the password. Use the 16-character one, not your everyday one.
  3. Too many results — raise your cutoff to 45 or add deal-breakers.
  4. Changing answers later — open either file with any text editor; your answers sit at the top in plain text. Change, save, done.