állásokat kereső robot, és weboldal fejlesztése

Közvetlen állások

Email-ek a jobKeresőtől

2013. február 16. - jobkereso

A jobKereső projekt egyik alapvető problémája, hogy a keresőkben való megjelenés olyan szerény, hogy nem kecsegtet, még a távolabbi jövőben sem, hogy önfenntartó legyen. Legalábbis, ha nem teszek a dolog érdekében semmit.

Ennek alapvetően az az oka, hogy a Google PageRank algoritmusa nem csak az oldalak tartalmát veszi figyelembe, hanem azt is, hogy hány és milyen link mutat más oldalakról az éppen elemzett oldalra. Tehát azok a weboldalak, amelyekre már sok, és fontos oldalról mutat link előrébb kerülnek a keresőben. Amelyekre nem mutat link, pl. azért mert nem mutatja meg őket a kereső, tehát senki nem is tud a létezéséről, és nem linkeli, nos azokat a kereső nem mutatja meg. 

Igen, önnek igaza van, ez a 22-es csapdája, a google akkor mutatja meg az oldalt ha már mutat rá link, és addig nem fog rá link mutatni, amíg a google nem mutatja meg, és ezért az oldal ismeretlen marad.

Ennek a feloldására találtam ki azt, hogy azon cégeket, amelyek állásajánlatát a jobKereső listázza megkérem arra hogy vegyenek fel egy linket az oldalukra, amely a jobKeresőre mutat. Ez a megkérés technikailag úgy történik, hogy írtam egy kereső-filtert ami a már létező indexelt weboldal listán újra végigmegy és kiszedi az azokon található kapcsolat/info emailcímeket. Ezekre ment ki néhány 100 email.

... és néhány link, amely a legjobb keresőszavakra mutat a keresőben:

fejlesztő állás

villamosmérnök állások

ingatlan referens állás

Jobkereső fórum, és linkek az érdekesebb találatokra

Üdv

 sajnos régóta nem írtam erre a blogra, elfoglalt vagyok, illetve laz egyébként ide szánt tartalom egy része a jobkereső saját fórumába került.

A következő foglalkozásokat keresik a munkáltatók a leginkább:

programozó, mérnök, területi képviselő, tanácsadó, fejlesztő, szakmai gyakorlat, vezető, értékesítő
 

Az oldal továbbra is működik. Néha bekerül az adatbázisba hirdetett állásajánlat is, de azért a találatok túlnyomó része állásajánlat, és közvetlen. 

Jelenleg 2997 találatot számol, de ezek közül 20-30 darab ami távozni fog.

Létrehoztam azóta egy "legfrissebb 50 állásajánlat" oldalt is, ide kerülnek az utolsónak megtalált állásajánlatok.

Ez nagy segítségemre van most abban, hogy az oda nem való találatokat ki tudjam szűrni.

Snippet generálás

 Saját kezembe vettem a snippet-ek létrehozását.

A snippet az a szöveg ami az egyes találatok url-je alatt található, és amiben bolddal kiemelve szokott megjelenni az amire kerestünk. Ezeket a keresőmotor generálja az oldal elmentett szövegéből, valamilyen logika szerint, attól függően hogy mire kerestünk éppen rá. Ebből lehet kitalálni nagyjából hogy az oldal miről szólhat, és hogy erre voltunk-e kiváncsiak, a link kinyitása nélkül.

Amit csináltam, az viszont ilyen értelemben nem kontextus érzékeny, minden weboldalhoz egy bizonyos szöveget rendel, ami elvileg magát az állásajánlat lényegi részét tartalmazza. Tehát az eddigiekben, a keresett kifejezésnek megfelelően valami, amiben az a kifejezés megvolt, kikerült az oldalra, de ez sokszor valamilyen más az oldalon lévő tartalom volt, pl. hirdetés, vagy néhányszor rejtett szöveg, vagy egy témába vágó cikk, ami mellett van állásajánlat is, de a snippet nem abból generálódik.

Az, hogy a lényegi állásajánlat kerüljön ki, úgy értem el, hogy feldaraboltam a teljes szöveget az oldalon space és írásjelek mentén. Az így kapott szó tömböt analizálom. Ha kapok közöttük egy nagyjából összefüggő részt amiben az állásokra jellemző szavak gyakran és egy csoportban követik egymást, akkor az a csoport, valamilyen előre-hátra ráhagyással bekerül a snippet mezőbe, space-el összefűzve, és az oldalt találat esetén ez jellemzi.

