PHPackages                             symfony-doge/veslo - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. symfony-doge/veslo

ActiveProject[Utility &amp; Helpers](/categories/utility)

symfony-doge/veslo
==================

A vacancy aggregation engine

0.5.2(5y ago)22[1 PRs](https://github.com/symfony-doge/veslo/pulls)GPL-3.0-or-laterPHPPHP &gt;=7.2

Since Mar 2Pushed 5y ago1 watchersCompare

[ Source](https://github.com/symfony-doge/veslo)[ Packagist](https://packagist.org/packages/symfony-doge/veslo)[ Docs](https://github.com/symfony-doge/veslo)[ RSS](/packages/symfony-doge-veslo/feed)WikiDiscussions master Synced 2mo ago

READMEChangelog (7)Dependencies (30)Versions (10)Used By (0)

```
                                                  ________________________
                                                 /                        \
,--.                                            /                          |
|  |___________________________________________/_____________________      |
|  |_________________________________________________________________)     |
|  |                                           \                           |
`--'                                            \                          |
                                                 \________________________/
        Veslo: a vacancy aggregation engine
```

[![Packagist Version](https://camo.githubusercontent.com/363ce9e52378f90e5a708c63eff5a3c15d65b995cc4ea137015851a2d6b404aa/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f73796d666f6e792d646f67652f7665736c6f2e737667)](https://packagist.org/packages/symfony-doge/veslo)[![Quality Score](https://camo.githubusercontent.com/3dc0992316f09536f48a93e5dee7a25e5250c93ba6590350679fb942b7b5744e/68747470733a2f2f696d672e736869656c64732e696f2f7363727574696e697a65722f672f73796d666f6e792d646f67652f7665736c6f2e737667)](https://scrutinizer-ci.com/g/symfony-doge/veslo)[![Code Climate technical debt](https://camo.githubusercontent.com/38237e93c1265fae49ebadeba248f03fafe8ecb07081840ca3f349efd886175a/68747470733a2f2f696d672e736869656c64732e696f2f636f6465636c696d6174652f746563682d646562742f73796d666f6e792d646f67652f7665736c6f2e737667)](https://codeclimate.com/github/symfony-doge/veslo)[![Packagist](https://camo.githubusercontent.com/86ae1bbc995511926ca6716e0e9649c2708857b87d0ef41c325b62f63b9592b2/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f73796d666f6e792d646f67652f7665736c6f2e7376673f636f6c6f723d626c7565)](https://github.com/symfony-doge/veslo/blob/master/LICENSE)

Installation
------------

[](#installation)

### Docker

[](#docker)

The preferred way to install is through [docker-compose](https://docs.docker.com/compose). You need to have a [Docker](https://docs.docker.com/install) daemon at least [17.05.0-ce](https://docs.docker.com/engine/release-notes/#17050-ce)(with build-time `ARG` in `FROM`) to successfully cook all containers.

Run an automated deploy script for local development with Docker.

```
$ bin/deploy_dev.sh

```

[![installation asciicast](.github/images/installation.gif)](.github/images/installation.gif)

Roadmap configurations were not automatically loaded by the script, you need to insert them manually with a separate command.

```
$ docker-compose run --rm app bin/console doctrine:fixtures:load \
    --group roadmap.configuration.parameters \
    --append

```

Up to 120 sec may be required for starting up the vacancy parsing process.

### Manual

[](#manual)

You can clone and deploy the application with your own environment by providing `.env` file using `.env.dev.dist` as a template. Below are steps to prepare your application before accessing through a web server.

```
$ git clone git@github.com:symfony-doge/veslo.git veslo && cd "$_"

// setup your own connection parameters
$ cp .env.dev.dist .env

$ cp app/config/parameters.yml.dist app/config/parameters.yml
$ cp webpack.env.dev.js.dist webpack.env.js

```

Check your environment for Symfony requirements and install PHP dependencies via [Composer](https://getcomposer.org/download). You also need the [php-ds](https://github.com/php-ds/ext-ds) extension for some services working with efficient PHP 7 data structures.

```
$ bin/symfony_requirements
$ composer install

```

Install Javascript dependencies and compile assets via [Yarn](https://yarnpkg.com/lang/en/docs/install)([Node.js](https://nodejs.org/en/download) 10.x is required).

```
$ yarn install
$ yarn run build:dev

```

Apply database migrations.

```
$ bin/console doctrine:migrations:migrate latest

```

Load roadmap configurations.

```
$ bin/console doctrine:fixtures:load --group roadmap.configuration.parameters --append

```

Testing
-------

[](#testing)

Loading fixtures.

```
$ docker-compose run --rm app bin/console doctrine:fixtures:load --group test

```

Applying [Codeception](https://codeception.com/docs/reference/Commands) parameters.

```
$ cp parameters.codeception.dev.yml.dist parameters.codeception.yml

```

Executing tests.

```
$ docker-compose run --rm app bin/codecept run --steps

```

### Workflow

[](#workflow)

```
FOUND (initial place)
|
| to_parse
 ------------> PARSED
               |
               | to_collect
                ------------> COLLECTED
                              |
                              | to_index
                               ------------> INDEXED

```

There is a set of log files suited for debugging an each workflow transition. `var/logs` contains:

Log fileDescription`dev.anthill.digging-YYYY-mm-dd.log`Search process (to\_parse)`dev.anthill.parsing-YYYY-mm-dd.log`Parsing process (to\_collect)`dev.anthill.collecting-YYYY-mm-dd.log`Saving in local storage (to\_index)`dev.sanity.indexing-YYYY-mm-dd.log`Analysis`dev.app.workflow-YYYY-mm-dd.log`Queue get/push events
 (data distribution between workers)`dev.app.http-YYYY-mm-dd.log`Dumping all HTTP requests/responses
 (works if `app.http_client.logging` is `true`)`dev-YYYY-mm-dd.log`A common Symfony log fileAPI
---

[](#api)

```
$ docker-compose run --rm app bin/console veslo:anthill:digging hh php --iterations=1

```

Finds a vacancy from job site by roadmap (search plan) and configuration. Search result will be offered to parsing queue, according to current workflow (default `veslo.app.workflow.vacancy_research.to_parse`).

Available roadmaps are defined in `AnthillBundle/Resources/config/roadmaps.yml`and configurations in `AnthillBundle/Resources/fixtures/roadmap/`.

```
$ docker-compose run --rm app bin/console veslo:anthill:parsing --iterations=1

```

Polls a new raw vacancy data (html/json etc.) for parsing. Result will be offered to collecting queue (default `veslo.app.workflow.vacancy_research.to_collect`).

```
$ docker-compose run --rm app bin/console veslo:anthill:collecting --iterations=1

```

Grabs a parsed vacancy data (instance of `AnthillBundle/Dto/Vacancy/RawDto`) and decides whether should it be collected for analysis or not. Result will be persisted in the local storage and offered to the indexing queue (default `veslo.app.workflow.vacancy_research.to_index`)

```
$ docker-compose run --rm app bin/console veslo:sanity:indexing --iterations=1

```

Sends an accepted vacancy to the microservice for analysis (see `ANALYSER_HOST`, `ANALYSER_PORT`) and persists received metadata in the local storage. Remote service implements API defined by [symfony-doge/ministry-of-truth-client](https://github.com/symfony-doge/ministry-of-truth-client) bridge. Example (Go + Gin): [symfony-doge/ministry-of-truth-cis](https://github.com/symfony-doge/ministry-of-truth-cis).

### Currently supported roadmaps:

[](#currently-supported-roadmaps)

- [hh](https://hh.ru) (configurations: `php`, `javascript`, `golang`, `python`, `java`, `c++`)

Usage example
-------------

[](#usage-example)

[www.veslo.it](https://veslo.it)

See also
--------

[](#see-also)

- [symfony-doge/management-kit](https://github.com/symfony-doge/management-kit) — A set of monitoring &amp; management GUI tools to manage data &amp; processes of this project.

Changelog
---------

[](#changelog)

All notable changes to this project will be documented in [CHANGELOG.md](CHANGELOG.md).

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~101 days

Recently: every ~167 days

Total

8

Last Release

1915d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/9846fb3e0b9baad2f926476f9b5e6a032909ff9d8cbd0b01074a677d64822b4b?d=identicon)[itnelo](/maintainers/itnelo)

---

Top Contributors

[![itnelo](https://avatars.githubusercontent.com/u/2988715?v=4)](https://github.com/itnelo "itnelo (192 commits)")

---

Tags

aggregatorphp73vacancy

###  Code Quality

TestsCodeception

### Embed Badge

![Health badge](/badges/symfony-doge-veslo/health.svg)

```
[![Health](https://phpackages.com/badges/symfony-doge-veslo/health.svg)](https://phpackages.com/packages/symfony-doge-veslo)
```

###  Alternatives

[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M647](/packages/sylius-sylius)[ec-cube/ec-cube

EC-CUBE EC open platform.

78527.0k1](/packages/ec-cube-ec-cube)[open-dxp/opendxp

Content &amp; Product Management Framework (CMS/PIM)

7310.3k29](/packages/open-dxp-opendxp)[anime-db/anime-db

The application for making home collection anime

252.1k2](/packages/anime-db-anime-db)[forumify/forumify-platform

121.8k11](/packages/forumify-forumify-platform)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
