WorkNextMove

More than 50 career sites, one letter a weekday.

Client
NextMove, our own product
Sector
Careers
Timeline
March 2024 to September 2026
Status
Private beta, by invitationThe website is live. The daily jobs are not running now.
Website
nextmove.jobs
NextMove’s landing page, with the headline “Stop refreshing career pages.” beside a sample letter
The landing page on a phone, with the sample letter under the headline
The live landing page, which opens on a sample edition of the letter.

NextMove is our own product: the new US tech roles at the companies you follow, in one email every weekday. We designed it and built everything behind it, from the scrapers and the matching to the letter and the website.

In numbers

Counted in the code and its commit history on 29 September 2026.

Every company posts its roles in its own place, in its own format.

If you want a job at a particular company, you end up refreshing its careers page: a Workday site here, a Greenhouse board there and custom sites for the largest employers. Job boards repeat those roles later, second-hand and mixed with noise.

NextMove’s idea is simple to say. Read each company’s own career site every day, keep only the new US tech roles, and send them in one short letter, sorted by role, level and city.

The problems behind NextMove are the ones behind a busy online store.

In NextMoveThe same problem in a store
Many sourcesMore than 50 career sites, each in its own formatSuppliers, marketplaces and a warehouse, each with its own feed
A source with no feedMeta has no feed, so a headless browser reads the pageA supplier with no API is the same job
One clean catalogueOne name for each city, one level for each title and no repostsOne record for each product, one set of sizes and no duplicates
Search“Remote senior engineer at Cloudflare”, read into filters you can see and change“Fragrance-free moisturiser under €30”, read the same way
Payments and accountsTwo Stripe plans (off during the beta), invoices, card management and verified accountsCheckout, subscriptions and customer accounts
Jobs on a scheduleRead, clean, compile and send, in order, with a status page for every sourceStock, price and order syncs, in order, with a status page for every supplier

From here the page goes into how it works, then a chapter for each thing we built. If your store has these problems, write to us; you don’t need to read on first.

The route a new role takes, from a career site to a reader’s inbox.

The stages never call each other. Each one writes to one MongoDB Atlas database, the next one reads what it wrote, and a scheduler runs them in order, so each one can be run, fixed or replaced on its own.

In Orange, the route a new role takes, numbered as the steps are. A is the news that joins it and B is the website. Between any two stages, work waits in the database; dashed lines are data written to it or read from it.
How NextMove worksA new role’s route, in Orange: career sites are read every morning (1), cleaned and matched (2), enriched (3), compiled into one edition for each reader (4) and sent to the reader’s inbox every weekday (5). Stages 1 to 4 never call each other: each writes to one MongoDB Atlas database, the next reads from it, and a scheduler runs them in order. A feed of tech newsletters is split into stories every hour and picked by industry every day (A), and joins the editions at 4. The website (B) reads the roles from 3 for Explore and the editions from 4 for the Letter, and writes the reader’s choices, which 4 reads.roles, for Exploreeditions, for the Letterthe reader’s choicesCareer sites59 companiesReadevery morning1Clean and match24 role families, US only2Enrichplace, level and pay3Compile editionsone for each reader4Inboxsent every weekday5Newslettersone feed of tech newsASplit into storiesevery hourPick by industry10 industries, dailyMongoDB Atlaseach stage writes here, and the next one reads itThe websiteExplore and the LetterB
How NextMove worksA new role’s route, in Orange: career sites are read every morning (1), cleaned and matched (2), enriched (3), compiled into one edition for each reader (4) and sent to the reader’s inbox every weekday (5). Stages 1 to 4 never call each other: each writes to one MongoDB Atlas database, the next reads from it, and a scheduler runs them in order. A feed of tech newsletters is split into stories every hour and picked by industry every day (A), and joins the editions at 4. The website (B) reads the roles from 3 for Explore and the editions from 4 for the Letter, and writes the reader’s choices, which 4 reads.reads what 3 and 4 wrote,writes the reader’s choices, for 4Career sites59 companiesReadevery morning1Clean and match24 role families, US only2Enrichplace, level and pay3Compile editionsone for each reader4Inboxsent every weekday5Newslettersone feed of tech newsSplit into storiesevery hourPick by industry10 industries, dailyMongoDB Atlaseach stage writes here, and the next one reads itThe websiteExplore and the LetterBAThe news
  • Step 1

    Read

    59 career sites: 27 on Workday, 25 on Greenhouse and seven of their own. Chapter 02 has the details.

  • Step 2

    Clean and match

    Reposts dropped, tech roles kept and sorted into 24 families, US only. Chapter 03 has the five passes.

  • Step 3

    Enrich

    Places, a level, a description in one format and an estimated pay range.

  • Step 4

    Compile

    One edition for each reader, from their companies, role families, levels and cities.

  • Step 5

    Send

    Every weekday. Monday’s gathers the weekend.

  • Branch A

    The news

    Split into single stories every hour, then picked for 10 industries once a day.

  • Branch B

    The website

    Explore searches the roles from 3 and the Letter shows the editions from 4. What a reader picks in Settings shapes their next edition.