Ennek a megoldásnak sajnos az a következménye, hogy per pillanat nem tudom az eredeti írásjeleket és kisbetű/nagybetű különbségeket rekonstruálni, az elemzés meg nem menne az eredeti szövegen. Hát ezen majd még dolgozni kell, de most nincs túl sok időm rá.

 

jobkereső leállás

 A jobkereső szolgáltatása átmenetileg elérhetetlenné vált.

 

A leállás oka az, hogy a T-com által menedzselt telefonvonal, amin internetkapcsolatot kapjuk valamilyen okból megszakadt, és mostanáig sem sikerült a hibát kijavítani. A leállás átmeneti, és a hiba kijavítása után folytatjuk a munkát. A leállás 2011. mácius 24.-én reggel kezdődött, és még nem tudjuk pontosan mikorra sikerül kijavítani. Remélhetőleg 2011. március 25.-én, vagyis ma délután már működni fog.

update: március 25 11:20-tól már működik

Egyúttal itt az alkalom, hogy a jövőben tervezett leállásról is hírt adjak. Az iroda, ahol a szerver működik valamikor a kora nyársorán, még pontosan nem tudjuk mikor, el fog költözni, és ez hosszabb-rövidebb leállással fog járni. Erre vonatkozóan majd ezt posztot szerkeszteni fogom, ahogy a konkrétabb dolgok kiderülnek.

 

JobKereső március

 Most tényleg csak röviden: (Vagyis kicsit mégis bővebben)

Elkezdtem olyan dátumszűrést megvalósítani, ahol a pályázatok dátumainál nem a 90 napnál régebbieket szűri ki, hanem az aznapinál régebbieket. Csak most jut eszembe, hogy ez sem jó, mert mire kimegy az adatbázisba a mai napon lejáró pályázat már elavult lesz, szóval rá kell majd tenni plusz öt-hat napot legalább.

A másik változtatás, hogy megpróbálok a direktes dolgok felé menni. Az indexer megállapítja hogy az oldal közvetítő, vagy hirdetőoldal-e, és ha nem, akkor egy speciális mezőben megismétli a keresett munka nevét. Ez a speciális mező aztán kiemelt súlyt kap a keresőben, így ezek a közvetlen találatok kerülnek a találati lista elejére. 

A harmadik, még élesben nincs is kint, hogy a találatok címét megpróbálom jobban ráilleszteni a találati oldalakról származó header tagek tartalmára. Egyrészt eddig csak a h1/h2 tartalmakat vettem ki, és ha nem tartalmazott foglalkozásnevet, akkor azt egyből eldobtam, és ment a helyére a megtalált foglalkozásnevek listája. De ez csalóka, mert sok hirdetésből is felismerhető foglalkozásnév, és így irreleváns dolgokra fogja felhozni az oldalt. Most megpróbálok egy kölcsönös ellenőrzést, tehát ha van a header tagben foglalkozásnév, akkor csak azt vesszük komolyan, a többi megtaláltat töröljök, és ilyenkor az kerül a direkt mezőbe is, meg címnek is. De ez még fejlesztés alatt van.

 Ezt a posztot kiegészítem még néhány másik fejleménnyel. Március során a korábban itt is megemlített 'tag cloud', vagy néhány szándékolatlanul minket tükröző domain miatt átmenetileg felment a forgalom. A forgalmunk általában sajnos nagyon alacsony. Ez részben a SEO szakértelem hiánya miatt van, másrészt meg nincs pénzünk a szükséges mennyiségű hirdetés szétszórására sem.

