Trending
What’s hot right now - current buzz and viral content.
Update frequency: Every 6 hours
Jobs are automated tasks that fetch content from Trakt and add it to your media library on a schedule.
Trending
What’s hot right now - current buzz and viral content.
Update frequency: Every 6 hours
Popular
Most watched content over the past week.
Update frequency: Daily
Smart Popular
Adaptive scoring - balances mainstream blockbusters with quality control.
Update frequency: Daily
Box Office
Current theatrical box office hits.
Update frequency: Weekly
Anticipated
Most anticipated upcoming releases.
Update frequency: Weekly
Favorited
Most favorited by community.
Update frequency: Daily
Played
Most played (total plays, rewatchable).
Update frequency: Daily
Watched
Most watched by unique users.
Update frequency: Daily
Collected
Most collected in user libraries (essentials).
Update frequency: Weekly
Create custom jobs with full control over type, media, limits, and settings - all from the UI.
16 pre-configured templates to get you started:
| Movies | TV Shows |
|---|---|
| Trending Movies | Trending Shows |
| Popular Movies | Popular Shows |
| Anticipated Movies | Anticipated Shows |
| Favorited Movies | Favorited Shows |
| Watched Movies | Watched Shows |
| Collected Movies | Collected Shows |
| Box Office | - |
| Smart Popular Movies | Smart Popular Shows |
| Job Type | Default | Maximum |
|---|---|---|
| Trending | 50 | 1000 |
| Popular | 50 | 1000 |
| Watched/Collected/etc. | 50 | 1000 |
| Box Office | 10 | 10 |
| Smart Popular | 50 | 1000 |
If you have jobs configured in your config.yaml, a migration banner appears on the Jobs page.
Jobs defined directly in config (pre-v1.4.0):
jobs: sync_interval: "6h" # Default interval for all jobs mode: "direct" # direct or jellyseerr
trending_movies: enabled: true limit: 20 sync_interval: "6h" # Override default mode: "direct" minimum_availability: "released" monitor: "movieOnly"
popular_shows: enabled: true limit: 30 monitor: "all"Dynamic jobs (v1.4.0+) - defined in jobs.list:
jobs: sync_interval: "6h" mode: "direct"
list: - id: "my-trending-movies" name: "My Trending Movies" enabled: true type: "trending" source: "trakt" media: "movie" limit: 50 sync_interval: "6h" mode: "direct" minimum_availability: "released" monitor: "movieOnly"
- id: "weekly-watched" name: "Weekly Most Watched" enabled: true type: "watched" source: "trakt" media: "movie" limit: 30 period: "weekly"Smart job with adaptive thresholds:
jobs: list: - id: "smart-movies" name: "Smart Popular Movies" enabled: true type: "smart_popular" source: "trakt" media: "movie" limit: 50 base_min_rating: 6.0 # Base rating threshold adjustment_factor: 0.5 # Popularity adjustment (0.1-1.0)See Smart Jobs for details.
| Option | Type | Required | Description |
|---|---|---|---|
id | string | No | Unique identifier (auto-generated if omitted) |
name | string | Yes | Display name for the job |
enabled | boolean | Yes | Enable or disable the job |
type | string | Yes | Job type: trending, popular, watched, collected, favorited, played, anticipated, box_office, smart_popular |
media | string | Yes | "movie" or "show" |
limit | integer | No | Max items to fetch (defaults to job type default) |
period | string | No | Time period for watched/collected/favorited/played: weekly, monthly, yearly, all |
sync_interval | string | No | Custom sync interval (e.g., 6h, 12h, 24h) |
mode | string | No | Override global mode: direct or jellyseerr |
minimum_availability | string | No | For Radarr: announced, in_cinemas, released |
monitor | string | No | Monitor setting for Radarr/Sonarr |
base_min_rating | float | No | Smart jobs: base rating threshold |
adjustment_factor | float | No | Smart jobs: popularity adjustment |
Jobs run on a configurable interval using duration strings.
The sync_interval field uses Go duration format:
| Value | Meaning |
|---|---|
1h | Every hour |
6h | Every 6 hours |
12h | Every 12 hours |
24h | Once per day |
168h | Once per week (7 days) |
| Job Type | Recommended Interval | Reason |
|---|---|---|
| Trending | 6h | Changes frequently |
| Popular | 12h - 24h | Updates daily |
| Watched/Collected/etc. | 24h | Aggregated data, slower updates |
| Box Office | 24h - 168h | Weekly data |
| Anticipated | 24h | Upcoming releases |
| Smart Popular | 12h - 24h | Adaptive filtering |
Use different intervals per job:
jobs: list: - id: "trending-movies" name: "Trending Movies" type: "trending" media: "movie" sync_interval: "6h" # Check frequently # ...
- id: "popular-movies" name: "Popular Movies" type: "popular" media: "movie" sync_interval: "12h" # Less frequent # ...
- id: "weekly-watched" name: "Weekly Watched" type: "watched" media: "movie" period: "weekly" sync_interval: "24h" # Once per day # ...Fetch from Trakt
Job contacts Trakt API and retrieves the specified list (trending, popular, etc.) up to the configured limit
Apply Filters
Content is filtered based on your global filter criteria (ratings, genres, countries, languages, runtime, etc.)
Fetch Metadata
Retrieve TMDB metadata for poster images and additional details
Check Existing
Skip content already in Radarr/Sonarr or Jellyseerr
Add Content
Send to Radarr/Sonarr (direct mode) or create Jellyseerr request
Log Activity
Record what was added/filtered in the activity log
# Preview a jobcurl -X POST http://localhost:9090/api/v1/jobs/preview/trending-movies
# Response{ "would_add": [ { "title": "Dune: Part Two", "year": 2024, "score": 87, "reason": "Passes all filters" } ], "filtered_out": [ { "title": "Low Budget Horror", "year": 2024, "score": 45, "reason": "Score below threshold (65)" } ], "already_in_library": [ { "title": "The Batman", "year": 2022 } ], "stats": { "total_fetched": 50, "would_add": 8, "filtered_out": 35, "already_added": 7 }}Click the ▶ Run Now button next to any enabled job to trigger it immediately.
curl -X POST http://localhost:9090/api/v1/jobs/trigger/trending-movies| Job Type | Update Speed | Best For |
|---|---|---|
| Trending | Every 6 hours | Latest buzz, viral moments |
| Popular | Daily | Current favorites |
| Box Office | Weekly | Theatrical releases |
| Anticipated | Weekly | Future releases |
| Job Type | Quality Level | Volume |
|---|---|---|
| Smart Popular | High (adaptive) | Medium |
| Favorited | High (community-vetted) | Low-Medium |
| Watched | Medium-High (proven) | Medium |
| Trending | Variable | High |
For Current Events:
For Quality Curation:
For Completionism:
For Future Planning:
Goal: Good mix of current and quality content.
jobs: sync_interval: "6h" mode: "direct"
list: - id: "trending-movies" name: "Trending Movies" enabled: true type: "trending" media: "movie" limit: 50 sync_interval: "6h"
- id: "smart-popular-movies" name: "Smart Popular Movies" enabled: true type: "smart_popular" media: "movie" limit: 30 sync_interval: "12h" base_min_rating: 6.5 adjustment_factor: 0.5
- id: "favorited-movies" name: "Favorited Movies" enabled: true type: "favorited" media: "movie" limit: 20 period: "weekly" sync_interval: "24h"Result: ~10-15 movies/week, mix of current and quality
Goal: Only the best content with smart filtering.
jobs: list: - id: "smart-movies" name: "Smart Popular Movies" enabled: true type: "smart_popular" media: "movie" limit: 100 sync_interval: "24h" base_min_rating: 7.0 # Higher rating bar adjustment_factor: 0.3 # Less adjustment for popularity
- id: "all-time-favorites" name: "All-Time Favorites" enabled: true type: "favorited" media: "movie" limit: 50 period: "all" sync_interval: "168h" # WeeklyResult: ~5-8 excellent movies/week
Goal: Catch everything trending.
jobs: list: - id: "trending-movies" name: "Trending Movies" enabled: true type: "trending" media: "movie" limit: 200 sync_interval: "6h"
- id: "popular-movies" name: "Popular Movies" enabled: true type: "popular" media: "movie" limit: 150 sync_interval: "12h"
- id: "trending-shows" name: "Trending Shows" enabled: true type: "trending" media: "show" limit: 100 sync_interval: "6h"Result: High volume (requires storage!)
Start Conservative
Begin with strict global filters (min_rating, min_votes), then relax as needed.
Preview Everything
Always preview jobs before enabling to avoid unwanted content.
Use Different Intervals
Use longer sync_intervals for slower-updating lists (collected, anticipated).
Monitor Activity
Check the Activity log weekly to see what’s being added.
Use Smart Jobs
Smart Popular jobs automatically balance quality and popularity.
Set Reasonable Limits
Start with lower limits (20-50) and increase gradually.
Filters & Scoring
Configure filtering and scoring rules
Smart Jobs
Learn about adaptive smart jobs
Integration Modes
Choose Direct or Jellyseerr mode
Use Cases
See real-world examples