diff --git a/models/recruit/src/index.ts b/models/recruit/src/index.ts
index ea2de9974f..919de6078e 100644
--- a/models/recruit/src/index.ts
+++ b/models/recruit/src/index.ts
@@ -500,6 +500,10 @@ export function createModel (builder: Builder): void {
     filters: ['attachedTo', 'assignee', 'state', 'doneState', 'modifiedOn']
   })
 
+  builder.mixin(recruit.class.Vacancy, core.class.Class, view.mixin.ClassFilters, {
+    filters: ['company', 'location', 'dueTo']
+  })
+
   createReviewModel(builder)
 
   // createAction(builder, { ...viewTemplates.open, target: recruit.class.Vacancy, context: { mode: ['browser', 'context'] } })
diff --git a/plugins/recruit-resources/src/components/Vacancies.svelte b/plugins/recruit-resources/src/components/Vacancies.svelte
index d2f6d2e5d5..e6e5e54519 100644
--- a/plugins/recruit-resources/src/components/Vacancies.svelte
+++ b/plugins/recruit-resources/src/components/Vacancies.svelte
@@ -28,23 +28,21 @@
   $: resultQuery = search === '' ? {} : { $search: search }
 
   type ApplicationInfo = { count: number; modifiedOn: number }
-  let applications: Map<Ref<Vacancy>, ApplicationInfo> | undefined
+  let applications: Map<Ref<Vacancy>, ApplicationInfo> = new Map<Ref<Vacancy>, ApplicationInfo>()
 
   const applicantQuery = createQuery()
   $: applicantQuery.query(
     recruit.class.Applicant,
     {},
     (res) => {
-      const result = new Map<Ref<Vacancy>, ApplicationInfo>()
-
       for (const d of res) {
-        const v = result.get(d.space) ?? { count: 0, modifiedOn: 0 }
+        const v = applications.get(d.space) ?? { count: 0, modifiedOn: 0 }
         v.count++
         v.modifiedOn = Math.max(v.modifiedOn, d.modifiedOn)
-        result.set(d.space, v)
+        applications.set(d.space, v)
       }
 
-      applications = result
+      applications = applications
     },
     {
       projection: {
@@ -68,7 +66,7 @@
     [
       '@applications',
       {
-        key: '@applications',
+        key: '',
         presenter: recruit.component.VacancyCountPresenter,
         label: recruit.string.Applications,
         props: { applications },
@@ -138,7 +136,7 @@
   <div class="ac-header__wrap-title">
     <div class="ac-header__icon"><Icon icon={recruit.icon.Vacancy} size={'small'} /></div>
     <span class="ac-header__title"><Label label={recruit.string.Vacancies} /></span>
-    <div class="ml-4"><FilterButton _class={recruit.mixin.Candidate} bind:filters /></div>
+    <div class="ml-4"><FilterButton _class={recruit.class.Vacancy} bind:filters /></div>
   </div>
   <SearchEdit
     bind:value={search}