The letter is the product, so we designed everything around it.

The website opens on a sample edition of the letter. The wordmark’s o is a search pill; grown, the same pill is the search field, and set on a rule it is the only ornament on the page. Gabarito sets the headings, Rethink Sans the text and Martian Mono the dates and data. Coral marks the one action on each page.

Contrast
All text on the landing and sign-in pages passed a WCAG AA contrast audit, run with axe on 29 September 2026 at a desktop and a phone width.
Speed
Over a slow 4G connection, with the processor slowed four times, the landing page shows its largest element in 2.1 seconds. That is the median of five runs on 29 September 2026.

The wordmark The o is the search pill.

The NextMove wordmark, with a search pill for the o

Headings Gabarito

“Stop refreshing career pages.” set in Gabarito

Text Rethink Sans

A sentence set in Rethink Sans

Dates and data Martian Mono

“The career sites NextMove reads” set in Martian Mono
The search field, in coral, reading “remote senior engineer at Cloudflare”
The brand’s pieces, at the size the website sets them. Below, the pill grown into the search field.

Read at the source, not second-hand.

Integrations
We built integrations for the two job-board platforms most of these companies use: Workday, for 27 of them, and Greenhouse, for 25. We also wrote scrapers for seven companies with sites of their own: Google, Meta, Netflix, Microsoft, Apple, Stripe and Amazon.
Feed or page
Where a site publishes a data feed, we read the feed. Where it doesn’t, we read the page. Meta has no feed, so a headless browser reads it.
Generated selectors
For Greenhouse boards and Apple, a language model writes the page selectors. Each run checks they still work before it relies on them.
Monitoring
Every run records, for each company, how many roles it found and whether it finished. The status page shows the last run of every source.
NextMove’s status page: Minor Service Issues across 59 services, then the first four Workday companies, with Activision, AT&T and Bose at 100% and Adobe at 0%Sample data, not live
The status page, grouped by platform, cropped to the first four of 59 sources. In this sample, one of them, Adobe, failed on its last run.

Five passes before anyone sees a role.

  1. Duplicates

    A fingerprint of company, title and places drops reposts.

  2. Tech roles

    A quick keyword pass, then a vector search that places each role in one of 24 role families, from software and machine learning to product, design, data and sales.

  3. Relevance and place

    A language model confirms each match, and that the role is in the United States.

  4. Places

    Locations are mapped to a list of 164 US cities and the 50 states. “SF”, “Bay Area” and “San Francisco, CA” become one place.

  5. Level, description and pay

    Each role gets a level (entry, mid, senior or senior leadership), a description in one consistent format and an estimated pay range.

As the career site publishes it

Company
Cloudflare
Title
Systems Engineer, Workers Runtime
Locations
Austin, TX; Remote - US; US-TX-Austin
Level
Not stated
Pay
Not stated
Posted
28 September 2026

What the five passes found

  1. New: not seen before
  2. Software engineer
  3. In the United States
  4. Austin, TX and Remote (US)
  5. Mid level

As the letter shows it

The same role in a letter: Cloudflare, Systems Engineer, Workers Runtime, Austin, TX +1, Mid Level, with its source and date, a link to the posting and a Save button
One sample posting, before and after the five passes. Sample data.

