Overview
13 interactive panels: one connected intelligence layer
All panels respond to the same global filter bar simultaneously. Clicking any bar or segment in any panel navigates directly to the Jobs page with the corresponding filter pre-applied. Panels are draggable, resizable, and togglable per user preference.
Drill-through behavior: When you click a bar in "Jobs by Market," the Jobs page opens filtered to that exact market. Click a skill in "Top Skills" and Jobs filters to that skill. This works across every chart-based panel. The dashboard and Jobs page share a live filter connection.
Dashboard-level filters
Market
Source / Portal
Time Period (7/14/30/60/90 days)
Role Category
Seniority
Work Setting
All 13 panels update simultaneously when any dashboard filter changes. Active filter count badge shown. One-click reset.
All 13 Panels
Panel reference
Every panel that appears on the dashboard, what it shows, and how it connects to the rest of the product.
📌
Stats Overview
4 KPI tiles: Total Jobs, Enriched, New Today, Companies. Each tile is clickable: clicking navigates to the Jobs page filtered to that specific subset (e.g., clicking "New Today" shows only today's harvested jobs).
Drill-through on each tile
🔭
Job Explorer
6-level interactive drill-down bar chart. Levels: Market Segment → Work Setting → Role → Skill → Seniority → Source. Breadcrumb navigation at top. Clicking Source level navigates to Jobs filtered by that source. Users can jump back to any prior level via breadcrumb.
Drill-through at source level
📸
Job Snapshot
User-configurable bar chart. Metric: Seniority, Role Category, Work Setting, or Source/Portal. Chart style: Horizontal Bar or Vertical Column. User picks both in Settings. Clicking a bar navigates to Jobs filtered by the clicked value.
User-configured metric + style
🧠
Top Skills
Horizontal bar chart of the top 15 skills in the current filtered view. Clicking a skill bar opens Jobs page filtered by that skill. Ranked by job count across the current period.
Drill-through by skill
🏢
Top Companies
Horizontal bar chart of the top 15 hiring companies by job count in the current filtered view. Clicking a company navigates to Jobs filtered to that company's postings.
Drill-through by company
📍
Top Locations
Horizontal bar chart of the top 15 job locations by count. Clicking a location navigates to Jobs filtered by that location. Useful for identifying where consultant placements are most likely.
Drill-through by location
🌐
Jobs by Source
Horizontal bar chart showing job counts per source portal (Indeed, LinkedIn, Dice, etc.). Clicking a source bar navigates to Jobs filtered to that portal. Shows relative volume contribution per source.
Drill-through by source
🗂
Role Categories
Horizontal bar chart of up to 10 role categories (data science, engineering, AI research, etc.), multi-colored for quick visual comparison. Clicking a category navigates to Jobs filtered by that role category.
Drill-through by role
📶
Seniority
Vertical column chart showing job volume by seniority level (intern through executive). Click a column to open Jobs filtered to that seniority. Gives a fast read on whether the market skews junior or senior.
Drill-through by seniority
📈
Jobs Over Time
Line chart showing daily job count over the selected period (7/14/30/60/90 days). Shows market velocity: are req volumes growing, shrinking, or stable? Reflects current dashboard filter state.
Trend view (no drill-through)
🌍
Jobs by Market
Horizontal bar chart with country flags showing job counts per market. Clicking a market bar navigates to Jobs scoped to that geography. Shows where demand is concentrated across your licensed markets.
Drill-through by market
🏠
Remote vs Onsite
Horizontal bar showing the split between Remote, Hybrid, On-site, and unknown work settings in the current filtered view. Distinctly color-coded. Click a bar to filter Jobs by work setting.
Drill-through by work setting
🗺
Market Explorer
A second drill-down panel (companion to Job Explorer) with 4 levels: Markets → Work Setting → Job Category → Location. Clicking a Location at level 4 opens Jobs filtered by that specific location. Designed for geographic bench-to-req scouting.
Drill-through to location at level 4
Multi-Level Sort
Sort by up to 3 criteria simultaneously
Each sort level is independent and has its own Asc/Desc direction. Active sort levels are shown as superscript badges (¹ ² ³) directly on the column headers. Sort state can be saved as a persistent default.
1
Primary sort
Main ordering: e.g., by Match Score descending or Posted Date newest-first.
2
Secondary sort
Breaks ties in the primary sort: e.g., then by Salary range descending.
3
Tertiary sort
Final tiebreaker: e.g., then by Location alphabetically.
Save as Default: Any combination of sort levels can be saved as the user's persistent default, applied automatically every time the Jobs page is opened, until changed.
Job Columns
20 columns: configurable visibility
The Title/Company column is always visible and locked. All other 19 columns can be toggled on or off per user. Column visibility is saved to Settings as a persistent default.
| Column |
Display Label |
Sortable |
Notes |
title | Title / Company | ✓ Sortable | Fixed, always visible. Combined title + company cell. |
location | Location | ✓ Sortable | City, state, or remote indicator. |
job_category | Category | ✓ Sortable | Technology, Healthcare, Finance, Engineering, etc. |
job_subcategory | Subcategory | ✓ Sortable | Free-text subcategory within the main category. |
seniority | Seniority | ✓ Sortable | Intern → Entry → Mid → Senior → Lead → Principal → Manager → Director → VP → Executive. |
remote | Work Setting | ✓ Sortable | Remote / Hybrid / On-site. |
employment | Emp. Type | Not sortable | Full-time, Part-time, Contract, Internship, Third-party. |
developer_type | Dev Type | Not sortable | Backend, Frontend, Fullstack, AI/ML, Data, DevOps, Mobile. |
work_auth | Sponsorship | Not sortable | Willing to Sponsor / Citizens Only. |
education | Education | Not sortable | None, Bachelor's, Master's, PhD. |
skills | Skills | Not sortable | Top extracted skill chips from the job posting. |
source | Source | ✓ Sortable | Indeed, LinkedIn, Dice, Direct, etc. |
source_job_id | Job ID | Not sortable | Source portal's own identifier for the posting. |
posted | Posted Date | ✓ Sortable | Date the job was posted at the source. |
scraped | Harvested | Not sortable | Date JobSeam first harvested this posting. |
salary | Salary | ✓ Sortable (by min) | Pay range where published. Sorted by salary_min. |
role | Role Category | ✓ Sortable | data_science, js_engineering, ai_research, software_engineering, etc. |
market | Market | ✓ Sortable | Geographic market (US, UK, etc.). |
flags | Flags | Not sortable | User-set status: Applied (green), Rejected (red), Maybe (amber), Revisit (purple). |
extract_via | Extract Via | Not sortable | System admin only: extraction method used for this job. |
Active Filters
22+ filter dimensions, all active simultaneously
All filters apply at the same time. Active filter count is shown in a badge. "Save as Default" persists the current filter state for future sessions.
Text / Autocomplete
Free text Title or Company search
Autocomplete Location
Autocomplete Skill
Free text Subcategory
Multi-select Dropdowns
Source portal (multi-select)
Market (dropdown)
Job Category (13 categories)
Seniority (10 levels)
Role Category (9 types)
Quick-select Chips
Work Setting: Remote · Hybrid · On-site
Employment: Full-time · Part-time · Contract · Internship · Third-party
Employer Type: Direct Hire · Recruiter · Other
Work Auth: Willing to Sponsor · Citizens Only
Dev Type: Backend · Frontend · Fullstack · AI/ML · Data · DevOps · Mobile
Education: None · Bachelor's · Master's · PhD
Posted Within: Any · Today · 3d · 5d · 1w · 2w · 1 month
Range / Date
Date From / Date To (harvest date)
Pay Range (min USD/yr + max USD/yr)
Boolean Toggles
Promoted only
Reposted only
Enriched only
Filter Insights Panel
Live breakdown of your current filtered view
A floating, draggable, minimizable panel that shows a faceted breakdown of the current page's results. Recomputes on every filter change. Shows count and percentage bar for each value across 6 facets.
Key behavior: The Insights panel reflects exactly what's currently shown in the job list, including all active filters. Change a filter, and the Insights panel updates immediately. This lets you understand the composition of your current search in real time without opening a separate report.
By Category
Job counts and % split across Technology, Healthcare, Finance, Engineering, and all other job categories in the current view.
By Source
How many jobs came from Indeed, LinkedIn, Dice, Direct, and other portals in the current filtered results.
By Work Setting
Remote vs. Hybrid vs. On-site split for the current view. Instantly shows whether the filtered role/market skews remote.
By Seniority
Seniority level distribution across all jobs in the current filter: useful for spotting whether a skill or market skews junior or senior.
By Market
Geographic market breakdown of the current results. Helpful when filtering by skill to see which markets have the most matching demand.
By Employment Type
Full-time vs. Contract vs. Internship vs. other employment types in the current filtered view.
Reading Pane & Interaction
Other jobs page features
A full set of power-user features for the day-to-day bench sales workflow.
- Split reading pane: Horizontal (below) or vertical (right) layout. Drag the handle to resize. Full job detail without leaving the list view.
- Floating job detail popup: Gmail-compose-style draggable and resizable window. Open multiple jobs side by side.
- Keyboard navigation: ↑/↓ arrow keys move between rows. Instant detail update in reading pane without mouse.
- Right-click context menu: Flag as Applied / Rejected / Maybe / Revisit / Clear. Open Activity & Notes. Open Global Activity Log. Open original job URL.
- Job status indicators: Unread/Read state per row. Color-coded flag strip (green=Applied, red=Rejected, amber=Maybe, purple=Revisit).
- Candidate match count: Each job row shows how many consultant matches exist for it, with a 🎯 link to the Match page pre-loaded with that job.
- Track as Req: Button in reading pane creates a private requisition from any job, connecting the public Jobs market intelligence to the internal req pipeline.
- Activity & Notes panel: Per-job notes and submission history. Accessible from right-click or reading pane.
- Import modal: Bulk import jobs via the ↗ Import button.
- Rows per page: 20 / 50 / 100 rows. First / Previous / Next / Last pagination controls.
- Save as Default: Saves current filter state, column visibility, and all 3 sort levels as permanent defaults for the user.
User-Level Configuration
Every view is configurable and persistent
Settings are saved per user and applied automatically on every page load. No admin involvement needed for personal defaults. Group admins and system admins have additional governance controls.
Column Visibility Defaults
Toggle any of the 20 job columns on or off. Shortcuts: "All" or "None." Saved to profile: applied every time Jobs page opens.
- Toggle any column except Title (fixed)
- All / None shortcut buttons
- Persists across browser sessions
- Separate from other users on the same account
Default Filters
Set permanent defaults for every filter dimension. When you open Jobs, these filters are pre-applied.
- Seniority, Work Setting, Employment Type
- Employer Type, Work Auth, Developer Type, Education
- Posted Within, Market, Job Category, Role Category
- Source, Location, Skill, Date From/To, Subcategory
- Min/Max Salary, Promoted only, Reposted only
Default Sort (3 Levels)
Configure up to 3 sort levels as your permanent default. Applied automatically when Jobs page loads.
- Sort by: any of the 13 sortable columns
- Direction: Asc or Desc per level
- Level 2 and Level 3 optional tiebreakers
- Can also be set via "Save as Default" on the Jobs page directly
Overview Snapshot Panel
Configure what the Job Snapshot dashboard panel shows and how it renders.
- Metric to visualize: Seniority, Role Category, Work Setting, or Source/Portal
- Chart style: Horizontal Bar or Vertical Column
- Setting applies globally to your dashboard view
Dashboard Panel Layout
Control which of the 13 panels appear and how much space each takes.
- Toggle panel visibility on/off (per panel)
- Set each panel to full-width or half-width
- Layout saved per user
- Panels are also draggable on the dashboard itself
Job Searches (Pipeline Config)
Configure automated job harvest searches. Each search runs on a schedule and populates the Jobs feed.
- Per search: keywords, location, market, source portals
- hours_old (freshness cutoff), max_results, job_type
- remote_only toggle
- Enabled/disabled toggle per search
- Searches grouped by market in the UI
Security / Two-Factor Authentication
Each user controls their own 2FA enrollment. Once enabled, login requires both a password and a time-based one-time code (TOTP).
- TOTP-compatible (Google Authenticator, Authy, etc.)
- QR code setup flow in Settings → Security
- Short-lived session tokens scoped per user
- Disable and re-enroll any time from the same panel
Terminology Configuration
Every label in the platform that refers to the talent being matched is configurable per group.
- candidate_label: "Consultant," "Student," "Trainee," "Fellow," etc.
- Updates in all page titles, headers, filters, and table columns
- Advisor and pod labels also configurable
- No code change required. Set in Settings → Terminology
AI Pipeline
How the AI enrichment and matching engine works
JobSeam uses an LLM at two stages: enriching raw job data from scraped sources, and parsing uploaded consultant resumes into structured profiles. Both feeds into the same matching engine.
- Job enrichment: Raw scraped job postings (HTML, truncated text, inconsistent formatting) are processed overnight by an LLM that extracts and normalizes: title, skill list, seniority level, rate range (min/max/unit), work setting, employment type, visa requirements, and location. The enriched record is what the Jobs page, filters, and match engine use.
- Resume parsing: When a consultant uploads a resume (PDF, DOCX, or text), the same LLM pipeline extracts a structured skill graph: skills with years of experience, seniority signal, target roles, and education. The structured profile is used directly for match scoring.
- Email req parsing: Vendor email blasts are parsed by the LLM into structured req cards (title, skills, rate, visa, location). Multi-req emails split into separate cards automatically. The parsed data goes through the review queue before becoming a confirmed req record.
- Exact + semantic matching: The match engine scores each consultant against each req using exact skill match (Spring Boot = Spring Boot) and semantic equivalence (Spring Boot covers Spring Framework; Java covers J2EE). Semantic equivalence is defined by a curated mapping layer, not raw embedding similarity, so matches are explainable and auditable.
- Score recalculation: Match scores are recalculated every time a consultant re-uploads their resume. The advisor sees the before/after score, making the coaching loop measurable.
- LLM provider control: Admins choose the LLM provider and model in system config. AI-intensive features are gated to system_admin to control cost and access.
Admin Controls
Group admin and system admin capabilities
Group admins manage their org's configuration. System admins have full cross-group visibility and platform governance controls.
- Group management: Create groups, assign users, set group markets and licenses. System admins see and manage all groups.
- Pod structure: Each group can have multiple pods (sub-teams). Pod members see their pod's pipeline; group admins see all pods.
- Role-based access: Roles: system_admin, group_admin, consultant, candidate. Each role gates specific features and data visibility.
- LLM / compute toggles: AI-intensive features (enrichment, matching, email parsing) are controlled at system_admin level. Group admins cannot enable these without system approval.
- Email source governance: Group admins see all email sources in their group (label, owner, type, active status, last-poll health). Can enable/disable any source.
- Extract Via column: Only visible to system admins. Shows extraction method used for each job posting.
- Activity log: Group-scoped audit log. Group admins see all activity in their group.
Platform Overview
One platform: three deployment contexts
The AI matching engine, job database, and talent pipeline are the same across all contexts. What changes is who the "talent" is, who the "advisor/recruiter" is, and what the job source looks like. Labels are fully configurable per organization.
Talent terminology: "Talent" is the platform's universal term for the person being matched. In a staffing firm, talent = consultant. In a university, talent = student. For an individual user, talent = the user themselves. The system label (candidate_label) is configurable: "Student," "Consultant," "Trainee," "Fellow," etc. and updates throughout the UI including the Talent Overview page title.
🏢
IT Staffing / C2C / Bench Sales Firms
The primary context. Bench sales teams match consultants on their bench to vendor job requisitions. Reqs arrive via vendor email blasts; the platform parses them automatically and scores consultants against each one.
Talent: IT consultants on bench
Advisor: Bench sales rep
Job source: Vendor email blasts → Req Inbox → AI parsed → approved → Jobs
Key flow: Email → Req Inbox → approve → Match page → score bench → RTR
🎓
Universities, Bootcamps & Training Institutes
Placement advisors manage student cohorts. Students are the "talent." The advisor uses the Talent Overview dashboard to track placement progress and the Skill AI Match to identify skill gaps before submitting students to employers.
Talent: Students, trainees, fellows (configurable label)
Advisor: Placement coordinator, career coach
Job source: Live market jobs (JobSeam's job database)
Key flow: Upload resumes → AI parse → Talent Overview → Score vs. live jobs → Coach on gaps → Track placement
Unique value: Cohort gap analysis shows which skills the entire group lacks — informs curriculum
🔍
Individual / Self-Service Job Seeker
No firm or institution required. An individual signs up, uploads their resume, and uses the platform to organize and optimize their own job search. The Req Inbox becomes their personal job shortlist; the AI Match shows where they stand.
Talent: The user themselves
Advisor: Optional — can invite a recruiter or career coach to view their profile
Job source: Manually added jobs (any LinkedIn/Indeed/company link) + live market jobs
Key flow: Upload resume → Add target jobs → See AI match % → Identify gaps → Upskill → Re-upload → Re-score
Unique value: The resume iteration loop — validate every resume change with data before applying
Live Screenshots: Side by Side
Same pages, two group contexts
Actual screenshots from the live system. Every label, column, and filter chip shown here is driven by the group's candidate_label setting. No code change required.
Context Adapts to Your Group Type
Every label in the UI is configurable per group. Log in as a consulting firm and you see Consultants, Pods, and Practices. Log in as a university and you see Students, Cohorts, and sponsorship tracking. Same platform. Same match engine. Same page.
Consulting Firm
Apex Consulting Group
Page title: Talent Overview showing Consultants by Practice and Pod.
University
Meridian University Career Services
Same page, same 13 panels. Shows Students by Cohort with sponsorship and placement-readiness breakdown.
Talent Roster: "Consultants" label
Talent Roster: "Students" label
Set once in Settings → Terminology. Label cascades to every page title, column header, button, and notification in the platform. Currently 4 active groups: 2 consulting firms, 2 universities — all on the same codebase.
Talent Coaching Loop
The closed feedback loop from match score to placement
Regardless of context, the platform enables a structured coaching loop between talent and their advisor/recruiter. This loop is what makes JobSeam more than a job board or ATS. It's an active improvement engine.
Loop steps: (1) Advisor runs AI match for talent vs. a target job. (2) Match score + gap analysis is visible to both advisor and talent. (3) Advisor flags specific missing skills with a note. (4) Talent updates their resume, adds skills, re-uploads. (5) AI re-parses the new resume. (6) Match score recalculates: talent sees the improvement immediately. (7) Advisor resubmits with the improved profile.
What the Advisor Sees
Advisor view of the talent profile during the coaching loop.
- AI match % for any job the advisor selects
- Green chips: exact skill matches
- Amber chips: partial or semantically equivalent matches
- Red/missing: skills in the job req not found in the talent profile
- Ability to flag specific skills for the talent to add
- Full resume text and parsed skills visible in the talent pane
What Talent Sees
Talent's own view of their match and the coaching feedback.
- Their own match % for each job they're being considered for
- Exact skill gaps: what's missing and what's a partial match
- Advisor's flagged skills and coaching notes
- Resume upload button: re-upload at any time
- Score updates immediately after re-upload and AI re-parse
- Application status: Applied → Interviewing → Offer → Placed
For Consulting Firms
How the loop works in the bench sales context.
- Bench sales rep reviews consultant's match score for a vendor req
- Sees consultant is at 71%, missing Docker and Kubernetes
- Asks consultant to update resume if they have relevant exp not documented
- Consultant re-uploads updated resume with accurate skill list
- Score improves to 88%, now a strong RTR candidate
- RTR sent from the match panel, logged with timestamp
For Universities / Training
How the loop works in the institutional context.
- Cohort overview shows 40% of students have zero cloud skills
- Placement advisor adds a cloud module to the curriculum
- Students complete training, upload updated resumes
- Match scores re-run across the cohort. Placement-readiness improves.
- Advisor tracks which students are interview-ready vs. still in skill gap
- Placement rate and time-to-placement tracked in Talent Overview
Configuration Reference
How to configure JobSeam for each context
Labels and terminology are set per group in the admin panel. No code changes required.
| Setting |
Staffing / C2C |
University / Training |
Individual |
candidate_label | Consultant | Student / Trainee / Fellow | (User is their own talent, no label needed) |
advisor_label | Bench Sales Rep | Advisor / Placement Coordinator | Career Coach (optional) |
pod_label | Pod / Team | Cohort / Batch | N/A |
| Talent Overview page title | Talent Overview | Talent Overview | Talent Overview |
| Job source | Vendor email blasts (Req Inbox) | Live market jobs (Jobs page) | Manually added + live market |
| Primary matching flow | Job → Score bench → RTR | Job → Score cohort → Coach → Submit | Add jobs → See own score → Fix gaps |
| Req Inbox use | Core: processes vendor email blasts | Optional: employer job postings | Personal shortlist of target jobs |