* documentation writing skill * visa sponsors page * overview * in progress board * settings * reactive resume section * database backups * workflows * post application tracking flow * manual tracking caveats * pricing section * pipeline run detalis * job search bar * keyboard shortcuts * bulk actions * no informal phrasing * formatting * build fix? * Update docs-site/docs/features/overview.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update docs-site/versioned_docs/version-0.1.20/features/orchestrator.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update docs-site/docs/features/visa-sponsors.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update docs-site/docs/features/in-progress-board.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * remove link to page that don't exist --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
142 lines
4.0 KiB
Markdown
142 lines
4.0 KiB
Markdown
---
|
|
id: post-application-workflow
|
|
title: Post-Application Workflow
|
|
description: Track post-application progress manually, or configure automatic Gmail syncing and inbox review.
|
|
sidebar_position: 2
|
|
---
|
|
|
|
## Goal
|
|
|
|
After a job is marked `applied`, use this workflow to track what happens next.
|
|
|
|
You have two valid paths:
|
|
|
|
- **Manual tracking**: update stages/events yourself.
|
|
- **Automatic Gmail sync**: let email ingestion route events into inbox/review flow.
|
|
|
|
## Option A: Manual event tracking
|
|
|
|
Use this when you want explicit, hands-on control for each job.
|
|
|
|
### Manual flow
|
|
|
|
1. Open an `applied` or `in_progress` job.
|
|
2. Record stage progress as events (screening, interview, offer, closed, etc.).
|
|
3. Keep notes/outcomes current as conversations progress.
|
|
4. Use In Progress Board for high-attention jobs in later stages.
|
|
|
|
### API example (manual stage transition)
|
|
|
|
```bash
|
|
curl -X POST "http://localhost:3001/api/jobs/<jobId>/stages" \
|
|
-H "content-type: application/json" \
|
|
-d '{
|
|
"toStage": "technical_interview",
|
|
"metadata": {
|
|
"actor": "user",
|
|
"eventType": "status_update",
|
|
"eventLabel": "Moved to Technical Interview"
|
|
}
|
|
}'
|
|
```
|
|
|
|
## Option B: Automatic Gmail syncing
|
|
|
|
Use this when you want JobOps to ingest recruitment emails and suggest/apply updates.
|
|
|
|
### High-level flow
|
|
|
|
1. Connect Gmail provider.
|
|
2. Run sync (or scheduled sync, depending on setup).
|
|
3. Smart router scores message-to-job match.
|
|
4. High confidence updates are auto-linked.
|
|
5. Mid/low confidence items go to inbox for review.
|
|
|
|
### Configure Gmail sync
|
|
|
|
Set OAuth variables:
|
|
|
|
```bash
|
|
GMAIL_OAUTH_CLIENT_ID=...
|
|
GMAIL_OAUTH_CLIENT_SECRET=...
|
|
GMAIL_OAUTH_REDIRECT_URI=https://your-domain.com/oauth/gmail/callback
|
|
```
|
|
|
|
Then in app:
|
|
|
|
1. Open Tracking Inbox / provider controls.
|
|
2. Start Gmail OAuth.
|
|
3. Complete consent.
|
|
4. Trigger sync and review inbox items.
|
|
|
|
### API examples (Gmail path)
|
|
|
|
```bash
|
|
# Start OAuth
|
|
curl "http://localhost:3001/api/post-application/providers/gmail/oauth/start?accountKey=default"
|
|
```
|
|
|
|
```bash
|
|
# Exchange authorization code
|
|
curl -X POST "http://localhost:3001/api/post-application/providers/gmail/oauth/exchange" \
|
|
-H "content-type: application/json" \
|
|
-d '{"accountKey":"default","state":"<state>","code":"<code>"}'
|
|
```
|
|
|
|
```bash
|
|
# Trigger provider sync action
|
|
curl -X POST "http://localhost:3001/api/post-application/providers/gmail/actions/sync" \
|
|
-H "content-type: application/json" \
|
|
-d '{"accountKey":"default","maxMessages":100,"searchDays":30}'
|
|
```
|
|
|
|
```bash
|
|
# Review inbox
|
|
curl "http://localhost:3001/api/post-application/inbox?provider=gmail&accountKey=default"
|
|
```
|
|
|
|
```bash
|
|
# Approve inbox item
|
|
curl -X POST "http://localhost:3001/api/post-application/inbox/<messageId>/approve" \
|
|
-H "content-type: application/json" \
|
|
-d '{"provider":"gmail","accountKey":"default"}'
|
|
```
|
|
|
|
```bash
|
|
# Deny inbox item
|
|
curl -X POST "http://localhost:3001/api/post-application/inbox/<messageId>/deny" \
|
|
-H "content-type: application/json" \
|
|
-d '{"provider":"gmail","accountKey":"default"}'
|
|
```
|
|
|
|
## Which option should you use?
|
|
|
|
- Choose **manual** if your volume is low and you want direct control.
|
|
- Choose **automatic Gmail sync** if your volume is higher and you want less repetitive triage.
|
|
- Many users combine both: auto-sync first, manual adjustments for edge cases.
|
|
|
|
## Common problems
|
|
|
|
### Gmail connected but no messages appear
|
|
|
|
- Verify OAuth credentials and redirect URI.
|
|
- Confirm you are syncing the intended account key.
|
|
- Check search window (`searchDays`) and message cap (`maxMessages`).
|
|
|
|
### Wrong job matched
|
|
|
|
- Expected in lower-confidence buckets.
|
|
- Deny incorrect inbox items and apply manual stage updates where needed.
|
|
|
|
### I prefer not to grant Gmail access
|
|
|
|
- Use the manual tracking path only.
|
|
- The post-application workflow still works without Gmail integration.
|
|
|
|
## Related pages
|
|
|
|
- [Find Jobs and Apply Workflow](./find-jobs-and-apply-workflow)
|
|
- [Post-Application Tracking](../features/post-application-tracking)
|
|
- [In Progress Board](../features/in-progress-board)
|
|
- [Overview](../features/overview)
|