Skip to content
Notion Arena
HomeComponentsBusiness & CRMJob Application Tracker
🧳
💼 Business & CRMFreeNative recipe

Job Application Tracker

Applied → Interviewing → Offer, with outreach templates and a follow-up view.

Version
v1.0.1
Updated
2026-08-24
Plan
Free

The install plan

Exactly what Notion Arena sends to Notion, in order. Notion's data-source model forces two passes: relations, rollups and the formulas that read them need data_source_ids that only exist once the databases do.

16
requests
7
manual steps
1POST
/v1/pages

Create the “job-tracker” container page under the page you chose

2POST
/v1/databases

Create the “Companies” database with 8 base properties

3GET
/v1/databases/{companies_database_id}

Read back Companies to get its default data source id

4PATCH
/v1/data_sources/{companies_data_source_id}

Add 1 deferred properties to Companies: relations (with resolved data_source_ids), then the rollups and formulas that read them

5POST
/v1/databases

Create the “Applications” database with 10 base properties

6GET
/v1/databases/{applications_database_id}

Read back Applications to get its default data source id

7PATCH
/v1/data_sources/{applications_data_source_id}

Add 5 deferred properties to Applications: relations (with resolved data_source_ids), then the rollups and formulas that read them

8POST
/v1/views

Create the “Pipeline” board view on applications

9POST
/v1/views

Create the “Follow up” table view on applications

10POST
/v1/views

Create the “Interviews” calendar view on applications

11POST
/v1/views

Create the “Active” list view on applications

12POST
/v1/views

Create the “Company shortlist” gallery view on companies

13POST
/v1/pages

Seed 1 rows into Companies so the views are not empty on first open (one request per row; Notion has no bulk insert)

14POST
/v1/pages

Seed 1 rows into Applications so the views are not empty on first open (one request per row; Notion has no bulk insert)

15POST
/v1/pages

Create the “Templates” page

16PATCH
/v1/blocks/{templates_page_id}/children

Append 3 blocks of page body

2 steps cannot be scripted: Automation: nudge yourself to follow up; Recurring template: weekly job-search review.

Run it yourselfNotion-Version 2026-03-11
curl -X POST https://notionarena.vercel.app/api/install \
  -H 'content-type: application/json' \
  -d '{
    "component": "job-tracker",
    "mode": "plan"
  }'

# add "token" and "parentPageId" and switch to "mode": "api" to install for real

What gets created

The real property schemas, not a description of them. Every formula below is a Notion Formula 2.0 expression you can paste into a property by hand if you would rather not use the API at all.

🏢

Companies

ref: companies
1× title1× url4× select2× rich_text1× relation
Namen/a
Websiten/a
Size1-10 · 11-50 · 51-200 · 201-1000 +1
IndustrySoftware · Finance · Agency · Nonprofit +1
Salary bandn/a
RemoteRemote · Hybrid · Onsite
Would I enjoy this?1 · 2 · 3 · 4 +1
Applications→ applications (two-way)
Notesn/a
🧳

Applications

ref: applications
1× title4× rich_text1× status1× relation3× date1× select4× formula
Namen/a
Rolen/a
StageResearched → Applied → Screening → Interviewing +4
Company→ companies
Applied onn/a
Last contactn/a
Next stepn/a
Interview daten/a
Locationn/a
Contact personn/a
SourceReferral · Job board · Direct · Recruiter
Days since contactif(empty(prop("Last contact")), dateBetween(now(), prop("Applied on"), "days"), dateBetween(now(), prop("Last contact"), "days"))
Follow upifs(prop("Stage") == "Accepted" or prop("Stage") == "Rejected", "", prop("Days since contact") > 10, "🔴 Chase now", prop("Days since contact") > 5, "🟡 Nudge", true, "🟢 Recent")
Stage age (days)dateBetween(now(), prop("Applied on"), "days")
Interview scheduledif(empty(prop("Interview date")), false, prop("Interview date") >= now())

Views

Created through POST /v1/views, which shipped in March 2026 and is the reason provisioning a workspace from code finally works end to end.

Pipelineboard

on applications

Follow uptable

on applications

filter: {"property":"Follow up","string":{"contains":"🔴"}}…

Interviewscalendar

on applications

filter: {"property":"Interview scheduled","checkbox":{"equals":true}}…

Activelist

on applications

filter: {"property":"Stage","group_does_not_equal":"Complete"}…

Company shortlistgallery

on companies

Documentation pages

Appended with real block types (headings, toggles, callouts, to-dos, column lists) in chunks of 100, the Append block children limit.

✉️Templates3 blocks
Cold outreach

Subject: <role>: <one specific thing about their product>

Hi <name>,

<Two sentences: what you noticed about them, and the specific problem you have solved that matches. No preamble, no flattery paragraph.>

<One sentence on the most relevant thing you have shipped, with a number in it.>

Would a 20-minute call next week be useful? I am free <two concrete slots>.

<Name>

Interview debrief: fill within an hour
What they asked
•Question 1: how I answered, what I would answer now
What I learned about the role
•Real scope, real team size, real manager
Signals
SignalPositive / negativeEvidence
Follow-up
Send thank-you within 24 hours
Log Last contact on the application
Offer comparison
Offer AOffer B
Base
Equity / bonus
Remote policy
Manager, and would I work for them again?
What I would learn
Commute and hours per week
Weighted score (1-5 × weight)

The parts the API cannot do

Every recipe ships with its manual steps written out, because pretending the API covers everything is how people end up with a half-built workspace. These are real Notion limitations, quoted from the API reference.

Automation: nudge yourself to follow up

Database automations have no public API surface. They are configured per-database in the Notion app under ••• → Automations.

  1. 1Applications → Automations → New automation.
  2. 2Trigger: Last contact is more than 7 days ago (use a date-based trigger, or a recurring daily check).
  3. 3Condition: Stage is not in the Complete group.
  4. 4Action: add a comment “Chase today”, and optionally a Notion reminder on Next step.

Recurring template: weekly job-search review

Recurring database templates (daily/weekly/monthly) are configured in the app on the template's ••• menu; the API can create pages from a template but cannot schedule recurrence.

  1. 1Create a “Weekly review” database template with linked views: Follow up, Interviews (next 14 days), Pipeline.
  2. 2Template ••• → Repeat → Every Sunday at 18:00.
  3. 3Body prompt: how many applications, how many conversations, what is the conversion rate, and what changes next week.

About this component

A job search as a pipeline. Companies and Applications databases, a status board, a calendar of interviews, follow-up formulas that flag silence after N days, and page templates for outreach emails and interview debriefs.

What it does

  • Follow-up formula that surfaces applications gone quiet
  • Offer comparison template with a weighted score
  • Calendar view for interviews with a location property
  • Conversion-rate rollup: applications → interviews → offers

Where people put it

↳Active job seekers
↳Career coaches running several clients
↳Students applying to graduate programmes

Pairs well with

All in Business & CRM
🧮

ROI Calculator

Sliders in, a payback chart out, for proposals and sales pages.

BusinessFreeWidgetv1.0.1
💵
New

Monthly Budget Planner

Compare monthly income against four editable expense buckets.

BusinessFreeWidgetv1.0.0
📦
New

Inventory Counter

Adjust a small item list with plus and minus stock controls.

BusinessFreeWidgetv1.0.0