Tehát a fenti forglalom a napi 15-20 körüli látogatóról felment 170-re, amit akkor igencsak jólesett látni, és úgy tűnt egy pozitív folyamat kezdete. De mégsem. Ugyanis a google, ahonnan a fenti látogatók érkeztek úgy döntött hogy büntetésbe tesz minket,ezzel gyakorlatilag néhány nap magasabb forgalom után visszaesett a látogatottság a napi 10 körüli értékre. A büntetés pontos okát azóta is találgatjuk. Az egyik lehetséges ok a "tag cloud" volt, amely a saját keresőoldalra mutató linkeket tartalmazott a kezdőoldal alján, körülbelül 100-at. Ezek előre felparaméterezett keresésekre mutattak munkanevekkel, illetve településnevekkel.

 A másik, hogy megörököltünk 2 domaint (budapestparkhair.com,outpostkorea.com) arról a szerverhotelről, amely korábban ugyanezen az ip címen működött. A többit elmozgatták egy angliai szerverre, de ezeket valamiért itt maradtak. A sok link megjelenésével, ezek a domainek duplikálták a jobkereső rendes tartalmát, és rengeteg a tag cloud-ból származó link mutatott a jobkeresőre. Ezek a linkek meg is jelentek google alatt, tehát például a büntetés tényét abból lehetett felmérni, hogy a parkoló domének találatai messze megelőzték magát a jobkereső találatait.

Ilyen "tag cloud"-ok szinte minden oldalon, pl a blog.hu-n is vannak, de valamiért a mi esetünkben, talán ezt tekintette keyword stuffing-nak. Ez persze téves, mert a felsorolt kulcsszavak mind kereshetőek, és releváns találatokat ad, az egész azért jött lére, hogy a google bot megtalálja a tényleges indexelhető tartalmakat.

A problémák elkerülése végett ezt a tag cloud-ot leszedtem, illetve a másik két domain problémáját is kezeltük - elmozgattuk az ip címeket, illetve dedikált tartalmat kapott. A tag cloud szerepét most a sitemap-be helyezett felparaméterezett urlek veszik át. Pontos információk hiányában csak remélhetem, hogy ez a kívánt hatást váltja ki, és nem okoz ez is büntetést.

Az átmeneti nagyobb forgalom egyik sajátossága, hogy nem releváns kulcsszavakra lettünk "relevánsak". Tipikusan olyan álláskereső oldalak neveivel kerültünk ki a találati oldalra, amelyeket indexelünk, és a googlebot indexelhette azokat a találi listákat, amelyek a site: paraméterrel ezekre az álláskereső oldalakra szűr. Magát az álláskeresést leíró kifejezések nagy része eleve elő sem kerül mint kulcsszó, állásnevek már előkerülnek, de csak a lista legalján, alacsony súllyal.

A legutóbbi változtatás lényege az volt, hogy minden ilyen szűrt keresésre vezető linket rel="nofollow"-al határoljuk el, hogy ezeket ne indexelje a google, és ami még nincs fent, hogy a találati oldalakon ilyen esetekben egy tiltó meta taget fogunk generálni. Ezt akkor is, ha nincs az oldalon találat, hogy üres oldalakat ne indexeljen.

új adatbázis - indexer módosítás

 Az elmúlt hétvégén, illetve előtte is, meg ma is az indexer hegesztésével foglalkoztam. Elsőre sajnos hibás volt a dátumszűrő, és túl sok oldalt dobott ki, drámaian lecsökkentve ezzel az indexelhető lapok számát.

Kénytelen voltam a korábbi adatbázist összekeverni ezzel az újabbal, és a kettőt együtt kitenni, így a régiből az állásajánlatok megmaradtak, csak az újból lett kevés. Ennek viszont az lett a következménye, hogy tele lett az adatbázis már lejárt hirdetésekkel. Mivel ezt a letöltött anyagból döntjük el, és a letöltés, ehez az adatbázishoz január végén történt, a már akkor is kint lévő hirdetések egy része pedig időközben lejárt.

Ezeken kívül, átállítottam az eredménylistát olyanra, hogy az oldalak címe, illetve az url helyett relevánsabb szövegeket tegyen ki. A keresőnk kezd "szemantikus" keresőként működni, mert például ez a címsorbeli szöveg a h1/h2 html tagagből származik. Ezt is módosítottam most, de ez majd csak a következő adatbázisban lesz látható, kiterjesztettem a h1/h2 címsor elemzést olyan div,td,th tag-ekre, amelyekben az class, illetve az id nevében szerepel "title" vagy "cim". Néhány oldalon ilyen tag-ekbe pakolták az állásajánlat megnevezését. A felhasználás nem automatikus, csak akkor jelenik meg a h1/h2 tartalma, ha abban van felismerhető foglalkozás-név, elkerülendő a site önreklámját, vagy irreleváns tartalmakat, pl híreket.