One edition for each reader, every weekday.

A whole NextMove email from daily@nextmove.jobs: Your Daily NextMove, Tuesday, September 29, 2026, 9 new roles at 6 of your companies, grouped by role family, each with its company, title, place, level, source and a link to the posting; then the news from the reader’s industries, startup funding news, a button to open the letter on the website and links to change the letter or unsubscribeOur design, with sample data
The end of the same email on a phone: the news from the reader’s industries, startup funding news, a button to open the letter on the website and links to change the letter or unsubscribe
Our design for the weekday email, made to match the website. Sample data.
Editions
Every day we compile one edition for each reader: their companies, role families, levels and cities. It adds the day’s startup funding news and up to five stories for each industry they follow.
Timing
The email goes out every weekday. Monday’s gathers Friday to Sunday into one weekend roundup, with repeats removed.
News
The news comes from a feed of tech newsletters. A language model splits each issue into single stories, and another picks the ones that matter to job seekers in each of 10 industries.
On the website
The same edition appears there as the Letter, and the reader changes what goes in it from the links at the foot.

Ask for a role the way you’d say it.

Explore
Type a sentence such as “remote senior engineer at Cloudflare”. A language model reads it into filters you can see and change. Each plan has its own search limit.
The Tracker
It moves each saved role from saved to applied, interviewing and offer.
Accounts and payments
Accounts have email verification and password reset. Stripe handles two plans, monthly or yearly, with invoices and card management. Paid plans are switched off during the beta.
Explore’s search field reading “remote senior engineer at Cloudflare”, read as four filters: Company Cloudflare, Level Senior, Where Remote and Role Engineer; below them, 12 open roles for the search, starting with Cloudflare’s Senior Systems Engineer, Workers RuntimeSample data
Explore reads the sentence as filters, each of which can be removed, and lists what it finds.
The Tracker, with saved roles moving from saved to applied, interviewing and offerSample data
The Tracker: every application in one place.
The Letter on a phone
Explore on a phone
The Tracker on a phone
Settings on a phone, where the reader picks industries
The Letter, Explore, the Tracker and Settings on a phone. Sample data.

Scheduled jobs run the day in order.

Scheduled jobs on Heroku run the stages in order, and each stage reads what the one before it wrote in MongoDB Atlas, whose vector search also does the matching. The website runs on Vercel and reads the same database.

A weekday, in UTC

  1. Step 1Read the career sites
  2. Step 2Step 3Clean, match and enrich
  3. Branch ASplit the news into stories
  4. Branch APick the news for 10 industries
  5. Step 4Compile the editions
  6. Step 5Send the letterat noon in New York in summer, 11:00 in winter
The schedule as recorded in October 2025. Steps 2 and 3 have no time of their own: they start when 1 ends. The website is live, and the daily jobs are not running now.

Built with

The website
Next.js, React and Tailwind CSS, on Vercel
The daily jobs
Python, run in order on Heroku
The data
MongoDB Atlas, with vector search
Language models
OpenAI
Email
Brevo
Payments
Stripe

A first version in 2024, and a four-month rebuild in 2025.

  1. 15 March 2024

    The first scraper, for Workday job sites.

  2. 29 March 2024

    The first email integration.

  3. 18 April 2024

    The website starts, with accounts and a dashboard.

  4. September to December 2025

    The rebuild:

    • Stripe subscriptions and Brevo email
    • Companies and roles managed from the database
    • Health checks for every source
    • Seven custom scrapers
    • The weekend roundup
    • Level, place, description and pay for every role
    • Explore on 3 November and the Tracker on 30 November
  5. September 2026

    The website as it is now, and the private beta.

NextMove is in private beta, open by invitation. Accounts, the letter, search and the Tracker are built. Paid plans are built too, and switched off during the beta.

Design and engineering
OrangeGrass

If your store pulls from many systems and needs them to agree, we’d like to hear about it.

Write a few lines: what you sell or do, what you have online now, if anything, and when you need the new site. We reply within two working days with questions, then a fixed scope and price.

hello@orangegrass.io

While we build, you review real pages on your own phone.

Or call +381 65 300 4822.