Job search command center with live listings and pay context

By General Input

Run your saved job searches, drag every application through a pipeline board, and see what each role really pays before you apply.

Integrations

  • JSearch
  • Google Docs

Type

App

Categories

  • Personal Productivity
  • HR & People

I am job hunting and I want a command center I open every morning, replacing the Notion board or spreadsheet tracker I keep starting and abandoning. Build me an app with two surfaces I move between: a search view where I hunt for listings, and a pipeline board where I work the jobs I have already saved.

The search view is where I run saved searches against live JSearch listings. Let me define and store a set of named searches (things like "senior product designer in Austin" or "remote backend engineer") and run any of them on demand with Search Jobs. Note that JSearch has no separate location parameter on search, so the location has to be written inline in the query text itself. When I want to go deep past the first page of results, use Search Jobs (Cursor Pagination) and keep passing the returned cursor back on each follow up request until I stop asking for more. Show results as a scannable list with title, employer, location, posted date and the posted pay range when the listing includes one, and give every result a Save button.

Saving a job puts it on the pipeline board as a card in the Interested stage. Dedupe strictly by job id, because postings get relisted and reposted constantly and I never want the same job appearing as two cards. If a job I have already saved comes back in a later search, mark it as already tracked in the results rather than letting me save it a second time.

The pipeline board is the heart of the app. It has five stages: Interested, Applied, Interviewing, Offer and Closed. Every saved job is a card I can drag between stages, and the app records the date each card entered its current stage so it can reason about staleness later.

Each card shows the posted pay from the listing sitting right next to real market context, so I can judge a number immediately. Pull two comparisons: Estimate Salary for that job title in that location gives me the broad market rate, and Get Company Job Salary for that title at that specific employer tells me what this company actually pays. Display both next to the posted range. The card also carries the apply link and the full posting record from Get Job Details. JSearch is billed per request against a monthly quota, so fetch the job details and the two salary lookups once at the moment a job is saved, store the results alongside the card, and only refresh them when I explicitly ask, rather than re-fetching on every board load.

Anything sitting in Applied for seven days or more with no stage movement should surface in a "Needs follow up" group pinned to the top of the board, so the applications going quiet are the first thing I see each morning. Show the number of silent days on each of those cards.

Every card gets a "Prep this application" button that kicks off a background agent. The agent re-reads the full posting with Get Job Details and the salary picture from Estimate Salary and Get Company Job Salary, then writes a one page application brief into a new Google Doc. Create Document only produces a blank titled document, so the agent must create the doc first and then write the entire body with Batch Update Document. The brief covers four things: why I am a fit for this specific role, a tailored cover letter draft I can edit and send, the specific number I should ask for backed by the market and employer pay data, and a short list of sharp questions to ask the interviewer. When the agent finishes, the Google Doc link lands back on the card so I can open the brief straight from the board, and the card records when the brief was generated.

All board state lives in the app's own storage so everything persists between visits: my saved searches, every saved job and its current stage, the stage change dates, the cached detail and salary data, and the generated brief links. This is my personal tracker, so the state is per user. I should be able to move a card to Closed and have it drop out of the active stages without losing the record.

Related prompts

Explore more prompts
A searchable RFP answer library your bid team drafts fromRun your weekly Lever pipeline review and decide in the appLinkedIn creator sourcing and vetting workbench for B2BTurn outbound replies into objection themes you can fixVessel due diligence desk for pre-fixture screeningTurn any influencer campaign into a client-ready reportCompetitor hiring radar for talent acquisition teamsOffer desk that prices one role against the live marketTrack which pages and brands win your buyers' questionsBenchmark your Instagram account against rival brands