Ami még mindig fájdalmas jelenség, hogy előkerülnek nem állásajánlatok a szűrő után is, illetve olyan oldalak, amelyeken egyszerre több állásajánlat kilistázása található.

Megkezdődött a korábbiaknál agresszívebb kereső-jelenlét. Ezt túlzás lenne seo-nak nevezni, "ráeresztettem" a google-t a search.jsp-re, vagyis az eredménylistára. Megjelent az oldalon egy "utolsó keresések" rovat, a felhasználói élmény fokozása mellett ezzel az is a cél, hogy a kezdőoldalon legyen állásneveket mint anchor text tartalmazó linkek, amelyek saját oldalra mutatnak. Ezzel szeretném képbe hozni a google adatbázisát is, hogy végül is mivel is foglalkozunk itt...

Néhány szó a fejlődésről...

 Régen jött létre itt poszt, ezért kicsit leporolnám a dolgot.

 

Az oldalon eddig nem zajlott jelentős a kinézetét érintő változás, de néhány dolgot át fogunk alakítani. Az egyik hogy a találatok tetején ezentúl nem a céloldal címe (title tag) lesz látható, hanem az onnan kivadászott állások neve, illetve ha azt a title, vagy az oldalon található h1,h2,h3 tag-ek szövege tartalmazza, akkor azok. Így remélhetőleg könnyebb lesz ránézésre eldönteni melyik érdeki a felhasználót.

A másik már aktív változás, hogy hosszabb lesz a google terminológiával "snippet", az a szöveg amit a találatok előtt és mögött kivesz az oldal szövegéből. Ez is azt szolgálja hogy a találatokat könyebb legyen értelmezni.

Megjelent a múlt héttől kezdve egy szavazó-sor, amin a felhasználók visszaüzenhetik milyen irányokat szeretnének látni. Egyelőre nagyon kevés szavazat érkezett, így nem bonatkozik ki egy határozott irány.

Jóval több változás zajlik a motorháztető alatt. Az állásokat más oldalaktól megkülönböztető szűrő a sokadik módosításon esik át. A legutóbbi változás az állás-nevek és az oldal szövegének az összevetését módosította, a több szóból álló állás megnevezések hatékonyabb felismerését szolgálja, valamint a nagyon rövid fals felismeréseket eliminálni. Visszatérő probléma volt pl. hogy az "ács" szót mint egyéb szavak alkotórészét felismerte mint állást, és ezt irreleváns oldalakhoz is hozzárendelte.

Egy elég nagy mértékű változtatást jelent hogy megjelent dátumszűrés. Mivel az egyes weboldalak felépítése nagyon eltérő lehet, ezért nagyon általánosan minden az oldalon felbukkanó dátumot vizsgálunk. Ha akad köztük az elemzés pillanatánál 90 napnál régebbi, akkor azokat az oldalakat eldobjuk. Ezzel sok már lejárt, elavult hirdetést lehet a rendszerből kizárni, amit bizonyos álláskereső oldalak maguk nem vesznek ki a listájukból. Eddig a felhasználó csalóka ajánlatokat találhatott, amelyek esetleg több évesek is lehetnek. Ezek most már kiszűrésre kerülnek.

Az elmúlt hónapok folyamán fejlődött a szűrő azon része, ami az állásokat keresők felismerését szolgálja. Itt még egész biztosan van további tennivaló - a szűrő ugyanis sok releváns állásajánlatot is eldob az oldal szövegének a sajátos megfogalmazása miatt. Konkrét hiba volt pl. a "vállal" szó szereplése kifejezésekben mint pl a "kockázatot vállal", mivel a vállal szót máskor általában a "munkát vállal" szóösszetétel különböző variánsai tartalmazzák, és állásokat keresők írják le. Sok esetben a "munkát" helyén a munkakör megnevezése áll, ezért magára a "vállal" szóra kellett a szűrést kiterjeszteni, így viszont valós állásajánlatokat is eldobott.

