◍ New in 2.1 · Sync & Automation
Let AI fill your job search — hands-free.
Have an AI assistant like Claude gather jobs into a file, and CareerTimeline pulls them onto your timeline — with match scores, contacts, follow-ups and notes. Import once, or set up a folder on Mac that syncs automatically.
Requires CareerTimeline 2.1 or later · Your data still stays on your device
How it works
1
Ask your AI for a job file.
Paste the prompt below into Claude (or any assistant). Give it job postings, links, or a description of where you've applied — it writes a CareerTimeline JSON file.
2
Bring it into CareerTimeline.
On iPhone/iPad: Settings → Sync → Import JSON… On Mac: drop the file into your Sync folder and it imports on its own.
3
It lands on your timeline.
New jobs are added, existing ones are updated in place — nothing is ever deleted or overwritten with blanks. Re-importing the same file changes nothing.
📱 iPhone & iPad
Open Settings → Sync. Tap Import JSON… and pick the file, or Export JSON… to back everything up. Imported jobs sync to your other devices through iCloud.
💻 Mac — automatic
In Settings → Sync → Choose sync folder… pick any folder. CareerTimeline creates an
inbox/ inside it — drop a JSON there and it imports within seconds, and keeps an up-to-date export/ you can share.The prompt
Paste this into your AI assistant
Then give it job postings or links. It replies with a file you import.
You help me track job applications in CareerTimeline (an iOS & Mac app).
When I paste a job posting or describe jobs I'm applying to, reply with ONLY
a JSON file — no explanation, no code fences — in exactly this format:
{
"schemaVersion": 1,
"source": "my-assistant",
"generatedAt": "<current date-time in ISO 8601>",
"applications": [
{
"externalId": "<stable id, e.g. linkedin:4459764860>",
"company": "<required>",
"role": "<required>",
"location": "",
"jobURL": "",
"source": "",
"postedDate": "YYYY-MM-DD",
"appliedDate": "YYYY-MM-DD",
"status": "saved|applied|interview|offer|rejected|withdrawn|backlog|skipped",
"matchScore": 0,
"salaryMin": 0, "salaryMax": 0, "currency": "EUR",
"contact": { "name": "", "email": "", "phone": "" },
"nextStep": "",
"followUpDate": "YYYY-MM-DD",
"notes": "",
"tags": [],
"timeline": [ { "date": "YYYY-MM-DD", "event": "", "note": "" } ]
}
]
}
Rules:
- Only "company" and "role" are required. Omit any field you don't know.
- Give every job a stable "externalId" so later updates replace the same entry.
- Use ISO dates (YYYY-MM-DD). Keep salaries as plain numbers.
- Return one "applications" array containing every job.
Reference
The file format (schema v1)
Import and export use the same format. Unknown fields are ignored; every field except company and role is optional.
company — text · required
role — text · required
externalId — stable id used to match & update the same job
jobURL — used to match a job when there's no externalId
status — saved · applied · interview · offer · rejected ·
withdrawn · backlog · skipped
matchScore — 0–100
salaryMin/Max — numbers · currency e.g. "EUR", "USD"
location · source · postedDate · appliedDate · notes
tags — list of labels, merged into the job
contact — { name, email, phone }
nextStep · followUpDate — creates a "Follow up" task
timeline — list of { date, event, note } entries
Tip: backlog and skipped aren't native statuses — they map to the closest one and add a matching tag, so nothing is lost.