What goes in a source quality dashboard in Metabase?
A source quality dashboard shows which recruiting channels produce qualified candidates and hires, not just applicant volume. It helps recruiting teams invest in sources that produce real outcomes.
Which cards belong on this dashboard?
- Applications, interviews, offers, and accepted hires by source
- Application-to-interview and application-to-hire conversion by source
- Source mix by role family and seniority
- Accepted hires by source over time
- Source aging: days from application to interview or offer
- Low-quality high-volume sources for review
What data does this dashboard need?
- Applications with source, created_at, job, role family, status, and outcome fields.
- Stage history or derived reached_interview and reached_offer flags.
- Offers with accepted and declined outcomes tied to applications.
- Attribution rules for referrals, agencies, outbound, job boards, and manual overrides.
How do you build it?
- Sync ATS or HRIS data into a database, then connect that database to Metabase.
- Create reusable models for jobs or requisitions, applications, stage history, interviews, offers, sources, workers, and organizations as needed.
- Create one saved question per card, using consistent metric definitions and permissioned models.
- Add dashboard filters for department, location, role family, recruiter, hiring manager, source, and date range.
Example card SQL
SELECT
COALESCE(source, 'Unknown') AS source,
COUNT(*) AS applications,
COUNT(*) FILTER (WHERE reached_interview) AS interviewed,
COUNT(*) FILTER (WHERE offer_extended_at IS NOT NULL) AS offers,
COUNT(*) FILTER (WHERE offer_accepted_at IS NOT NULL) AS accepted_hires,
ROUND(100.0 * COUNT(*) FILTER (WHERE reached_interview) / NULLIF(COUNT(*), 0), 1)
AS interview_rate_pct,
ROUND(100.0 * COUNT(*) FILTER (WHERE offer_accepted_at IS NOT NULL) / NULLIF(COUNT(*), 0), 1)
AS application_to_hire_pct
FROM modeled_applications
WHERE application_created_at >= CURRENT_DATE - INTERVAL '12 months'
GROUP BY 1
HAVING COUNT(*) >= 10
ORDER BY accepted_hires DESC, application_to_hire_pct DESC;