Miután a szűrőben létrejött az állásokat keresők felismerése, felmerült annak az ötlete is, hogy lehetne olyan szolgáltatást is létrehozni, ahol az állásokat keresőket indexeljük, illetve az ilyen oldalakról begyűjtött emailekre lehet a jobkeresőre felhívó leveleket küldeni. Ennek az egyik fele tesztüzemben meg is valósult, de ez egyelőre belső használatra van, és meglehetősen régi listát tartalmaz. Az értesítő levelekre egy próbaküldés történt, de nem hozta meg a várt forgalom növekedést, így a projekt egyelőre alszik. A levelek címzettjei nyilván egyszerűen spamként kezelték és letörölték a leveleket.

Általános probléma hogy nagyon alacsony a forgalom, és ennek okairól nincs érdemi visszajelzés. 

Fennakadás

 

Az elmúlt kb 1.5 hétben fennakadás volt a crawler futtatásában, nem sikerült keresztülvergődni néhány hibán, ami a program alrendszereiben, illetve a feldolgozott adatokban egyszerre volt jelen. Most újrafuttattam a crawlert, és ehhez hozzácsaptam az előző adatbázist is, most összesen kb 5000 oldalunk van, ebből kb 2500 ami az új futtatásból származik, a másik fele pedig régi (szept. 30)

 Sajnos az ezt okozó hibát azóta sem sikerült felderíteni. Az a feltételezésem, hogy a crawler menet közben olyan linkeket talált, amelyek szűrése közben, a szűrést végző regex kifejezés elfagyott. A crawlereket a futtatást követően lényegében végtelen ciklusban találtam, le kellett őket kill-elni, linux paranccsal. Most bevezettem egy olyan szűrést, hogy a 100 karakternél hosszabb url-eket hagyja figyelmen kívül. Remélem ez nem fog a kérdéses linkek esetén sem elfagyni, merthogy ez az ellenőzés nem java kód szinten van, hanem ez is egy regex kifejezés...

Egyelőre a kisebbik rossz, hogy a hiba valószinűleg újra elő fog fordulni, a nagyobb hogy emiatt nem tudtuk az adatbázist frissíteni. Ez most megtörtént.

 

 

 

Üzleti modell

 Üzlet

 

Pár szót vesztegetnék erre egy rövid postban. Szóval, ez a projekt nem nonprofit alapon jött létre, természetesen az a célunk hogy pénzt keressünk vele. Ezt viszont olyan módon szeretnénk megtenni, amivel másoknak is hasznosak vagyunk, tehát nemcsak elvenni akarunk, hanem adni is.

Az üzleti modell alapja az, ami általában az "ingyenes szolgáltatásokat" üzőké, vagyis első körben jelentős forgalmat generálni, olyan látogatókat a csatornához vonzani, akik ott ingyen hasznos, vagy érdekes dolgokat találnak, amivel elbíbelődnek. 

Az így létrejövő forgalom váltható bevételre hirdetéseken keresztül. A JobKereső mint keresőprogram rendelkezik azzal a technikai lehetőséggel, hogy van a kezelőfelületén egy beviteli mező, ahol kérdéseket lehet a keresőmotornak feltenni. Ezen kérdések alapján a keresésre adott válasz mellett pedig kulcsszófüggő hirdetéseket lehet szelektíven megjeleníteni. Ennek megfelelően a hirdetések célzottan jelennek meg, kapcsolódva ahoz amit a felhasználó amúgy is keres.

A hirdetések látogatottsága szintén egyedileg mérhető, tehát pontosan darabra meg tudjuk mondani hányan kattintottak 1-1 hirdetésre, illetve hogy ezek milyen hirdető-rekordhoz tartoznak, ahonnan a hirdetés ára így levonható.

Ismételt kattintásokat ugyanarról az ip címről, ugyanarra a hirdetésre a rendszer nem fogad el, csak az első kattintást számolja - naponta egyszer. Tehát a következő napon már újra számolni fogja. Jó lenne ezügyben a lehetséges hirdetőkkel konzultálni, hogy ők milyen megközelítést látnának szivesen. A hirdetők számára nem csak az jelent reklámot, hogy rákattintottak a hirdetésre, és a hirdető weboldalára navigáltak, hanem az is, hogy a hirdető nevét látják a weboldalon, anélkül hogy rákattintanának.

 

süti beállítások módosítása